共计 2037 个字符,预计需要花费 6 分钟才能阅读完成。
我的项目背景
公司目前有一些接入到 4G 网络的树莓派,须要通过近程 shell 连贯对其进行治理和日常保护。然而这些设施没有固定的公网 ip,所以须要通过内网穿透来解决。
筹备工作
- 须要进行穿透的树莓派 *N(咱们装置的是 ubuntu 20 零碎,以下操作命令均基于此零碎)
- 一台具备公网 IP/ 域名的服务器,零碎不限(咱们应用的是阿里云 windows server)
- lanproxy
架构原理
这里大略讲一下过程,很多细节须要看后续步骤能力了解
大体流程:
- 首先咱们在阿里云开启内网穿透 lanproxy 服务端,监听 8000 端口
- 在阿里云上 lanproxy 控制台中,为一个树莓派创立密钥(启动客户端的时候须要用到这个密钥)并且指定一个对外端口 10000
- 客户端(树莓派)启动 lanproxy 客户端,连贯到阿里云 8000 端口,单方建设长连贯
- 通过 xshell 连贯到阿里云 10000 端口,即可胜利连贯到该树莓派。
注意事项:
- 以上提及的所有端口基于咱们公司理论我的项目填写,理论配置过程中能够随便填写。
- 以上用到的服务器(阿里云)端口要在防火墙中凋谢,否则无奈应用
架构图:
PS:有的小伙伴可能会问,所有树莓派都连贯到同一个阿里云端口,那么服务端是靠什么来进行路由转发的呢?答案是密钥,这里会在下边的教程中提及。
部署过程
1. 装置服务端
下载服务端–下载地址
链接里边有好多文件,留神别弄混了,服务端的文件名为:proxy-server-0.1.zip
将压缩包解压之后,首先关上 conf/config.properties 文件,内容如下:
server.bind=0.0.0.0
#客户端的连贯端口
server.port=4900
server.ssl.enable=true
server.ssl.bind=0.0.0.0
server.ssl.port=4993
server.ssl.jksPath=test.jks
server.ssl.keyStorePassword=123456
server.ssl.keyManagerPassword=123456
server.ssl.needsClientAuth=false
config.server.bind=0.0.0.0
#服务端后盾界面端口号
config.server.port=8090
#后盾账号
config.admin.username=admin
#后盾明码
config.admin.password=admin
其中有两行特地容易混同的中央须要独自阐明
server.port=4900
config.server.port=8090
其中 server.port 是服务端与被穿透设施通信时用到的端口(架构图中没有画出这个对应的端口),也就是我在上边架构图中画的 8000 端口。
config.server.port 是指服务端后盾界面端口,咱们部署完后,通过 localhost:8090 即可拜访这个界面。
近程端口(就是我上边提到的 10000、10001、10002)不在配置文件中配置,须要去后盾界面中配置!
以上内容能够依据须要批改。ssl 局部因为咱们我的项目中没有用到,故不做解说。
启动服务端须要 java 运行环境,没有的须要自行装置一下!
配置完后,应用 bin/ 目录下的具体 sh 或 bat 文件启动我的项目。通过 locathost:8090(如果你改端口了,就用自定义的端口)拜访后盾,而后依照如下图示操作。
到此为止,咱们装置好了 lanproxy 客户端,并且配置了一台客户端的密钥和穿透端口。须要留神的是,以上用到的端口都须要在防火墙中对外开放(我用的阿里云,须要在阿里云后盾配置平安组策略)。
接下来咱们须要配置客户端。
2. 装置客户端
首先我筹备了一台装有 ubuntu 20 的树莓派(无桌面)。lanproxy 筹备了用 go 编译号的客户端,应用起来非常不便。点击下载客户端
下载链接中,lanproxy-client-* 结尾的都是客户端,须要依据本人的零碎抉择对应的版本。树莓派是 arm 架构的,所以我下载的是 lanproxy-client-linux-arm.tar.gz,如果是应用桌面 cpu 的服务器(英特尔或 amd),则须要下载 lanproxy-client-linux-amd64-20190523.tar.gz 或 lanproxy-client-linux-386-20190523.tar.gz(别离对应 64 位和 32 位机器)
应用树莓派获取压缩包并解压后,应用命令后盾启动程序
sudo nohup client_linux_arm7 -s 服务端 IP 或域名 -p 服务端端口 -k 密钥 &
其中“服务端端口”指的就是方才配置文件中“server.port”字段指定的端口号
3. 测试
客户端启动后,登录 lanprox 控制台,在‘客户端治理’界面即可查看到设施的在线状态。
应用 xshell 进行连贯,输出公网的 ip 和端口号,则能够间接连贯到树莓派里边了。
优化
树莓派增加客户端开机自启性能
待实现
服务器增加服务端开机自启性能
待实现