是否可以从 Linux Azure VM 发送跟踪路由?

Is it possible to send traceroutes from Linux Azure VM?

我已经创建了一个 Linux Azure VM。我想从它发送跟踪路由到我的家庭 ip 地址。但是,traceroute 在每一跳都会超时。 我已将虚拟机配置为具有 public 个静态 IP 地址。 并为所有端口设置入站和出站规则。

有人知道为了成功发送跟踪路由还需要配置什么吗?

一个有趣的事实是跟踪路由从 Windows 服务器 Azure VM 成功,但不是从 Linux Ubuntu 16.04.

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

一个更详细的信息:在 Windows Azure VM 上,前 5 个跃点不回复,但其他的回复。在 Linux Azure VM 上,每个跃点都不回复。

因为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

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

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

这与无法从 Internet ping 到 Azure 中的计算机的原因相同。

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