言成言成啊 | Kit Chen's Blog

TCP与UDP的端口连接

发布于2024-12-21 02:34:15,更新于2025-07-14 01:16:24,标签:devops tcp udp  文章会持续修订,转载请注明来源地址:https://meethigher.top/blog

一、查看连接

查看当前服务器启动了哪些端口

1
2
3
4
5
6
# tcp端口
netstat -nplt
# udp端口
netstat -nplu
# 查看所有的连接
netstat -ano

ss命令与telnet命令有相同的用法,而且sstelnet的替代版。

1
2
ss -nplt
ss -ano

介绍Send-QRecv-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服务。

1
telnet 10.0.0.9 5432

但实际环境中,还会存在UDP的服务,这时候就得考虑使用其他的工具了。

常见的命令如下

  • nc
  • ncat: nc命令的用法,ncat命令都有。

这两个命令,既能用于验证与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命令。

使用示例

1
2
3
4
5
6
7
8
9
10
# 查看版本
ncat -v
# 临时启动一个端口为1234的TCP服务器
ncat -l 1234
# 临时启动一个端口为1234的UDP服务器
ncat -lu 1234
# 验证与TCP服务10.0.0.1:1234是否连通
ncat -zvn 10.0.0.1 1234
# 验证与UDP服务10.0.0.1:1234是否连通
ncat -zvnu 10.0.0.1 1234

2.2、Linux

2.2.1 nc

安装Netcat工具

1
yum -y install netcat

使用示例

1
2
3
4
5
6
7
8
# 临时启动一个端口为1234的TCP服务器
nc -l 1234
# 临时启动一个端口为1234的UDP服务器
nc -lu 1234
# 验证与TCP服务10.0.0.1:1234是否连通
nc -zvn 10.0.0.1 1234
# 验证与UDP服务10.0.0.1:1234是否连通
nc -zvnu 10.0.0.1 1234

2.2.2 ncat

安装Nmap工具

1
yum -y install nmap

使用示例

1
2
3
4
5
6
7
8
9
10
# 查看版本
ncat -v
# 临时启动一个端口为1234的TCP服务器
ncat -l 1234
# 临时启动一个端口为1234的UDP服务器
ncat -lu 1234
# 验证与TCP服务10.0.0.1:1234是否连通
ncat -zvn 10.0.0.1 1234
# 验证与UDP服务10.0.0.1:1234是否连通
ncat -zvnu 10.0.0.1 1234
发布:2024-12-21 02:34:15
修改:2025-07-14 01:16:24
链接:https://meethigher.top/blog/2024/port-connectivity/
标签:devops tcp udp 
付款码 打赏 分享
Shift+Ctrl+1 可控制工具栏