我在香港,女朋友在中国。
我在两台电脑上都安装了 SSH 服务器。当两台电脑都在香港时,我将它们都连接到互联网(通过我家里的互联网连接),两个方向的 SSH 都可以正常工作。这至少表明两台电脑的设置和防火墙都没有问题。
现在我女朋友的电脑已经搬到中国大陆了,她仍然可以成功通过 SSH 连接到我,但我无法再通过 SSH 连接到她——连接超时错误。甚至尝试 ping 她的电脑(她通过聊天告诉我她的 IP 地址)也没有反应。
我该如何解决这个问题?我可以通过 SSH 在她的计算机上执行操作,这一点非常重要。
我告诉她将电脑连接到墙上的路由器,而不是通过她已有的 Wifi 路由器。
两台电脑都运行的是 Ubuntu Linux。
多谢!
答案1
假设问题不是出在您的 Linux 机器中的设置,那么连接可能被网络中的某些防火墙阻止了。
我找到了这个解决方案(“反向 SSH”),其工作原理是让你的女朋友先通过 SSH 连接到你,然后使用此连接通过 SSH 连接到她:
http://www.vdomck.org/2005/11/reversing-ssh-connection.html
简单的设置(每次你想要连接时,你的女朋友必须做一些工作):
# first SSH from your girlfriend TO your Laptop
ssh -f -N -R 10000:localhost:22 your_username@ip_address_of_YOUR_laptop
# now ssh to port 10000 on your laptop, which will actually connect you to port 22 on your girlfriend's laptop.
# Use the user information that you would use to log into your girlfriend's computer.
ssh girlfriend_username@localhost -p 10000
在链接中的网站上,还有一种更完整的方法,你的女朋友不需要互动。但请先尝试简单的方法,看看它是否有效。