基本问题:如果我在跟踪路由读数的跳数之间获得了不错的 ping,但是我无法通过 FTP 连接到主机,这意味着什么?
通过 FTP 连接,我的意思只是使用 FileZilla,错误是“连接超时”。但是,我对该 IP 的跟踪路由读数并未显示存在延迟问题。
我删除了下面的 IP 地址,但读数如下所示:
traceroute to 207.xxx.xxx.xx, 30 hops max, 40 byte packets
1 <server> 0.788 ms 1.135 ms 1.135 ms
2 <server> 0.677 ms 0.688 ms 0.679 ms
3 <server> 4.526 ms 4.500 ms 4.500 m s
4 <server> 1.502 ms 1.507 ms 1.502 ms
5 <server> 4.771 ms ae1.ar2.ord1.us.nla yer.net (69.31.111.146) 4.761 ms 4.734 ms
6 <server> 1.456 ms !N 1.300 ms
有什么想法或建议吗?谢谢!
答案1
是否有 ftp 服务器在监听 207.xxx ?是否有防火墙并且配置为允许连接到 ftp 服务器?
答案2
这意味着该主机可在互联网上访问,但没有响应连接到 FTP 的尝试。
这可能是由于缺少正在运行的 FTP 服务、防火墙阻塞了端口(更有可能是因为您遇到超时而不是拒绝)或两者兼而有之。
答案3
正如 Shane Madden 和 Iain 所说,TCP 端口 21(FTP)上的连接尝试无法成功。您可以尝试使用 TCP 跟踪路由以找出连接断开的位置,例如
nmap -Pn --traceroute -p 21 207.xxx.xxx.xx
或者
tcptraceroute 207.xxx.xxx.xx 21
答案4
首先简单讨论一下使用正确的工具进行测试。
ICMP 工具长期以来一直是测试连通性的传统方法,但它们并不总是好的测试。正如您所发现的,您可以通过 ICMP 顺利访问您的服务器,但不能使用 FTP(在 TCP/IP 上运行)。通过在托管网站的服务器上发送 ICMP 流量来测试网站的延迟会产生有意义且有用的结果吗?可能不会。在这种情况下,像 httping 或 mtr 这样的工具会是更好的选择。
ISC 有一篇关于此问题的精彩文章:Ping 有时很差
因此,出于很多原因,PING 在许多情况下都不是一个好的测试。要么它显示网络状况良好但实际上却很差,要么如果你用它作为性能衡量标准,它测量的并不是你认为的。
人们应该怎么做?首先,测试主机接收和回复传输的正常运行/停机状态。因此,应该使用 tcp/80 而不是 icmp echo 和 echo reply 来测试 Web 服务器。同样,应该使用我们真正希望测量的协议来测量网络的 RTT(往返时间)性能。例如 tcp/80 (http)、tcp/443 (https) 或 tcp/445(IP 上的服务器消息块 (SMB) (Microsoft-DS))等协议。
@Gerald Combs 的建议非常好。尝试使用基于 TCP 的方法来检查连接性。
您可以使用 telnet 验证 TCP/21 是否打开并接收连接:
telnet 207.xxx.xxx.xx 21
如果您可以成功连接,则可以确认您可以访问 FTP 服务器(即没有防火墙阻止您的连接)并且 FTP 服务器正在运行。如果是这种情况,则问题出在应用程序层的某个地方。正如其他人指出的那样,问题更可能是没有 FTP 服务器在监听和/或防火墙阻止了连接。