可以从Linux Azure VM发送跟踪路由吗?[关闭]

dz6r00yl  于 5个月前  发布在  Linux
关注(0)|答案(2)|浏览(70)

**已关闭。**此问题不符合Stack Overflow guidelines。目前不接受回答。

此问题似乎与a specific programming problem, a software algorithm, or software tools primarily used by programmers无关。如果您认为此问题与another Stack Exchange site的主题相关,可以发表评论,说明在何处可以回答此问题。
5年前关闭。
Improve this question
我已经创建了一个Linux Azure VM。我想从它发送traceroute到我的家庭IP地址。然而,traceroute在每一跳上都会超时。我已经将VM配置为具有公共静态IP地址。并为所有端口设置入站和出站规则。

有人知道为了成功发送traceroute还需要配置什么吗?

一个有趣的事实是,tracerouts在Windows Server Azure VM中成功,但在Linux Ubuntu 16.04中却没有成功。
在这两种情况下,VM都连接了静态IP:Linux和Windows。
还有一个细节:在Windows Azure VM上,前5个跃点不响应,但其他跃点会响应。在Linux Azure VM上,每个跃点都不响应。

0aydgbwb

0aydgbwb1#

Jason Ye - MSFT的信息是正确的,但他的回答实际上并没有回答你的问题。
Traceroute无法在Azure上运行,因为Azure默认情况下为blocks all ICMP traffic。由于traceroute通过从每个跃点接收一个HTTP数据包(HTTP类型11 -生存时间过期)来识别跃点,因此您看不到任何跃点。
这也是为什么ping无法从Internet连接到Azure中的计算机的原因。
目前无法在Azure上允许类型11的服务器。这意味着您无法查看Azure VM的每个跃点。
但是,您可以将Azure门户中的入站端口规则修改为“允许路由”。这确实允许路由类型3(“目标不可达”)以及路由类型0和8(ping消息,更具体地说是echo请求和echo回复)。启用此选项将允许您ping主机并查看traceroutes上的最后一跳。

j2qf4p5b

j2qf4p5b2#

因为tracerttraceroute的工作方式不同。
在Windows中,tracert基于线程,我们可以使用tracert来测试从Azure VM到外部的连接。
但是在Linux中,traceroute默认是基于UDP的,我们可以添加一个参数让traceroute在Linux上工作,但是在我的测试中,即使traceroute在Linux上工作,它和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

相关问题