是否可以从Linux Azure VM发送traceroutes?

时间:2017-03-16 05:03:09

标签: linux azure traceroute

我创建了一个Linux Azure VM。我想将traceroutes从它发送到我的家庭IP地址。然而,traceroute在每一跳都超时。 我已将VM配置为具有公共静态IP地址。 并为所有端口提供入站和出站规则。

是否有人知道还需要配置哪些才能成功发送traceroute?

一个有趣的事实是,traceroutes从Windows Server Azure VM成功,但不是从Linux Ubuntu 16.04成功。

VM在两种情况下都附加了静态IP:Linux和Windows。

还有一个细节:在Windows Azure VM上,前5个跃点不会回复,但其他的则不会。在Linux Azure VM上,每一跳都不回复。

2 个答案:

答案 0 :(得分:2)

Jason Ye - MSFT的信息是正确的,但他的答案实际上并没有回答你的问题。

自Azure以来,Traceroue无法在Azure上运行,默认情况下为blocks all ICMP traffic。由于traceroute通过从每个跃点接收ICMP数据包(ICMP生存时间到期)来识别跃点,因此您看不到任何跃点。

这就是为什么ping无法从Internet到Azure中的计算机工作的原因。

要解决此问题,您可以give your VM an instance IP address

答案 1 :(得分:0)

因为tracerttraceroute以不同的方式工作 在Windows中,tracert基于 ICMP ,我们可以使用tracert测试从Azure VM到外部的连接。
但在Linux中,traceroute默认情况下基于 UDP 。我们可以添加一个参数来使traceroute在ICMP上工作,但在我的测试中,即使traceroute在ICMP中工作,它与tracert 不同

root@ubuntu:~# traceroute -I 8.8.8.8
traceroute to 8.8.8.8 (8.8.8.8), 30 hops max, 60 byte packets
 1  * * *
 2  * * *
 3  * * *
 4  * * *
 5  * * *
 6  * * *
 7  * * *
 8  * * *
 9  * * *
10  * * *
11  google-public-dns-a.google.com (8.8.8.8)  1.599 ms  1.593 ms  1.783 ms

作为解决方法,我们可以使用其他工具来测试连接,例如tracepath