测试TCP和UDP端口的方法

Posted iw1210

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了测试TCP和UDP端口的方法相关的知识,希望对你有一定的参考价值。



测试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响应。




以上是关于测试TCP和UDP端口的方法的主要内容,如果未能解决你的问题,请参考以下文章

在Linux服务器上检查TCP/UDP端口的连通性

Linux服务器上测试TCP/UDP端口的连通性

Linux服务器上测试TCP/UDP端口的连通性

Linux服务器上测试TCP/UDP端口的连通性

socket用法(TCP, UDP)

socket用法(TCP, UDP)