摘要
常规情况下,我们验证跟对方的端口是否连通,一般使用的是telnet命令,这是因为咱们大多数接触到的都是TCP服务。但实际环境中,还会存在UDP的服务,这时候就得考虑使用其他的工具了。
正文
一、查看连接
查看当前服务器启动了哪些端口
sh
| |
ss命令与telnet命令有相同的用法,而且ss是telnet的替代版。
sh
| |

介绍Send-Q和Recv-Q的概念
- 在
LISTEN状态时,当Recv-Q接近或等于Send-Q时,说明accept队列已满,新完成的握手会被丢弃或RST。Send-Q表示全连接队列的容量。即min(backlog,net.core.somaxconn)Recv-Q表示当前已完成三次握手、状态为ESTABLISHED但尚未被应用accept()的连接数,即全连接队列的当前长度。
- 非 LISTEN 状态时,如果
Recv-Q长时间非 0,说明应用读得慢;Send-Q长时间非 0,说明对端接收慢或网络延迟高。Send-Q表示内核发送缓冲区中已发送但尚未收到对端ACK的字节数Recv-Q表示内核接收缓冲区中已到达但尚未被应用程序读取的字节数
二、验证端口可达性
常规情况下,我们验证跟对方的端口是否连通,一般使用的是telnet命令,telnet适用于TCP服务。
sh
| |
但实际环境中,还会存在UDP的服务,这时候就得考虑使用其他的工具了。
常见的命令如下
这两个命令,既能用于验证与TCP/UPD服务的连通性,也能用于临时开启TCP/UDP服务。nc命令来源于Netcat工具,ncat命令来源于Nmap工具,Nmap是对Netcat的改进版。
2.1、Windows
2.1.1 nc
在Windows中,很少使用Netcat,而是使用Nmap。
2.1.2 ncat
下载Nmap,按照默认配置无脑下一步,安装成功后,即可使用ncat命令。

使用示例
sh
| |

2.2、Linux
2.2.1 nc
安装Netcat工具
sh
| |
使用示例
sh
| |

2.2.2 ncat
安装Nmap工具
sh
| |
使用示例
sh
| |

