ssh-tunnel
文章目录
【注意】最后更新于 May 29, 2019,文中内容可能已过时,请谨慎使用。
使用 ssh 隧道使用外网访问 NAT 内网服务。
情景描述
一台电脑能够 使用 ssh 连接到外部电脑,比如地址是 115.115.115.1
,但是反过来不行,因为这台电脑得到的地址是 10 开头的 NAT 内网地址。
现在希望 外面的 115 地址的机器可以 ssh 到这台 10 地址的机器上,并且访问该机器上面的 web 服务(比如qbittorrent的webui)。
单独使用 ssh 方向透穿不稳定,因为 ssh 不活动一段时间过后这条连接就会被中断,然后你在外面的 115 那里是死活也每办法让 10 那里再重新 ssh到 115这里的啦。
于是 autossh 就被用来干这样一件事情,维持一条持续的 ssh 通道。
反向穿透 ssh
|
|
5678 是autossh的监听端口,2333 就是在外部 115 机器上访问 10 机器的端口号,第一个 22 表示 10 机器的 ssh 在22端口(默认值),后面的表示 115 机器ssh端口在默认的22。
这样做有个问题,就是需要输入 115 机器的ssh密码,我们可以使用 ssh 的 pub key避免输入密码,就像我们使用github那样。
|
|
这样就能实现 10 机器免密码 ssh 到 115 机器。
为了实现开机自动使用 autossh 反向透穿,使用 systemd,
|
|
一通 daemon-reload enable start就可以了。
记得kill掉占用端口的进程,不然gg…
反向穿透 web 服务
这里以 qbittorrent-nox webui 为例。
|
|
重要提示:远程端口和服务端口必须一致,我用的10010端口,否则401连不上。
当然 qbittorrent-nox 需要在 10010端口运行 webui(具体请使用 help)。
最后
|
|