本文主要介绍使用最频繁的三个端口检测工具,并区分各自的优缺点,以达到不同的排查方向选择最适合的工具,便于我们更快的定位网络问题。
Telnet
- Telnet协议是TCP/IP协议族的其中之一,是Internet远程登录服务的标准协议和主要方式,常用于网页服务器的远程控制,可供使用者在本地主机运行远程主机上的工作,最常用来检查端口是否正常开启、且是否能正常连接的工具.
使用方法
telnet <ip> <port>
注意:
- 使用
telnet
如果连接成功之后,不能使用常规的命令ctrl + C
来退出,需要使用逃脱符ctrl + ]
,然后quit
退出。
[root@master tmp]# telnet 10.96.0.106 8080
Trying 10.96.0.106...
Connected to 10.96.0.106.
Escape character is '^]'.
^]
telnet> quit
Connection closed.
Nmap
- NMAP(Network Mapper)是一款开放源代码的网络探测和安全审核的工具。它的设计目标是快速地扫描大型网络.
使用方法
1.简单扫描
- nmap默认发送一个ARP的PING数据包,来探测目标主机1-10000范围内所开放的所有端口
例子: nmap 172.16.188.16
[root@master tmp]# nmap 172.16.188.16
Starting Nmap 6.40 ( http://nmap.org ) at 2021-06-09 14:20 CST
Nmap scan report for 172.16.188.16
Host is up (0.000015s latency).
Not shown: 997 closed ports
PORT STATE SERVICE
22/tcp open ssh
111/tcp open rpcbind
2049/tcp open nfs
Nmap done: 1 IP address (1 host up) scanned in 1.63 seconds
2.指定具体端口、端口范围
[root@master tmp]# nmap 172.16.188.16 -p30003
Starting Nmap 6.40 ( http://nmap.org ) at 2021-06-09 14:26 CST
Nmap scan report for 172.16.188.16
Host is up.
PORT STATE SERVICE
30003/tcp filtered unknown
Nmap done: 1 IP address (1 host up) scanned in 2.06 seconds
[root@master tmp]# nmap 172.16.188.16 -p1000-65535
Starting Nmap 6.40 ( http://nmap.org ) at 2021-06-09 14:21 CST
Nmap scan report for 172.16.188.16
Host is up (0.000022s latency).
Not shown: 64522 closed ports
PORT STATE SERVICE
2049/tcp open nfs
2379/tcp open unknown
2380/tcp open unknown
6443/tcp open unknown
10250/tcp open unknown
10251/tcp open unknown
10252/tcp open unknown
10255/tcp open unknown
20048/tcp open unknown
29999/tcp open unknown
30003/tcp filtered unknown
31375/tcp open unknown
41730/tcp open unknown
49022/tcp open unknown
Nmap done: 1 IP address (1 host up) scanned in 7.28 seconds
当然nmap的功能远远不止这些,感兴趣的可以自己去搜索学习,这里只列出和端口检测相关的部分使用方法。
Nc
- Netcat 号称 TCP/IP 的瑞士军刀并非浪得虚名,以体积小(可执行 200KB)功能灵活而著称,在各大发行版中都默认安装,你可以用它来做很多网络相关的工作,熟练使用它可以不依靠其他工具做一些很有用的事情
使用方法
[root@master tmp]# nc -vz 172.16.188.16 30003 v:详细显示 z:不发送数据
Ncat: Version 7.50 ( https://nmap.org/ncat )
Ncat: Connected to 172.16.188.16:30003.
Ncat: 0 bytes sent, 0 bytes received in 0.01 seconds.
最常见使用场景
假设有一种需求,我们需要设置安全策略禁止所有端口,仅开放8080,如何验证我们的策略准确性?一种方法就是安装一个服务,修改端口为8080然后使用telnet、curl等命令进行测试,当然,这样的代价也比较大。
- 使用nc很简单启动一个端口监听,在另一台服务器连接,从而轻易的验证我们设置的一些安全策略是否成功与可行
测试主机A:
nc -l -p 8080
这样就监听了8080端口,使用B主机连接过去:
nc 192.168.0.1 8080
两边直接可以进行对话,一端输入什么,另一边都会显示,若要中断,直接ctrl+c即可
:small_orange_diamond: 三种工具总结
工具类型 | 用途 | 工具大小 | 是否支持端口段检测 | 是否显示端口状态 |
---|---|---|---|---|
Telnet | 网络监测 | 66K | :heavy_multiplication_x: | :heavy_multiplication_x: |
Nmap | 网络监测 | 3.9MB | :heavy_check_mark: | :heavy_check_mark: |
Nc | 网络监测 | 200K | :heavy_check_mark: | :heavy_multiplication_x: |