ssh -R 2242:localhost:22 E sleep 999999999
创建从 E 到 D 的端口转发:任何使用 E 上的 2242 端口建立的连接都会中继到 D 上的 22 端口。22 端口是 SSH 端口,所以当你运行 ssh -p 2242 E 时,这将使你连接到 D,在那里你可以登录。为了自动化此过程,你可以在 ~/.ssh/config 中定义一个别名,像下面这样(PuTTY 有类似的设置,请参考其手册):
Host dorm
UserName bob
HostName E
Port 2242
你可以通过这种方式路由多个端口。例如,要将 E 上的端口 8042 转发到 D 上的端口 80:
ssh -R 2242:localhost:22 -R 8042:localhost:80 E sleep 999999999
每次在D盘上启动网络连接时,您都需要重新运行该命令。
ssh登录该机器,并通过该ssh会话将任意远程端口转发到适当的本地(在校园机器上)端口 - OpenSSH的选项是-R。然后,您将连接到非NAT的机器上的转发端口,校园计算机上的ssh会将数据通过校园NAT进行隧道传输。有点笨拙,但它能正常工作。