Test-NetConnection 是一個可以用來測試網路連線的 PowerShell 指令。
它可以用來做以下的用途:
- 測試 ping 連線,確認是否能夠與遠端主機通訊。
- 測試 TCP 連線,確認是否能夠在指定的埠口與遠端主機建立連線。
- 測試路由追蹤,確認到達遠端主機的路徑和跳躍數。
- 測試路由選擇,確認本機的 IP 介面、IPsec 規則和網路隔離內容。
Test-NetConnection
參數如下:
Test-NetConnection [-ComputerName] [-TraceRoute] [-Hops] [-InformationLevel] [<CommonParameters>] Test-NetConnection [-ComputerName] [-CommonTCPPort] [-InformationLevel] [<CommonParameters>] Test-NetConnection [-ComputerName] [-Port] [-InformationLevel] [<CommonParameters>] Test-NetConnection [-ComputerName] [-DiagnoseRouting] [-ConstrainSourceAddress] [-ConstrainInterface] [<InformationLevel>] [<CommonParameters>]
[-ComputerName] 參數用來指定要測試連線的遠端主機名稱或 IP 位址。
可以是一個完整的網域名稱:google.com
可以是一個 IPv4 的 IP 位址:172.218.163.79
可以是一個 IPv6 的 IP 位址:2607:f8b0:4006:80a::200e
可以是一台電腦名稱:Computer-Name,則會先執行 DNS 查詢,將電腦名稱解析為 IP 位址,再進行 ping 測試或 TCP 測試。
範例一
PS D:\> Test-NetConnection -ComputerName google.com ComputerName : google.com RemoteAddress : 141.xx.xx.10 InterfaceAlias : Wi-Fi SourceAddress : 192.168.0.99 PingSucceeded : True PingReplyDetails (RTT) : 21 ms
[-TraceRoute] 參數用來執行路由追蹤。
路由追蹤是一種測試網路連線的方法,可以顯示到達遠端主機的路徑和跳躍數。跳躍數是指網路封包在到達目的地之前,通過的中繼節點的數量。
路由追蹤可以幫助我們判斷網路連線的品質和效能,以及找出可能的網路問題。
範例二
PS D:\> Test-NetConnection -ComputerName google.com -TraceRoute ComputerName : google.com RemoteAddress : 141.xx.xx.22 InterfaceAlias : Wi-Fi SourceAddress : 192.168.0.99 PingSucceeded : True PingReplyDetails (RTT) : 27 ms TraceRoute : 192.168.0.1 0.0.0.0 10.xx.xxx.64 10.xx.xx.34 10.xx.xx.139 10.xx.xx.146 10.xx.xx.121 10.xx.xx.54 202.xx.xx.226 72.xx.xx.136 108.xx.xx.33 209.xx.xx.115 142.xx.xx.218
[-Hops] 參數用來指定路由追蹤的最大跳躍數。
跳躍數是指網路封包在到達目的地之前,通過的中繼節點的數量。不指定 -Hops 參數,則預設值是 30。指定則必須是一個介於 1 到 255 之間的整數。
範例三
PS D:\> Test-NetConnection -ComputerName www.google.com -TraceRoute -Hops 7 WARNING: Trace route to destination 141.xx.xx.5 did not complete. Trace terminated :: 10.xx.xx.11 ComputerName : www.google.com RemoteAddress : 141.xx.xx.5 InterfaceAlias : Wi-Fi SourceAddress : 192.168.0.99 PingSucceeded : True PingReplyDetails (RTT) : 41 ms TraceRoute : 192.168.0.1 0.0.0.0 10.xx.xx.64 10.xx.xx.34 10.xx.xx.149 10.xx.xx.146 10.xx.xx.121
範例四
PS D:\> Test-NetConnection www.google.com -TraceRoute -Hops 7 WARNING: Trace route to destination 141.xx.xx.5 did not complete. Trace terminated :: 10.xx.xx.11 ComputerName : www.google.com RemoteAddress : 141.xx.xx.5 InterfaceAlias : Wi-Fi SourceAddress : 192.168.0.99 PingSucceeded : True PingReplyDetails (RTT) : 41 ms TraceRoute : 192.168.0.1 0.0.0.0 10.xx.xx.64 10.xx.xx.34 10.xx.xx.149 10.xx.xx.146 10.xx.xx.121
[-CommonTCPPort] 參數用來測試與遠端主機的協定(Port)連線狀態。
TCP Port 是一種用來在網路上傳輸資料的通道,不同的服務或協定代表不同的 Port 號碼。
範例五
指定要測試 HTTP 服務或協定名稱。
PS D:\> Test-NetConnection -ComputerName www.google.com -CommonTCPPort HTTP ComputerName : www.google.com RemoteAddress : 141.xx.xx.5 RemotePort : 80 InterfaceAlias : Wi-Fi SourceAddress : 192.168.0.99 TcpTestSucceeded : True
此命令會先執行 DNS 查詢,將電腦名稱解析為 IP 位址,再進行 TCP 測試。輸出會顯示 DNS 查詢結果、遠端 IP 位址、遠端 Port 號碼、來源 IP 位址和 TCP 測試結果。
[-Port] 參數用來指定要測試 TCP 或 UDP 的 Port。
這個參數可以接受一個或多個 Port。
範例六
使用 -Port 參數來指定要測試的 Port 號碼。
PS D:\> Test-NetConnection -ComputerName www.google.com -Port 80 ComputerName : www.google.com RemoteAddress : 141.xx.xx.5 RemotePort : 80 InterfaceAlias : Wi-Fi SourceAddress : 192.168.0.99 TcpTestSucceeded : True
[-DiagnoseRouting] 參數用來診斷路由問題。
這個參數會在目標電腦無法連線時,執行一個 traceroute 的動作,並顯示每一個中繼點的 IP 位址和回應時間。以便找出網路連線中斷的位置。
範例七
PS D:\> Test-NetConnection -ComputerName www.google.com -DiagnoseRouting ComputerName : www.google.com RemoteAddress : 172.xx.xx.36 SelectedSourceAddress : 192.168.0.99 OutgoingInterfaceIndex : 13 SelectedNetRoute : DestinationPrefix: 0.0.0.0/0 NextHop: 192.168.0.1 RouteDiagnosticsSucceeded : True
[-ConstrainSourceAddress] 參數用來指定要使用的來源 IP 位址。
這個參數可以指定一個本機的 IP 位址,來測試目標電腦的連線。這個參數只能在 -DiagnoseRouting 參數也被指定的情況下使用。
範例八
使用本機的 192.168.0.99 位址,來診斷 www.google.com 的路由問題。
PS D:\> Test-NetConnection -ComputerName www.google.com -DiagnoseRouting -ConstrainSourceAddress 192.168.0.99 ComputerName : www.google.com RemoteAddress : 141.xx.xx.22 ConstrainSourceAddress : 192.168.0.99 SelectedSourceAddress : 192.168.0.99 OutgoingInterfaceIndex : 13 SelectedNetRoute : DestinationPrefix: 0.0.0.0/0 NextHop: 192.168.0.1 RouteDiagnosticsSucceeded : True
[-ConstrainInterface] 參數用來指定要使用的網路介面。
這個參數可以指定一個本機的網路介面,來測試目標電腦的連線。這個參數只能在 -DiagnoseRouting 參數也被指定的情況下使用。
查看所有 Ethernet 介面的索引參閱 Get-NetIPInterface 命令。
範例九
指定本機的 Ethernet 介面索引,來診斷 www.google.com 的路由問題。
PS D:\> Test-NetConnection -ComputerName www.google.com -DiagnoseRouting -ConstrainInterface 13 ComputerName : www.google.com RemoteAddress : 141.xx.xx.22 ConstrainInterfaceIndex : 13 SelectedSourceAddress : 192.168.0.99 OutgoingInterfaceIndex : 13 SelectedNetRoute : DestinationPrefix: 0.0.0.0/0 NextHop: 192.168.0.1 RouteDiagnosticsSucceeded : True
[-InformationLevel] 參數用來指定要顯示的診斷資訊的詳細程度的。
這個參數可以接受以下的值:Quiet, Normal, Detailed。預設的值是 Normal。不同的值會影響命令的輸出內容和格式。
Quiet:
這個參數值命令只回傳一個布林值,表示連線是否成功。適合用於需要判斷連線狀態的腳本中。
範例十
PS D:\> Test-NetConnection -ComputerName www.google.com -InformationLevel Quiet True
Normal:
這個參數值命令回傳一些基本的診斷資訊,例如目標電腦的名稱、IP 位址、介面別名、來源位址、Ping 測試或 TCP 測試的結果等。
適合用在需要查看一些常用資訊的情況中。
範例十一
PS D:\> Test-NetConnection -ComputerName www.google.com ComputerName : www.google.com RemoteAddress : 172.xx.xx.36 InterfaceAlias : Wi-Fi SourceAddress : 192.168.0.99 PingSucceeded : True PingReplyDetails (RTT) : 34 ms
Detailed:
這個參數值命令回傳最詳細的診斷資訊,例如目標電腦的名稱解析結果、符合的 IPsec 規則、網路隔離內容、介面度量值、路由或來源位址選擇結果等。
適合用在需要深入分析和排除問題的情況中。
範例十二
PS D:\> Test-NetConnection -ComputerName www.google.com -InformationLevel Detailed ComputerName : www.google.com RemoteAddress : 141.xx.xx.22 NameResolutionResults : 141.xx.xx.22 InterfaceAlias : Wi-Fi SourceAddress : 192.168.0.99 NetRoute (NextHop) : 192.168.0.1 PingSucceeded : True PingReplyDetails (RTT) : 26 ms
留言列表