搭建基于内网穿透技术的python tutor可视化工具
Online Python Tutor 是由 Philip Guo 开发的一个免费教育工具,可帮助学生攻克编程学习中的基础障碍,理解每一行源代码在程序执行时在计算机中的过程。通过这个工具,教师或学生可以直接在 Web 浏览器中编写 Python 代码,并一步一步可视化地执行程序。截至 2013 年 12 月,来自 165 个国家和地区共 50 万多人使用了这个在线工具,通常是用作教材、讲义或在线编程指南的补充。每天共执行和演示超过 6,000 段 Python 程序。除了自学的初学者,Online Python Tutor 的用户还包括了那些参加 Coursera等在线课程的学生,还有诸如 MIT、UC 伯克利等高校的教师。唯一的小缺点,服务器在国外,上课时网速不给力,连接困难,卡顿现象时长发生。上周学习了社区帖子《通过花生壳内网穿透让SIOT有外网访问功能》,本节小试牛刀,尝试利用花生壳工具做内网穿透,树莓派做服务器,搭建自己 python tutor可视化工具网站。
(如果学不会,文末有彩蛋有4步机房单机版的Python Tutor教程)
https://mc.dfrobot.com.cn/data/attachment/album/202104/23/103142j8naqtzd0hdelpw9.png
一、知识科普1.什么是内网穿透?
内网穿透,也即 NAT 穿透,进行 NAT 穿透是为了使具有某一个特定源 IP 地址和源端口号的数据包不被 NAT 设备屏蔽而正确路由到内网主机。下面就相互通信的主机在网络中与 NAT 设备的相对位置介绍内网穿透方法。 UDP 内网穿透的实质是利用路由器上的NAT 系统。NAT 是一种将私有(保留)地址转化为合法IP地址的转换技术,它被广泛应用于各种类型 Internet 接入方式和各种类型的网络中。NAT可以完成重用地址,并且对于内部的网络结构可以实现对外隐蔽。
2.花生壳方案
(1)在服务器或主机安装花生壳客户端
(2)根据服务器内网IP和端口添加映射,将内网映射至
外网完成内网穿透
(3)通过生成的外网访问地址即可访问至服务器的内容
模拟真实环境下的程序调试
方案优势
无需公网IP: 支持公网与内网IP
部署成本低: 免费使用,按需开通配件
适配性高: 支持TCP、UDP协议及多种系统
3.软、硬件支持
软件:树莓派官方系统brust
Python3.X
bottle (pip install bottle)
硬件:树莓派4B*1https://www.dfrobot.com.cn/goods-2617.html
我测试用的是树莓派的无线wlan,建议有条件测试一下千兆网口。
4.bottle框架
Bottle是一个简单高效的遵循WSGI的微型python Web框架。说微型,是因为它只有一个文件,除Python标准库外,它不依赖于任何第三方模块。
特性
1、Routing:把请求映射到函数,建立简洁动态的URLs
2、Templates:采用内置模板引擎,同时还支持 mako, jinja2, cheetah 等第三方模板
3、Utilities:便捷地读取表单数据、上传文件、 cookies、HTTP头信息和其它 HTTP相关的元数据
4、Server:内置HTTP开发服务器,并且支持 paste, fapws3, bjoern, Google App Engine, Cherrypy 或者其它任何WSGI HTTP 服务器
5.超文本传输协议(Hypertext Transfer Protocol,HTTP)
超文本传输协议(Hypertext Transfer Protocol,HTTP)是一个简单的请求-响应协议,它通常运行在TCP之上。它指定了客户端可能发送给服务器什么样的消息以及得到什么样的响应。请求和响应消息的头以ASCII形式给出;而消息内容则具有一个类似MIME的格式。这个简单模型是早期Web成功的有功之臣,因为它使开发和部署非常地直截了当。
二、服务器搭建流程
1.登录花生壳官网下载软件
https://mc.dfrobot.com.cn/data/attachment/album/202104/23/103140r9r5r98k4aqc8z3f.png
https://mc.dfrobot.com.cn/data/attachment/album/202104/23/103139uztr7ave1d3gitnv.png
此处选择32位,否则系统可能会报错
https://mc.dfrobot.com.cn/data/attachment/album/202104/23/103139jnwujobn5oqq713w.png
2.安装花生壳
sudo -s 开放权限
cd 到 软件所在目录
dpkg -i 命令安装
https://mc.dfrobot.com.cn/data/attachment/album/202104/23/103140ihdd4ch5l2i50sct.png
3.安装成功运行 phddns命令启动花生壳
常用命令在首页均有提示
4.登录官网配置端口
需要用到SN
https://mc.dfrobot.com.cn/data/attachment/album/202104/23/103140yel9nr26lg8wddzr.png
新用户微信关注公众号,激活等一系列操作
https://mc.dfrobot.com.cn/data/attachment/album/202104/23/103140hhph0ltotwm7hyp8.png
https://mc.dfrobot.com.cn/data/attachment/album/202104/23/103141ag2hqyhjnbjhhnpy.png
注册登录
https://mc.dfrobot.com.cn/data/attachment/album/202104/23/103141a1h7qhtsife87wlg.png
https://mc.dfrobot.com.cn/data/attachment/album/202104/23/103141kywb8w6p89uz0eey.png
https://mc.dfrobot.com.cn/data/attachment/album/202104/23/103141tm05b6m0vbfrbmgd.png
5.配置映射端口
https://mc.dfrobot.com.cn/data/attachment/album/202104/23/103142jgoccf6ncctgqs1n.png
依次填写 1应用名称-》2映射类型为http-》3外网域名(会免费分配一个)-》4内网主机IP,内网端口8003
HTTP:功能需要6元开通,有效期98年:(
6.配置v5-unity文件夹(该文件夹内是python tutor全套网站)中的bottle_server.py文件
修改host 后的主机号,端口默认8003;
此处注意需要与花生壳配置信息一致。
7.树莓派服务器端-》运行花生壳程序-》python3 命令运行 bottle_server.py
谷歌浏览器测试
https://www.bilibili.com/video/BV1d54y1L79y/
手机测试
https://www.bilibili.com/video/BV1op4y1t7HN/
https://www.bilibili.com/video/BV1oQ4y1o7ws/
三、彩蛋 (四部单机版,适合机房安装)
1.直接把附件解压缩,开始运行cmd命令
2.cd 定位文件夹位置
3.python bottle_server.py
4.登录浏览器输入localhost:8003/index.html
即可使用 Python Tutor
四、附件
OnlinePythonTutor-master.rar 感谢分享 用开源的FRP不香吗? Caner 发表于 2021-5-25 11:58
用开源的FRP不香吗?
欢迎发帖,分享经验{:6_207:} gray6666 发表于 2021-5-27 08:26
欢迎发帖,分享经验
已发,比较粗糙,多多指教{:5_116:} https://mc.dfrobot.com.cn/thread-309587-1-1.html Caner 发表于 2021-5-28 11:22
已发,比较粗糙,多多指教 https://mc.dfrobot.com.cn/thread-309587-1-1.html
教程写的很详细,正在学习中{:6_202:}
页:
[1]