利用ssh反向代理从公网访问局域网内的树莓派

利用ssh反向代理从公网访问局域网内的树莓派

本文参考了这篇文章:https://segmentfault.com/a/1190000002718360
冰雪殿于2015年04月29日发布在segmentfault上,特此感谢

环境

机器 ip 用户名 备注
树莓派 局域网:192.168.0.111 pi
腾讯云服务器 T:T:T:T ubuntu T:T:T:T是腾讯给的公网ip

配置

  • 首先在树莓派上配置:
    ssh -fCNR 9333:192.168.0.111:22 [email protected]
    这个的意思是将树莓派上的22端口绑定到云服务器上的9333端口
    会要求输入云服务上ubuntu用户的密码
    完成后可以在云服务上用netstat -ale |grep 9333看到结果:
    这里写图片描述
  • 在云服务上执行:
    ssh -fCNL "*:9999:localhost:9333" ubuntu@T:T:T:T
    这个的意思是在云服务上建立正向代理,建立本地转法。当外网要连接树莓派时,应当连接云服务器的9999端口,服务器再转发到9333端口
    完成后可以在云服务器上用netstat -ale |grep 9999看到结果:
    这里写图片描述
  • 在本地使用ssh连接树莓派:
    ssh -p 9999 pi@T:T:T:T
    连接成功:
    这里写图片描述

ssh连接不稳定性

这种反向代理的方式穿透内网存在不稳定性,具体来说是ssh长时间不操作会退出,尝试设置了ClientAliveInterval和ServerAliveInterval参数也无济于事。
后来考虑花生壳,结果这个东西需要收集很多个人信息、需要付费貌似、而且听名字就感觉有后门。。所以放弃
又尝试了一个免费的ngrok服务器https://ngrok.cc/。貌似被墙了,连上的几率不大,最终决定自己来搭,安全放心又稳定。
搭建过程移步https://blog.csdn.net/LeeHDsniper/article/details/81188432

猜你喜欢

转载自blog.csdn.net/leehdsniper/article/details/53982218