我有一台机器,我可以使用来自不同网络的 ssh 连接它。但是当我搬到其他国家时我就无法连接了。可能是什么原因?
我能够 ping 服务器,但在尝试进行 ssh 连接时出现超时错误。
更新1:
路由追踪
1 1 ms 1 ms 1 ms <ip>
2 5 ms 1 ms 5 ms 192.168.10.1
3 5 ms 4 ms 6 ms 85.88.129.209
4 5 ms 4 ms 4 ms 85.88.144.97
5 15 ms 15 ms 17 ms te0-3-0-0-pr1.MAD.router.colt.net [212.74.87.17]
6 17 ms 14 ms 12 ms uni2-1.espanix.net [193.149.1.12]
7 * * * Time out.
8 * * * Time out.
9 * * * Time out.
10 * * * Time out.
11 * * * Time out.
12 41 ms 43 ms 38 ms <my_ip>
远程登录:
Connecting to <ip>... It cannot open connection to host on port 22. Connection error.
SSH -v:
Event Log: Writing new session log (SSH raw data mode) to file: file.log
Event Log: Looking up host "<ip>"
Event Log: Connecting to <ip> port 22
Event Log: Failed to connect to <ip>: Network error: Connection timed out
Event Log: Network error: Connection timed out
答案1
对我来说这听起来像是防火墙问题。尝试使用带有 -v 标志的 ssh 来调试输出。这将使您更好地了解问题所在。还可以尝试 telnet 到端口 22 上的 ssh 服务器,如下所示:
telnet yourserver 22
您应该会收到包含 ssh 版本号的响应。
答案2
这听起来像是该特定端口上的防火墙或代理块已到位。尝试 tcptraceroute,它应该有助于查明您被阻止的位置。
tcptraceroute serveraddress 22
(假设 ssh 服务器位于标准端口 22 上。)
另外,使用 ssh 开关 -vvv 并检查输出。通过 tee 管道输出,因为会有很多。
如果您发布 -vvv 的输出,请务必小心。它可以包含您不希望公开的内容。
ISP 可能会阻止,或者国家可能有阻止规则和法律。我的回答是基于这在您所在的司法管辖区是合法的。