我想连接到位于 NAT 和防火墙后面的服务器 A,防火墙会阻止所有传入连接。我想访问端口 9000。在我的办公室,我有一个公共 IP 和路由器的控制权。我的想法是在服务器 A 上运行 autossh,建立到我办公室的服务器 B 的隧道。然后使用另一个 autossh 隧道来回并将端口 9000 转发到 9001。我觉得我已经完成了一半。
在远程服务器上,我正在运行一个 systemd 服务:
autossh -M 0 -q -N -p 22 -o ServerAliveInterval=60 -o ServerAliveCountMax=3 -R :2222:localhost:22 [email protected]
现在我可以用我的笔记本电脑连接到服务器 B
ssh [email protected] -p 2222
我正在尝试像这样转发端口:
ssh [email protected] -p 2222 -L :9001:localhost:9000 -N
所以现在我希望我可以从我的笔记本电脑连接到 192.168.1.10:9001,但我的连接被拒绝。
答案1
您应该连接到笔记本电脑(可能是本地主机)上的端口 9001,这会将连接转发到 ssh 端点上的端口 9000。
顺便说一句,您还可以通过以下方式修改您的 autossh:
autossh -M 0 -q -N -p 22 -o ServerAliveInterval=60 -o ServerAliveCountMax=3 -R :2222:localhost:22 -R :9001:localhost:9000 [email protected]
并连接到 192.168.1.10 上的端口 9001,这将转发到 ssh 客户端上的端口 9000。
我想你已经意识到这可能是一种违法行为,会导致解雇。