測試TCP和UDP連接埠的方法
下面以Linux平台為例,講述測試TCP和UDP連接埠的方法。
有兩個命令可以用來測試連接埠,一個是telnet,一個是nc,但telnet只能用於測試TCP連接埠,而nc即可用於測試TCP連接埠也可用來測試UDP連接埠。
【telnet命令的用法】
telnet IP port
例如:
[root@localhost]# telnet 192.168.0.181 20060
Trying 192.168.0.181...
Connected to 192.168.0.181.
Escape character is '^]'.
quit // 輸入quit並斷行符號退出telnet。
Connection closed by foreign host.
[root@localhost]#
【nc命令的用法】
1. 測試TCP連接埠
nc -vz IP port
例如:
[root@localhost]# nc -vz 192.168.0.181 20060
Connection to 192.168.0.181 20060 port [tcp/*] succeeded!
[root@localhost]#
2. 測試UDP連接埠
nc -vuz IP port
舉例說明
Windows的IP是192.168.0.3,Linux的IP是192.168.0.32。
在Windows上運行TCP/UDP調試工具,如下圖。
在調試工具上沒建立連接埠號碼為34567服務時,在Linux如下執行nc命令無任何輸出。如下:
[root@localhost]# nc -vuz 192.168.0.3 34567
[root@localhost]# // 執行nc命令後無任何資訊輸出。
在調試工具上建立連接埠號碼為34567服務後,在Linux執行nc命令後有“succeeded”資訊輸出。如下:
[root@localhost]# nc -vuz 192.168.0.3 34567
Connection to 192.168.0.3 34567 port [udp/*] succeeded!
[root@localhost]#
--- 注意 ---
執行nc命令時,有時隨便寫個主機名稱和有效連接埠號碼也能輸出“succeeded”資訊,如下:
[root@localhost]# nc -vuz srtsrtseggg 61357
Connection to srtsrtseggg 61357 port [udp/*] succeeded!
[root@localhost]#
那是因為DNS伺服器有汙染(或者叫廣告插入),對於任意不存在的網域名稱都會給出解析IP。這可以用wget命令檢驗,如下:
[root@localhost]# wget --spider srtsrtseggg
Spider mode enabled. Check if remote file exists.
--2016-06-08 01:59:04-- http://srtsrtseggg/
Resolving srtsrtseggg... 123.129.254.17
Connecting to srtsrtseggg|123.129.254.17|:80...
...
看到解析出來的IP,還有HTTP響應。