共用方式為


使用 PortQry 命令行工具

PortQry 是命令行工具,可用來協助針對 TCP/IP 連線問題進行疑難解答。 此工具會報告本機電腦或遠端電腦上目標 TCP 和用戶數據報通訊協定 (UDP) 埠的狀態。 它也會提供本機計算機埠使用量的詳細資訊。

因為 PortQry 是用來做為疑難解答工具,所以使用它來針對特定問題進行疑難解答的用戶應該有足夠的計算環境知識。

您可以從下列其中一種模式的命令提示字元使用 PortQry:

  • 命令行模式。 您可以使用此模式來針對本機或遠端電腦進行疑難解答。
  • 本機模式。 在此模式中,您可以使用數個要針對本機計算機進行疑難解答的參數。
  • 互動式模式。 類似於命令行模式,但您可以使用快捷方式命令和參數。

注意

您可以下載稱為 PortQryUI 的個別工具,其中包含 PortQry 的圖形化 UI。 PortQryUI 有數個功能,可讓您更輕鬆地使用 PortQry。 若要取得 PortQryUI 工具,請參閱 PortQryUI - PortQry 命令行埠掃描器的使用者介面。

適用於: 支援的 Windows 版本

PortQry 測試和結果

如果目標 UDP 埠未傳回因特網控制訊息通訊協定 (ICMP) 「目的地無法連線」訊息,則一般埠掃描工具會報告埠具有 接聽 狀態。 基於下列其中一個或兩個原因,此結果可能不正確:

  • 如果沒有對導向數據報的回應,目標埠可能是 FILTERED
  • 大部分的服務不會回應傳送給他們的未格式化用戶數據報。 一般而言,接聽埠的服務或程式只會回應使用特定會話層或應用層通訊協定的訊息。

若要產生更精確且實用的結果,PortQry 會使用雙步驟測試程式。

步驟 1:埠狀態測試

PortQry 會將埠的狀態報告為三個值之一:

  • 聽:此回應表示進程正在目標埠上接聽。 PortQry 收到來自目標埠的回應。
  • NOT LISTENING:此回應表示沒有進程正在目標埠上接聽。 PortQry 從目標埠收到下列其中一個 ICMP 訊息:

    目的地無法連線到的埠無法連線

  • FILTERED:此回應表示正在篩選目標埠。 PortQry 未收到來自目標埠的回應。 進程可能或可能不會接聽目標埠。 根據預設,PortQry 會在傳回 FILTERED 的回應之前查詢 TCP 通訊埠三次,並在傳回 FILTERED回應之前查詢 UDP 埠一次。

步驟 2:特製化測試

如果目標 UDP 埠沒有回應,PortQry 會報告埠為 LISTENING 或 FILTERED。 不過,當您針對連線問題進行疑難解答時,知道埠正在篩選或正在接聽會很有用。 這在包含一或多個防火牆的環境中特別如此。

PortQry 會使用第二組測試來精簡其埠狀態報告,以與在目標埠上接聽的服務或程序互動。 在此測試中,PortQry 會執行下列動作:

  • PortQry 會使用位於 %SYSTEMROOT%\System32\Drivers\Etc 資料夾中的服務檔案來判斷每個埠上接聽的服務。
  • PortQry 會建立專為預期服務或程式所建構的訊息,然後將該訊息傳送至目標埠。 視服務或程式而定,訊息可能會要求可用於疑難解答的資訊,例如:
    • 網域和域控制器資訊 (LDAP 查詢)
    • 已註冊的用戶端服務和連接埠 (RPC 查詢)
    • 是否允許匿名存取 (FTP 查詢)
    • MAC 位址 (NetBIOS 查詢)
    • Mspclnt.ini檔案資訊 (ISA 伺服器查詢)
  • PortQry 會剖析、格式化,然後從服務或程式傳回回應,做為其測試報告的一部分。

針對本機計算機進行疑難解答的其他測試

當您必須在安裝 PortQry 的電腦上針對埠進行疑難解答時,請在本機模式中使用 PortQry。 當您在命令列使用本機模式參數時,您可以在本機電腦上執行如下的工作:

  • 列舉埠對應
  • 監視特定埠是否有變更
  • 監視特定程式是否有變更

如需詳細資訊,請參閱 在本機 (命令行) 模式中使用 PortQry。

在命令行模式中使用 PortQry

您可以使用與任何其他命令行工具相同的方式,在命令提示字元中執行 PortQry。 本文中的大部分範例都會顯示命令行 PortQry 命令。 在命令行模式中,您可以將多個選項新增至命令字串,以指定要執行的查詢,以及如何執行它。 若要在命令行模式中執行 PortQry,請執行使用下列語法的命令:

portqry.exe -n <name_to_query> [options]

注意

在此命令中, <name_to_query> 是要查詢的IP位址、計算機名稱或網域。 此為必要參數。 [options] 是選擇性參數。

命令行模式的 PortQry 參數

下列參數可在一般命令行模式中使用:

參數 描述 註解
-n <name> 查詢特定目的地
  • 這是命令行模式的唯一必要參數。
  • 名稱<>值代表要查詢之計算機的名稱或IP位址。 這個值不能包含空格。
-p <protocol> 使用指定的通訊協定
  • 通訊 <協定> 值代表要查詢的埠類型(可能的值為 tcpudpboth
  • 預設值是 tcp
-e <port_number> 指定目標連接埠(也稱為「連接點」)
  • <>port_number值代表在目的地計算機上查詢的埠。
  • 預設值是 80
-o <port_number>,<port_number> 依序指定多個目標埠 port_number,port_number><>值代表以逗號分隔的埠號碼清單,以序列查詢。< 請勿在逗號周圍使用空格。
-r <port_number>:<port_number> 指定目標埠的範圍
  • <>port_number:<port_number>值代表以冒號分隔的開始和結束埠號碼。 請勿在冒號周圍使用空格。
  • 起始埠號碼必須小於結束埠號碼。
-l <filename.txt> 產生記錄檔
  • <>filename.txt值代表記錄檔的名稱和擴展名。 這個值不能包含空格。
  • 當命令執行時,PortQry 會在安裝它的目錄中建立記錄檔。
  • 如果檔案已經存在,PortQry 會要求您確認要覆寫它(除非您也使用 -y 參數)。
-y 覆寫先前的記錄檔
  • 當您搭配 -l使用 -y 時,PortQry 會覆寫現有的記錄檔,而不會提示您確認動作。
  • 如果 PortQry 命令字串不包含 -l,PortQry 會 -y忽略 。
-sl 等待額外的時間回應(也稱為慢速連結延遲) 使用此參數,在 PortQry 判斷埠為 NOT LISTENING 或已篩選埠之前,PortQry 等候 UDP 埠回應的時間加倍。 當您查詢緩慢或不可靠的網路連結時,一般等候時間可能太短而無法接收回應。
-nr 略過反向名稱查閱
  • 根據預設,當您使用 -n 來指定目標計算機的IP位址時,PortQry 會執行反向名稱查閱,將IP位址解析為名稱。 此程式可能很耗時,特別是當 PortQry 無法解析 IP 位址時。 使用 -nr 來略過查詢的此步驟。
  • 如果您使用 -n 指定電腦或網功能變數名稱,PortQry 會 -nr忽略 。
-sp <port_number> 從特定來源埠查詢
  • <>port_number值代表 PortQry 用來傳送查詢的埠。
  • PortQry 無法使用另一個進程已經使用的埠。 如果您指定的埠已在使用中,PortQry 會傳回下列錯誤訊息:
    無法使用指定的來源埠。
    埠已在使用中。
    指定未使用中的埠,然後再次執行命令。
  • 在下列情況下,PortQry 會針對查詢的第一個測試使用指定的埠,但不會使用第二個測試:
    • RPC (TCP 和 UDP 連接埠 135)
    • LDAP (UDP 連接埠 389)
    • NetBIOS 配接器狀態查詢 (UDP 連接埠 137)
    在這些情況下,PortQry 會針對第二個測試使用暫時埠。 發生這種情況時,PortQry 會記錄其輸出中的「使用暫時來源埠」。
  • 如果已安裝 PortQry 的電腦也會執行 IPSec 原則代理程式,則 UDP 連接埠 500 可能無法作為來源埠使用。 若要暫時關閉 IPSec 原則代理程式,以便您可以使用埠 500,請執行 net stop PolicyAgent。 完成測試之後,請執行 net start PolicyAgent
-cn !<community_name>! 查詢SNMP 社群
  • <>community_name值代表要查詢的SNMP社群名稱。 您必須使用驚嘆號來分隔此值,如左欄所示。
  • 如果 SNMP 服務未接聽目標埠,PortQry 會 -cn忽略 。
  • 預設社群名稱為 public
-q 以無訊息模式執行 PortQry
  • 當您使用 -q時,PortQry 會隱藏除了錯誤訊息以外的所有屏幕輸出。
  • 若要檢視錯誤訊息以外的輸出,請搭配 -l使用 -q 。 PortQry 會在記錄檔中記錄一般輸出。
  • 如果記錄檔已經存在,而且您與-l-q起使用,PortQry 會覆寫現有的記錄檔,而不會提示您。
  • 您無法與、 -r-p both-o-q起使用。
  • 當您使用批次處理檔執行 PortQry 命令字串時,此參數特別有用。

命令行模式中參數的備註

  • 任何埠號碼值都必須是介於 1 到 65535 之間的有效埠號碼,且包含 。
  • -e-o-r 參數互斥。 單一 PortQry 命令只能使用其中一個參數。
  • UDP 連接埠 389 (LDAP) 的查詢可能無法針對執行 Windows Server 2008 的域控制器運作。 若要檢查 UDP 連接埠 389 上執行之服務的可用性,您可以使用 Nltest 而不是 PortQry。 如需詳細資訊,請參閱 Nltest
  • 當您使用 -e-o查詢埠 135 (RPC) 時,PortQry 會傳回目前向 RPC 端點對應程式註冊的所有端點。

    重要

    當您使用 -r時,PortQry 不會查詢 RPC 端點對應程式。

  • 當您查詢埠 53 (DNS) 時,PortQry 會使用 TCP 和 UDP 來傳送 DNS 查詢 portqry.microsoft.com 。 如果伺服器傳回回應,PortQry 會判斷埠為 LISTENING。

    注意

    DNS 伺服器傳回正回應或負回應並不重要。 任何回應都表示埠正在接聽。

在本機 (命令行) 模式中使用 PortQry

除了在遠端目標電腦上查詢埠,您也可以在本機模式中使用 PortQry 來取得有關 PortQry 執行所在本機電腦上的 TCP 連接埠和 UDP 連接埠的詳細資訊。 使用下列語法在本機模式中執行 PortQry:

portqry -local | -wpid <pid> | -wport <port_number> [-wt <seconds>] [-l <filename.txt>] [-v]

此語法中的佔位元會在下列本機模式參數的表格中說明:

參數 描述 註解
-local 擷取本機資訊
  • 列舉本機計算機上目前使用中的所有 TCP 和 UDP 埠對應。 此輸出類似於命令產生的輸出 netstat.exe -an
  • 在支援 PID 對埠對應的電腦上,輸出會包含使用本機電腦上埠之進程的 PID。 如果您使用詳細資訊選項 (-v),輸出也會包含 PID 所屬的服務名稱,並列出進程已載入的所有模組。 您可以使用這項資訊來判斷哪些埠與計算機上執行的特定程式或服務相關聯。
-wport <port_number> 監看埠
  • 監視特定埠是否有變更。 <>port_number值代表要監視的埠。
  • 在 TCP 連接埠的情況下,PortQry 會報告下列狀態之間的變更:
    • CLOSE_WAIT
    • 既定
    • FIN_WAIT_1
    • LAST_ACK
    • SYN_RECEIVED
    • SYN_SEND
    • TIMED_WAIT
  • 針對 UDP 連接埠,PortQry 會報告程式是否系結至埠,但不會報告 UDP 埠是否接收數據報。
  • 若要停止監視,請按 Esc 鍵。
-wpid <pid> 監看程式識別碼 (PID)
  • 監視特定 PID,以取得連線數目和狀態的變更。 <>process_number值代表要監視的 PID。
  • 若要停止監視,請按 Esc 鍵。
-wt <seconds> 檢查特定間隔
  • 檢查所 -wport 識別的目標狀態,或 "-wpid 以 /<seconds> 值表示的間隔。
  • 秒<>值必須介於 1,200 之間(含)。
  • 預設值是 60
  • 您無法單獨使用 或與搭配-local使用-wt
-l <filename.txt> 產生記錄檔
  • <>filename.txt值代表記錄檔的名稱和擴展名。 這個值不能包含空格。
  • 當命令執行時,PortQry 會在安裝它的目錄中建立記錄檔。
  • 如果檔案已經存在,PortQry 會要求您確認要覆寫它(除非您也使用 -y 參數)。
-y 覆寫先前的記錄檔
  • 當您搭配 -l使用 -y 時,PortQry 會覆寫現有的記錄檔,而不會提示您確認動作。
  • 如果 PortQry 命令字串不包含 -l,PortQry 會 -y忽略 。
-v 產生詳細信息輸出 PortQry 會提供螢幕輸出的其他詳細資料(以及如果使用的記錄檔)。

本機模式中參數的備註

  • -local-wport-wpid 參數互斥。 在單一 PortQry 命令字串中,您只能使用其中一個參數。
  • 參數 -q 無法在本機模式中運作。
  • 在某些情況下,PortQry 可能會報告系統閑置進程 (PID 0) 正在使用一些 TCP 連接埠。 如果本機程式連線到 TCP 連接埠,然後停止,就可能發生此行為。 即使程式不再執行,但程式與埠的 TCP 連線可能會保留數分鐘的「計時等候」狀態。 在這種情況下,PortQry 可能會偵測到埠正在使用中,但無法識別使用埠的程式,因為 PID 已發行。 根據預設,埠會維持在最長區段存留期兩倍的「計時等候」狀態。
  • 針對每個程式,PortQry 會報告可以存取的資訊。 某些資訊的存取受到限制。 例如,禁止存取Idle和 CSRSS 程式的模組資訊,因為其存取限制會防止使用者層級程式代碼開啟它們。 為了獲得最佳結果,請在本機系統管理員或具有類似認證的帳戶內容中執行本機模式命令。
  • 當您搭配 使用 -wport-wpid -l時,請使用 Esc 鍵來中斷和結束 PortQry,而不是 CTRL+C。 您必須按 Esc 鍵,確定 PortQry 正確關閉記錄檔並結束。 如果您按 CTRL+C 而不是 Esc 來停止 PortQry,記錄檔可能會變成空白或損毀。

在互動式模式中使用 PortQry

當您針對計算機之間的連線問題進行疑難解答時,可能必須輸入許多重複的命令。 在互動式模式中使用 PortQry 可以更輕鬆地執行這類動作。

互動式模式類似於 Nslookup DNS 公用程式或 Nblookup WINS 公用程式中的互動式功能

若要在互動式模式中啟動 PortQry,請使用 -i 參數。 例如,執行下列命令:

portqry -i

此指令輸出類似下列摘錄:

Portqry Interactive Mode

Type 'help' for a list of commands

Default Node: 127.0.0.1

Current option values:  
   end port= 80  
   protocol= TCP  
   source port= 0 (ephemeral)
>

互動式模式命令

您可以在互動式模式中使用下列命令:

Command 描述 註解
node <name>n <name> 將目的地設定為查詢
  • 名稱<>值代表要查詢之計算機的名稱或IP位址。這個值不能包含空格。
  • 預設值為 127.0.0.1 (本機計算機)。
queryq 傳送查詢
  • 使用目前的設定查詢目前目的地。
  • 預設通訊協定為 tcp
  • 預設目的地埠為 TCP 連接埠 80。
  • 默認來源埠為埠 0(暫時埠)。
  • 您可以使用命令的其中一個快捷方式 query ,以執行數個常見查詢中的任何一個。 如需可用快捷方式的清單,請參閱 互動式模式查詢快捷方式
set <option>=<value> 設定查詢選項的值
  • 在此命令中,<option> 代表要設定的選項名稱,而< value> 代表選項的新值。
  • 若要檢視可用選項目前值的清單,請輸入 set all
  • 如需可用選項的清單,請參閱 互動式模式選項
exit 離開互動式模式

互動式模式查詢快捷方式

您可以使用下列快捷方式搭配 query 命令來執行一般查詢,而不需要設定埠和通訊協議選項。 使用下列語法:

q <shortcut>

注意

在此命令中, <快捷方式> 代表下表的其中一個快捷方式。 如果您省略快捷方式,命令會 q 查詢 TCP 連接埠 80。

捷徑 要查詢的埠
dns TCP 連接埠 53、UDP 連接埠 53。
ftp TCP 連接埠 21
imap TCP 連接埠 143
ipsec UDP 埠 500
isa TCP 連接埠 1745、UDP 連接埠 1745
ldap TCP 連接埠 389、UDP 連接埠 389
l2tp UDP 埠 1701
mail TCP 連接埠 25、110 和 143
pop3 TCP 連接埠 110
rpc TCP 連接埠 135、UDP 連接埠 135
smtp TCP 連接埠 25
snmp UDP 埠 161
sql TCP 連接埠 1433、UDP 連接埠 1434
tftp UDP 埠 69

例如,以互動模式輸入 q dns 相當於在一般命令行模式中執行 portqry -n 127.0.0.1 -p both -e 135

互動式模式選項

您可以使用 set 命令來設定選項,例如來源埠或連結延遲緩慢。 使用下列語法:

set <option>=<value>

注意

在此命令中,<option> 代表要設定的選項名稱,而< value> 代表選項的新值。

選項 描述 註解
set all 顯示選項的目前值
set port=<port_number>
set e=<port_number>
指定目標埠 <>port_number值代表在目的地計算機上查詢的埠。
set sport=<port_number>
set sp=<port_number>
指定來源埠
  • <>port_number值代表 PortQry 用來傳送查詢的埠。
  • PortQry 無法使用另一個進程已經使用的埠。
  • 如果您指定零的埠號碼,PortQry 會使用暫時埠。
set protocol=<protocol>
set p=<protocol>
指定要使用的通訊協定 通訊 <協定> 值代表要查詢的埠類型(tcpudpboth)。
set cn=<community_name> 指定SNMP 社群
  • <>community_name值代表要查詢的SNMP社群名稱。
  • 如果 SNMP 服務未接聽目標埠,PortQry 會 -cn忽略 。
  • 預設社群名稱為 public
set nr 關閉或開啟反向名稱查閱
  • 根據預設,如果您已將IP位址設定為查詢目的地,PortQry 會將IP位址解析為名稱。 如果您變更此選項,PortQry 會略過名稱解析步驟。
  • 若要再次開啟反向名稱查閱, set nr 請執行第二次。
set sl 開啟或關閉慢速連結延遲
  • 如果您變更此選項,PortQry 會在 PortQry 判斷埠為 NOT LISTENING 或已篩選的埠之前,將它等候 UDP 埠回應的時間長度加倍。 當您查詢緩慢或不可靠的網路連結時,一般等候時間可能太短而無法接收回應。
  • 若要再次關閉慢速連結延遲, set sl 請執行第二次。

假設您想要查詢IP位址為10.0.1.10的電腦。 在互動式模式命令提示字元中,輸入 n 10.0.1.10。 這個指令會產生類似下列摘錄的輸出:

Default Node: 10.0.1.10

>

若要傳送 DNS 查詢,請在互動式模式命令提示字元中輸入 q dns 。 這個指令會產生類似下列摘錄的輸出:

resolving service name using local services file...
UDP port resolved to the 'domain' service

IP address resolved to myserver.contoso.com

querying...

UDP port 53 (domain service): LISTENING

>

自定義埠與服務之間的關聯

根據預設,每個 Windows 計算機都有位於 %SYSTEMROOT%\System32\Drivers\Etc 資料夾中的服務檔案。 PortQry 會使用此檔案,將埠號碼解析為其對應的服務名稱。 PortQry 會使用這項資訊來選取其查詢的格式。 您可以編輯此檔案,以指示 PortQry 將格式化的訊息傳送至替代埠。 例如,下列專案會出現在一般 Services 檔案中:

ldap              389/tcp                           #Lightweight Directory Access Protocol

您可以編輯此埠專案,或新增其他專案。 若要強制 PortQry 將 LDAP 查詢傳送至埠 1025,請修改專案,如下所示:

ldap              1025/tcp                           #Lightweight Directory Access Protocol

範例

下列範例示範如何使用 PortQry 及其參數:

本機模式

命令行模式

查詢本機計算機

輸出 portqry -local 類似下列摘錄:

TCP/UDP Port Usage

96 active ports found

Port Local IPState Remote IP:Port  
TCP 80 0.0.0.0 LISTENING 0.0.0.0:18510  
TCP 80 169.254.149.9 TIME WAIT 169.254.74.55:3716  
TCP 80 169.254.149.9 TIME WAIT 169.254.200.222:3885  
TCP 135 0.0.0.0 LISTENING 0.0.0.0:10280  
UDP 135 0.0.0.0 :  
UDP 137 169.254.149.9 :  
UDP 138 169.254.149.9 :  
TCP 139 169.254.149.9 LISTENING 0.0.0.0:43065  
TCP 139 169.254.149.9 ESTABLISHED 169.254.4.253:4310  
TCP 139 169.254.149.9 ESTABLISHED 169.254.74.55:3714  

在存取受到限制時查詢本機計算機

當您以本機模式執行 PortQry 時,如上一個範例所示,您可能會看到類似下列摘錄的輸出。 這類輸出表示 PortQry 所使用的安全性內容沒有足夠的許可權可存取它所要求的所有資訊。

Port and Module Information by Process

Note: restrictions applied to some processes may
prevent Portqry from accessing more information

For best results run Portqry in the context of
the local administrator

======================================================  
Process ID: 0 (System Idle Process)

PIDPortLocal IPState Remote IP:Port  
0TCP 4442 169.254.113.96 TIME WAIT 169.254.5.136:80  
0TCP 4456 169.254.113.96 TIME WAIT 169.254.5.44:445  

Port Statistics

TCP mappings: 2  
UDP mappings: 0

TCP ports in a TIME WAIT state: 2 = 100.00%

Could not access module information for this process

======================================================

使用特定間隔監視進程標識碼

下列命令會監視特定行程:

portqry.exe -wpid 1276 -wt 2 -v -l pid.txt

因此,PortQry 會採取下列動作:

  • 識別具有 1276 PID 的進程,並檢查它每兩秒使用一次的埠狀態,直到您按 Esc 鍵為止。
  • 建立記錄檔 pid.txt。 如果已有該名稱的檔案存在,PortQry 會提示您確認要覆寫檔案。
  • 記錄記錄檔中的任何輸出,包括額外的詳細信息輸出。

記錄檔的內容類似下列摘錄:

PortQry Version 2.0 Log File
  
System Date: <DateTime>
  
Command run:  
portqry -wpid 1276 -wt 2 -v -l pid.txt
  
Local computer name:
  
host123
  
Watching PID: 1276
  
Checking for changes every 2 seconds
  
verbose output requested
  
Service Name: DNS  
Display Name: DNS Server  
Service Type: runs in its own process

============
System Date: <DateTime>

======================================================

Process ID: 1276 (dns.exe)

Service Name: DNS
Display Name: DNS Server
Service Type: runs in its own process

PIDPortLocal IPState Remote IP:Port
1276TCP 53 0.0.0.0 LISTENING 0.0.0.0:2160
1276TCP 1087 0.0.0.0 LISTENING 0.0.0.0:37074
1276UDP 1086 0.0.0.0 :
1276UDP 2126 0.0.0.0 :
1276UDP 53 127.0.0.1 :
1276UDP 1085 127.0.0.1 :
1276UDP 53 169.254.11.96 :

Port Statistics

TCP mappings: 2
UDP mappings: 5

TCP ports in a LISTENING state: 2 = 100.00%

Loaded modules:
C:\WINDOWS\System32\dns.exe (0x01000000)
C:\WINDOWS\system32\ntdll.dll (0x77F40000)
C:\WINDOWS\system32\kernel32.dll (0x77E40000)
C:\WINDOWS\system32\msvcrt.dll (0x77BA0000)
C:\WINDOWS\system32\ADVAPI32.dll (0x77DA0000)
C:\WINDOWS\system32\RPCRT4.dll (0x77C50000)
C:\WINDOWS\System32\WS2_32.dll (0x71C00000)
C:\WINDOWS\System32\WS2HELP.dll (0x71BF0000)
C:\WINDOWS\system32\USER32.dll (0x77D00000)
C:\WINDOWS\system32\GDI32.dll (0x77C00000)
C:\WINDOWS\System32\NETAPI32.dll (0x71C40000)

指定目標和通訊協定

注意

本節中的每個範例都會查詢埠 80,也就是預設埠。

下列指令會查詢使用其完整功能變數名稱 (FQDN) 所指定電腦上的預設 TCP 連接埠:

portqry -n myDomainController.example.com -p tcp

下列命令會查詢使用電腦名稱指定之電腦上的預設 UDP 連接埠:

portqry -n myServer -p udp

下列命令會查詢使用其 IP 位址指定之電腦的預設 TCP 和 UDP 連接埠:

portqry -n 192.168.1.20 -p both

下列命令會執行與上一個命令相同的查詢,但會略過名稱解析步驟:

portqry -n 192.168.1.20 -p both -nr

下列命令會查詢 Web 伺服器的預設 TCP 連接埠:

portqry -n www.widgets.microsoft.com

指定一或多個目標埠

下列命令會藉由查詢 TCP 連接埠 25 來測試郵件伺服器的 SMTP 服務:

portqry -n mail.example.com -p tcp -e 25

下列命令會查詢IP位址為192.168.1.20的電腦 TCP連接埠 60897 和 UDP 連接埠 60897:

portqry -n 192.168.1.20 -p both -e 60897

下列指令會在電腦 「myServer」 上查詢 UDP 連接埠 139、1025 和 135 (依該順序) :

portqry -n myServer -p udp -o 139,1025,135

下列命令會查詢電腦 「myServer」 上埠從埠 135 到埠 139(含)的範圍:

portqry -n myServer -p udp -r 135:139

指定 PortQry 輸出的記錄檔

下列命令會在 mail.widgets.microsoft.com 上查詢 TCP 連接埠 143,並記錄portqry.txt檔案中的輸出。 如果檔案已經存在,PortQry 會覆寫它,而不會提示確認。

portqry -n mail.widgets.microsoft.com -p tcp -e 143 -l portqry.txt -y

查詢緩慢連結

下列命令會在 mail.widgets.microsoft.com 上查詢 TCP 連接埠 143、110 和 25。 針對每個目標埠,PortQry 會等候一般回應的兩倍。

  portqry -n mail.widgets.microsoft.com -p tcp -o 143,110,25 -sl

指定來源埠

下列命令會使用本機計算機上的 UDP 連接埠 3001(如果有的話)將查詢傳送至 192.168.1.20 上的 UDP 連接埠 53。 如果服務正在接聽該埠並回應查詢,則會將回應傳送至本機計算機上的 UDP 連接埠 3001。

portqry -p udp -e 53 -sp 3001 -n 192.168.1.20

下列命令會使用本機計算機上的UDP埠3000(如果有的話)將查詢傳送至 myDomainController.contoso.com 上的UDP連接埠389。 根據預設,LDAP 服務應該在此埠上接聽。 如果LDAP服務回應第一個查詢,PortQry 會使用暫時的來源埠來傳送格式化的查詢並接收任何回應。

portqry -n myDomainController.contoso.com -e 389 -sp 3000

使用批處理檔以無訊息模式執行 PortQry

下列文字是批處理檔範例,以無訊息模式執行 PortQry:

:Top
portqry -n 169.254.18.22 -e 443 -nr -l pqlog.txt -q
:end

當此批處理文件執行時,PortQry 會產生名為 pqlog.txt 的記錄檔。 此檔案的內容如下所示:

PortQry Version 2.0 Log File

System Date: Thu Sep 16 10:35:03 2021

Command run:
 portqry -n 169.254.18.22 -e 443 -nr -l pqlog.txt -q

Local computer name:

 SOURCESERVER

Querying target system called:

 169.254.18.22

TCP port 443 (https service): LISTENING


========= end of log file ========= 

查詢連接埠 135 (RPC 服務)

下列命令會查詢 myServer 電腦上的 UDP 連接埠 135。 根據預設,RPC 服務應該在此埠上接聽。

portqry -n myServer -p udp -e 135

因此,PortQry 會採取下列動作:

  • PortQry 會使用 %SYSTEMROOT%\System32\Drivers\Etc 資料夾中的服務檔案,將 UDP 連接埠 135 解析為服務。 使用預設組態,PortQry 會將埠解析為 RPC 端點對應程式服務 (Epmap)。
  • PortQry 會將未格式化的用戶數據報傳送至目的地電腦上的 UDP 連接埠 135。
    PortQry 不會收到來自目標埠的回應。 這是因為 RPC 端點對應程式服務只會回應格式正確的 RPC 查詢。 PortQry 會報告埠為 LISTENING 或 FILTERED
  • PortQry 會建立格式正確的 RPC 查詢,以要求目前向 RPC 端點對應程式註冊的所有端點。 PortQry 會將此查詢傳送至目的地電腦上的 UDP 連接埠 135。
  • 根據回應而定,PortQry 會採取下列其中一個動作:
    • 如果 PortQry 收到此查詢的回應,PortQry 會將整個回應傳回給使用者,並報告埠為 LISTENING
    • 如果 PortQry 未收到此查詢的回應,則會報告埠為 FILTERED
UDP port 135 (epmap service): LISTENING or FILTERED  
Querying Endpoint Mapper Database...  
Server's response:  

UUID: 50abc2a4-574d-40b3-9d66-ee4fd5fba076
ncacn_ip_tcp:169.254.12.191[4144]

UUID: ecec0d70-a603-11d0-96b1-00a0c91ece30 NTDS Backup Interface
ncacn_np:\\MYSERVER[\PIPE\lsass]

UUID: e3514235-4b06-11d1-ab04-00c04fc2dcd2 MS NT Directory DRS Interface
ncacn_ip_tcp:169.254.12.191[1030]

UUID: e3514235-4b06-11d1-ab04-00c04fc2dcd2 MS NT Directory DRS Interface
ncadg_ip_udp:169.254.12.191[1032]

UUID: 12345678-1234-abcd-ef00-01234567cffb
ncacn_np:\\MYSERVER[\PIPE\lsass]

UUID: 12345678-1234-abcd-ef00-01234567cffb
ncacn_np:\\MYSERVER[\PIPE\POLICYAGENT]

Total endpoints found: 6

==== End of RPC Endpoint Mapper query response ====

UDP port 135 is LISTENING

從這個輸出中,您不僅可以判斷服務是否在埠上接聽,還可以判斷目的地計算機上的 RPC 端點對應程式資料庫已註冊哪些服務或程式。 輸出包含每個程式的通用唯一標識碼 (UUID),加上批注名稱(如果有),每個程式使用的通訊協定、程式系結的網路位址,以及程式以方括弧括住程式的端點。

注意

當您在 PortQry 命令中指定 -r 選項以掃描埠範圍時,PortQry 不會查詢 RPC 端點對應程式以取得端點資訊。 此參數可加速掃描一系列埠。