我在家里使用 Windows 7 上的 PuTTY 连接到 Debian 5 服务器。我有 ADSL 互联网连接和 D-Link ADSL 调制解调器。
两天前我遇到了一个奇怪的问题。SSH 连接变得非常慢,有时 PuTTY 无法连接,有时它会挂起然后在会话中途超时。我的互联网连接似乎很好,因为我的带宽稳定,我没有丢失任何数据包,包括我所说的服务器,也没有延迟。除了 SSH 之外,一切都运行良好。
我以为可能是 PuTTY 出了问题,所以我尝试了另外 2 个 SSH 客户端,但遇到了同样奇怪的缓慢问题。我无法访问任何其他服务器来查看 SSH 是否存在同样的问题。我的朋友从其他地方连接到上述服务器,但他没有遇到这个问题,所以我认为服务器不是原因。
我还没有尝试在我家的 NAT 中使用另一台计算机来查看它是否有同样的问题。这对我来说毫无意义,因为 2 天前一切都很好。这可能是由 ISP 造成的吗?
有人知道如何解决这个问题或者如何找到原因吗?
谢谢
答案1
您使用的是哪个 ISP?该信息可能很有用,因为使用同一 ISP 的其他人可能能够确认该行为(因为他们有相同的问题)或报告一切正常(表明该 ISP 在 SSH 流量方面没有普遍问题)。
如果是 ISP,则一种可能性是他们改变了流量管理结构,误将您的加密 SSH 连接视为加密 P2P 连接。如果您可以暂时关闭另一端的 Web 服务器而不会造成太多麻烦,请尝试在端口 80 上运行 SSH,看看它是否以这种方式运行得更好(如果是这样,那么某个地方可能正在执行影响 SSH 的基于端口的流量整形)。您还可以尝试通过基于 HTTP 的隧道运行 SSH 进行批量传输(即通过 SCP/SFTP 下载),例如这个看看它有什么不同(它需要进行批量传输,否则任何性能问题都会被隧道增加的额外延迟所隐藏)。
答案2
您是否检查过 IPv6 问题?
据我所知,Windows 7 默认尝试 IPv6。服务器是否有 AAAA DNS 记录?
也许您的朋友与其他 ISP 有可用的 IPv6 或者没有 IPv6。
答案3
这可能与 DNS 解析速度慢有关。请检查 Windows 和路由器上的 DNS 设置。
通常,最好将 Windows 计算机上的 DNS 服务器静态设置为 ISP 提供的 DNS 地址,因为许多家用路由器的解析器非常差/慢。静态设置它们可以消除路由器中的 DNS 转发器。
抱歉,只有当您的连接速度较慢时才值得尝试。您说它经常在中间超时。查看服务器日志,看看那里是否显示任何内容。
可能是很多原因,如果服务器日志中没有显示任何内容,请使用 ssh 或 putty 从其他位置进行检查。例如朋友家。如果那里没有问题,则问题可能出在您的 ISP 上,或者更可能是您的网络中的某个东西,可能是您的机器或路由器。如果您有可以借用的笔记本电脑,请尝试使用本地网络上的另一台电脑,甚至是另一个路由器。此外,暂时禁用 Windows 防火墙或防病毒软件,看看问题是否仍然存在。