利用ssh反向代理树莓派
如果你没有一台公网服务器,可以不用继续读下去了
痛点与第一性原理
首先由于当前ipv4资源枯竭和运营商出于安全考虑的原因,网络上多分到动态的ip或者nat的局域网ip,加上防火墙限制了tcp的主动连接方向,所以很难直接在公网访问局域网的设备。但是玩树莓派的时候我们想要在外网连接树莓派做一些事情,这就是痛点。利用一台公网服务器坐反向代理服务器我们就可以做到这点了,原理是利用充当公网服务器充当了一座“桥”,pi先主动建立一条连接到树莓派上,这样公网服务器就可以和pi保持通信了称为连接“A”,同时在公网服务器上开一个端口监听别的pc的连接”B“,这样公网服务器把连接B的流量专项连接A实现了反向代理的实现了pc穿过防火墙和局域网访问pi的效果。
pi上建立pi到公网的连接
ssh -CqTfnN -R 0.0.0.0:1234:localhost:22 ubuntu@test.server
这样就建立了一个本地pi到test.server的1234端口的连接,之后test.server就可以利用这个端口和pi通信了。test.server是云服务器的域名或者ip
服务器上建立代理端口
ssh -fCNL "*:1235:localhost:1234" ubuntu@test.server
这样是建立一个1235端口监听别的客户机的请求,当1235端口收到数据时候把数据转给1234端口,实现了“代理”的效果。pc只要像1235端口发起请求就和直接访问pi的22端口一样。
客户机上访问pi
ssh -p 1235 ubuntu@test.server
就可以连接树莓派了
记得放开防火墙的tcp 1234 1235端口的访问权限哦