我家里有一个在防火墙后面运行 Linux 的 NAS。我想使用一些服务远程访问它,例如 Transmission GUI(端口 9091)和 webmin(端口 10000),但通过端口 22 上的 SSH 隧道。
为了简单起见,我希望关闭尽可能多的面向网络的端口,只向 NAS 开放端口 22。
我尝试在 PuTTY 中配置隧道(本地端口 10000,remote.ip.address:10000),但我相信在成功 SSH 登录后我仍然遇到防火墙规则。这是 SSH 隧道的正确使用吗?
答案1
您不需要在防火墙上打开隧道端口。您只打开 SSH 端口就可以了。
您可能会遇到以下几个问题之一。
- 本地端口可能已被使用。尝试使用netstat查看端口是否被占用。
- 当您连接到隧道端口时,您会发现它是本地主机(127.0.0.1)而不是远程地址。有些软件可能不喜欢这样。
- 可以在服务器中关闭隧道。在这种情况下,你的隧道将无法工作。
- 如果您通过隧道连接到另一台主机(remote.ip.address 不在您通过隧道连接的主机上),您可能会被 SSH 服务器的 AllowTcpForwarding 设置阻止。
- 如果您通过隧道连接到同一主机上的端口(remote.ip.address 为 127.0.0.1,或服务器上的其他 IP),则通过隧道连接到目标软件可能不喜欢它。例如,某些 VNC 服务器默认阻止相同主机连接以防止出现循环情况。
尝试在启用调试标志的情况下进行连接。
答案2
当我需要穿过防火墙到达需要登录的 voip 电话时,我使用以下命令:
putty.exe -ssh username@publicip -pw password -L localport:privateip:destinationport