使用ssh
的隧道功能,进行端口转发。假设当前场景有三台主机:
主机名 | 说明 |
---|---|
localhome | 在局域网内的主机 |
yun | 在公网上有公网IP的云主机 |
mbp | 一台苹果笔记本 |
如果想从 mbp
通过ssh
任意访问localhome
,则需要经过yun
。
部署流程
在 yun 上
运行
ssh -o ServerAliveInterval=30 -fCNL "*:8022:localhost:8020" localhost
该命令将8022
端口上的数据,转发到本地的8020
端口上。
同时需要在云主机的安全组或者防火墙上打开8022
和8020
端口。
在 localhome 上
运行
autossh -o ServerAliveInterval=30 -fCNR 8020:127.0.0.1:22 user@yun_ip
该命令建立了yun
的8020
端口到localhome
的22
端口的隧道。
以上命令均通过
-o
设置了心跳,以免长时间无响应而断开。
SSH 登陆
最后mbp
直接通过以下命令登陆localhome
ssh yun_ip -p 8022
这个访问数据流为 yun:8022 -> yun_ip:8020 -> localhome:22
开机启动
将上述连两条命令分别添加到各自的/etc/rc.local
中即可。
网友评论