通过外部服务器在防火墙后面SSH两台计算机

时间:2011-02-18 18:17:51

标签: ssh-tunnel

我在大学拥有两台电脑。它们都在某种防火墙等之后,不允许我通过网络直接连接它们。他们都可以SSH公共计算机,但我无法弄清楚如何从一个到另一个。我还经营一个小网站。我的问题是,我可以使用我的网站的公共地址以某种方式连接我的两台计算机,而没有所有信息流过我的网站并占用我所有的带宽吗?理想情况下,我想在两台计算机之间创建一个ssh隧道。

我已经尝试过Hamachi,它不再适用于macs了,我希望能更好地控制连接。

1 个答案:

答案 0 :(得分:15)

假设你想要通过你的ServerC(你的公共服务器)从MachineA到MachineB(都在大学)ssh。

您需要在ServerC和MachineB上运行sshd。

运行以下命令,假设您的sshd正在侦听MachineB和ServerC上的端口22:

# Forward incoming connections from ServerC:22000 to MachineB:22
(on MachineB) ssh -R22000:127.0.0.1:22 -N user@ServerC
# Forward incoming connections from 127.0.0.1:22000 to ServerC:22000
(on MachineA) ssh -L22000:127.0.0.1:22000 -N user@ServerC
# Establish the link between MachineA and MachineB
(on MachineA) ssh -p 22000 user@127.0.0.1

此方法只需要访问端口22,如果您的大学代理是邪恶的,您可以轻松将其更改为80或443。