不使用 traceroute 确定 TCP/IP 连接问题的原因

不使用 traceroute 确定 TCP/IP 连接问题的原因

我正在尝试从公司网络连接到主机(通过 HTTPS),但我的尝试因超时而失败。我可以解析主机。我知道主机已启动。我知道有一个防火墙通过传入 IP 号进行过滤以保护远程主机。我公司网络中的某些路由器禁用了 Traceroute,因此我无法看到我的数据包去了哪里。我知道我的数据包在路由的某个地方被卡住了。这可能是(我认为)我们公司网络中的路由不好;或者是配置错误的防火墙阻止我在远程主机上访问(而它应该允许我访问)。(结果是后者。)

如果没有 traceroute,是否有任何技术的我怎样才能确定阻止连接的错误配置是在我们公司的网络中,还是在远程主机上?(假设中间的互联网是可靠的。)

完整故事和原始帖子请参阅 SuperUser.com,这可能不是提出这个问题最合适的地方。

答案1

如果你的网络管理员阻止了 ICMP(这已经完成因为错误的原因无论在哪里进行检测,你几乎无能为力。无论你使用哪种协议来检测数据包(Windowstracert.exe使用 ICMP,Windowstraceroute默认使用 UDP,如果你要求使用 TCP),如果 ICMP 协议通常被过滤(尤其是如果外部主机生成的 ICMP 响应也被过滤),你永远无法将有意义的结果返回到你的机器进行诊断 - 因为这些总是会以 ICMP 数据包的形式返回。

答案2

您说路由器上的 traceroute 已禁用。我认为它只能过滤 ICMP 数据包,因此您可以将 traceroute 与 TCP 一起使用。

sudo traceroute -T <host>

答案3

您说您知道主机已启动 - 您如何验证这一点?如果您可以通过任何其他端口访问主机,则路由设置正确。如果您的公司在内部阻止 icmp,以至于您甚至无法验证流量是否流出互联网,请让网络人员为您验证这一点,并询问他们为什么首先在内部路由器上阻止请求和回复(他们应该只在偏执时阻止特定类型)。除此之外,您必须询问远程方,看看他们是否可以在他们的日志中看到您的源 IP。这也表明问题出在他们那边。不过,这些都不是您可以完全独自完成的事情。

答案4

使用hping2可以进行 TCP traceroute 的工具

hping2 www.somehost.com -p 443 --traceroute

相关内容