如何使用 TRACERT 疑難排解 Windows 中的 TCP/IP 問題

適用於: Microsoft Windows Server

如需本文的 Microsoft Windows 2000 版本,請參閱 162326

摘要


本文說明命令列公用程式 TRACERT (Trace Route),此公用程式可用來追蹤「網際網路通訊協定」(IP) 封包傳遞到目的地所經的路徑。


本文討論下列主題:
  • 如何使用 TRACERT 公用程式
  • 如何使用 TRACERT 進行疑難排解
  • 如何使用 TRACERT 的選項

其他相關資訊


如何使用 TRACERT 公用程式

TRACERT 診斷公用程式會傳送「網際網路控制訊息通訊協定」(ICMP) 回應封包給目的地,以確定到目的地所經的路徑。 在這些封包中,TRACERT 會使用各種不同的 IP 存留時間 (Time-To-Live,TTL) 值。 因為路徑上的每台路由器在轉送封包之前必須至少將封包的 TTL 遞減 1,所以 TTL 其實就是一個躍點計數器。 當封包的 TTL 達到零 (0) 時,路由器會將 ICMP「超過時間」訊息傳回給來源電腦。


TRACERT 將 TTL 設為 1,來傳送第一個回應封包,之後每次傳輸都將 TTL 遞增 1,直到目的地回應或達到最大 TTL 為止。 中介路由器傳回的 ICMP「超過時間」訊息會顯示出路徑。 但是請注意,有些路由器會將 TTL 已經過期的封包悄悄丟棄,因此 TRACERT 不會察覺到這些封包。


TRACERT 會依序印出傳回 ICMP「超過時間」訊息的中介路由器清單。 搭配使用 -d 選項與 tracert 命令,可以指示 TRACERT 不要對每個 IP 位址執行 DNS 查閱,因此,TRACERT 會報告路由器近端介面的 IP 位址。


在下列 tracert 命令及其輸出的範例中,封包通過 2 台路由器 (157.54.48.1 和 11.1.0.67) 後到達主機 11.1.0.1。 在這個範例中,預設閘道是 157.54.48.1,而 11.1.0.0 網路上路由器的 IP 位址是 11.1.0.67。

命令:

C:\>tracert 11.1.0.1
命令的輸出:

Tracing route to 11.1.0.1 over a maximum of 30 hops
---------------------------------------------------
1 2 ms 3 ms 2 ms 157.54.48.1
2 75 ms 83 ms 88 ms 11.1.0.67
3 73 ms 79 ms 93 ms 11.1.0.1

Trace complete.

如何使用 TRACERT 進行疑難排解

您可以使用 TRACERT 找出封包在網路上停止的位置。 在下列範例中,預設閘道發現 22.110.0.1 上的主機沒有任何有效路徑。 這可能是因為路由器有設定問題,或是 22.110.0.0 網路不存在,而顯示錯誤的 IP 位址。

命令:

C:\>tracert 22.110.0.1
命令的輸出:


Tracing route to 22.110.0.1 over a maximum of 30 hops
-----------------------------------------------------
1 157.54.48.1 reports: Destination net unreachable.

Trace complete.
對於有多條路徑可以通到同一點的大型網路,或是涉及許多中介元件 (路由器或橋接器) 的大型網路,TRACERT 是很有用的疑難排解工具。


如何使用 TRACERT 的選項

您可以將 TRACERT 搭配許多命令列選項一起使用,雖然在進行標準疑難排解時通常用不到這些選項。


下列命令語法範例顯示所有可能的選項:
tracert -d -h maximum_hops -j host-list -w timeout target_host
參數的功能:


-d
Specifies to not resolve addresses to host names

-h maximum_hops
Specifies the maximum number of hops to search for the target

-j host-list
Specifies loose source route along the host-list

-w timeout
Waits the number of milliseconds specified by timeout for each
reply

target_host
Specifies the name or IP address of the target host