Linux traceroute命令用於顯示數據包到主機間的路徑
traceroute指令讓你追蹤網絡數據包的路由途徑,預設數據包大小是40Bytes,用戶可另行設置。
Ubuntu命令行輸入:
后面每一行都顯示***
- 其中出現了些零散的'',這是由於中間的router的CPU太忙或者中間路由器不回送TTL-expired包產生的*
windows命令行輸入:tracet www.baidu.com
- 查詢原因:linux虛擬機在traceroute時,默認使用UDP報文,而不是使用ICMP報文;而防火牆為了方便網絡調試是放行了ICMP報文,但沒有放行UDP報文,這就導致了linux虛擬機的traceroute報文(UDP)被防火牆攔截了,windows虛擬機的traceroute報文(ICMP)正常通行
第一次解決:linux虛擬機在traceroute的時候可以加上選項-I,則traceroute會使用ICMP報文發送
使用時需要進入root模式:sudo traceroute -I www.baidu.com
但是可以看到中間仍然都是'*'
- 解決辦法:把虛擬機的網絡連接方式改為'橋接'即可