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



GitHub 加速计划 / li / linux-dash
10.39 K
1.2 K
下载
A beautiful web dashboard for Linux
最近提交(Master分支:2 个月前 )
186a802e added ecosystem file for PM2 4 年前
5def40a3 Add host customization support for the NodeJS version 4 年前
Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐