本帖最后由 Oray 于 2019-8-22 14:51 编辑
内嵌PHTunnel组件,让设备具备内网穿透功能(通用)本文主要是想给大家介绍一下如何通过PHTunnel,让软件或硬件设备具备内网穿透功能。 概述PHTunnel 是新一代花生壳核心组件,用C语言实现(最小约80KB),较上一代反向代理性能有明显的提升。支持TCP、HTTP和HTTPS协议,端到端的TLS加密通信。 本文的目的是为了帮助linux内核用户,在设备上运行PHTunnel,并理解PHTunnel的运行方式 安装成为开发者并创建花生壳应用下载使用启动PHTunnel1) 打开DOS命令函,输入PHTunnel可执行文件地址跟创建应用的APPID、APPKEY: 2) 类似于:
C:\Users\Oray\Desktop\x86_64-w64-mingw32\PHTunnel.exe --appid=100xx --appkey=af6dxxx 3) 回车后,会生成PHTunnel.jason文件。 -扫描图中二维码,有惊喜- 4) 使用手机“花生壳管理”登录自己的花生壳帐号并APP扫二维码。 注意:登录账号必须为开发者后台中的【调试账号】,现在注册成为开发者,花生壳默认是赠送3个账号(1个旗舰版、1个商业版、1个体验版),如果想用已有账号,可以点击【新增】,添加自己的账号。 5) 绑定成功后,我们就可以在开发者后台看到,当前设备数量为2/10(本文前已绑定一个),左侧的任务栏可以管理PHTunnel的相关信息。 6) 确认绑定成功后,我们就可以在花生壳管理APP或花生壳管理网页( https://b.oray.com/)上进行设备的内网映射,将内网下搭建的应用或服务的IP及端口号填到对应位置。(此处以网页管理为例) 7) 映射完成后,就可以用映射出来的域名+端口,直接访问内网下搭建的服务。 关闭PHTunnel可通过-p --pid参数指定的文件中拿到PHTunnel的进程pid,然后调用kill命令终止PHTunnel。 如kill $(cat /tmp/PHTunnel.pid 2> /dev/null | grep 'pid=' | cut -d'=' -f2 2> /dev/null) PHTunnel参数列表-h, --help 帮助 -s, --server 服务器地址 -l, --log 日志文件路径 -v, --verbose 打印详细日志到标准输出 -q, --qrcode print login qrcode -r, --rpc 是否开启rpc监听 -c, --config 配置文件加载路径 -p, --pid 输出的状态文件,里面包括进程的pid,方便关闭时杀掉进程 -f, --forward Remote admin forward, default: 127.0.0.1:80 -d,--daemon 后台运行(linux) -S,--service 作为windows服务运行(windows) -i,--appid App ID -k,--appkey App Key -e,--deviceinfo 设备自定义数据 | 后台运行方式由于在前台运行不方便,更多的需求是后台运行,但后台运行无法直观的拿到二维码登录信息。以下将说明后台运行的方法。 1) 运行PHTunnel,注意添加-r或--rpc参数和-d或--daemon参数 2) 通过getsn接口(参阅下表)拿到sn和随机密码 3) 使用接口返回的sn和密码访问https://hsk-api.oray.com/devices/qrcode并获取二维码(参阅下表) 4) 组织逻辑将二维码显示在用户界面上 5) 通过手机扫描二维码并登录花生壳 6) 通过getmgrurl接口(参阅下表)得到用户云管理入口,引导用户进入后台管理界面 获取SN 和 密码 接口 地址: | http://127.0.0.1:16062/ora_service/getsn | | | | | | | | { "result_code":0, // 非0代表错误 "data":{ "device_sn":"设备SN", "device_sn_pwd":"设备密码", "status":1, 在线状态 重试(3), 登录中(2) 在线(1), 离线(0) "public_ip":"116.235.167.135" // 公网IP } } |
二维码刷新接口 获取二维码的图片地址以及二维码有效期 地址: | https://hsk-api.oray.com/devices/qrcode | | | | { "sn": "设备sn", "password": "设备密码" } | | | | | | { "qrcode":"二维码地址", "qrcodeimg":"二维码图片地址", "expires":有效期 } |
映射管理接口 映射管理接口返回管理url,自动登录b.oray.com进行映射管理。 地址: | http://127.0.0.1:16062/ora_service/getmgrurl | | | | | | | | { "result_code":0, "data":"https://xxxx/xxxx" // 为空时说明没有登录帐号 } |
设备帐号解绑接口 地址: | https://hsk-api.oray.com/devices/unbinding | | | | { "sn": "设备sn", "password": "设备密码" } | | | | | | 成功:HTTP状态码为200, 失败:HTTP状态码为500 |
|