- 工信部备案号 滇ICP备05000110号-1
- 滇公网安备53011102001527号
- 增值电信业务经营许可证 B1.B2-20181647、滇B1.B2-20190004
- 云南互联网协会理事单位
- 安全联盟认证网站身份V标记
- 域名注册服务机构许可:滇D3-20230001
- 代理域名注册服务机构:新网数码
- CN域名投诉举报处理平台:电话:010-58813000、邮箱:service@cnnic.cn
欢迎来到8455线路检测中心技术小课堂。
在 Linux 网络故障排查和性能分析中,监控网络连接状态是基础而关键的技能。传统的 netstat命令曾长期是网络连接分析的首选工具,但在现代 Linux 系统中,ss(Socket Statistics)以其更高的性能和更丰富的功能逐渐成为更好的选择。本文将详细介绍 ss命令的使用方法,帮助您高效分析网络连接状态。
1. 性能优势:ss直接从内核空间获取信息,速度远快于 netstat
2. 更多信息:提供更详细的套接字统计信息
3. 更精确的过滤:支持丰富的过滤表达式
4. netstat 已过时:许多 Linux 发行版已默认不再安装 netstat
大多数现代 Linux 发行版已预装 ss,它是 iproute2软件包的一部分:
# 检查是否安装
which ss
# 如果未安装,安装 iproute2
sudo apt install iproute2 # Ubuntu/Debian
sudo yum install iproute # CentOS/RHEL
ss [选项] [过滤表达式]
# 显示所有连接
ss
# 显示所有 TCP 连接
ss -t
# 显示所有 UDP 连接
ss -u
# 显示所有 UNIX 域套接字
ss -x
# 显示所有 RAW 套接字
ss -w
# 显示监听端口(最常用)
ss -tln
# 显示所有 TCP 连接(包括监听)
ss -tan
# 显示所有 UDP 连接
ss -uan
# 显示进程信息
ss -tlnp
· -t, --tcp:TCP 连接
· -u, --udp:UDP 连接
· -l, --listening:仅显示监听套接字
· -a, --all:显示所有套接字
· -n, --numeric:不解析服务名
· -p, --processes:显示使用套接字的进程
· -o, --options:显示计时器信息
· -e, --extended:显示详细的套接字信息
· -m, --memory:显示套接字内存使用
· -4, --ipv4:仅 IPv4
· -6, --ipv6:仅 IPv6
ss -tlnp
输出示例:
State Recv-Q Send-Q Local Address:Port Peer Address:Port
LISTEN 0 128 *:80 *:* users:(("nginx",pid=1234,fd=6))
LISTEN 0 128 127.0.0.1:3306 *:* users:(("mysqld",pid=5678,fd=21))
ESTAB 0 0 192.168.1.100:443 203.0.113.10:54210 users:(("nginx",pid=1234,fd=7))
关键字段:
· State:套接字状态
· Recv-Q:接收队列中的字节数
· Send-Q:发送队列中的字节数
· Local Address:Port:本地地址和端口
· Peer Address:Port:对端地址和端口
· users:使用该套接字的进程信息
# 查看所有状态的连接数统计
ss -tan | awk '{print $1}' | sort | uniq -c | sort -rn
# 查看特定状态的连接
ss -tan state established
ss -tan state time-wait
ss -tan state close-wait
· LISTEN:监听连接请求
· ESTABLISHED:已建立的连接
· TIME-WAIT:等待足够时间确保对端收到终止请求
· CLOSE-WAIT:等待本地应用程序关闭连接
· SYN-SENT:发送连接请求后等待匹配
· SYN-RECV:收到连接请求后发送确认
# 查看80端口是否被占用
ss -tlnp | grep :80
# 查看哪个进程使用特定端口
ss -tlnp sport = :80
ss -tlnp dport = :80
# 查看指定进程的网络连接
ss -tanp | grep "pid=1234"
# 查看各状态的连接数
ss -tan | awk 'NR>1 {print $1}' | sort | uniq -c
# 查看TIME-WAIT状态的连接
ss -tan state time-wait
# 查看连接数最多的IP
ss -tan | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -rn | head -10
# 查看本地端口使用情况
ss -tan | awk '{print $4}' | cut -d: -f2 | sort | uniq -c | sort -rn | head -10
# 实时监控新连接
watch -n 1 "ss -tan state established | wc -l"
# 监控特定端口的连接
watch -n 1 "ss -tan sport = :443 | grep ESTAB | wc -l"
# 监控连接状态变化
while true; do
echo "=== $(date) ==="
ss -tan state established | tail -n +2 | wc -l
sleep 5
done
8455线路检测中心官网上拥有完善的技术支持库可供参考,大家可自行查阅,更多技术问题,可以直接咨询。同时,8455线路检测中心整理了运维必备的工具包免费分享给大家使用,需要的朋友可以直接咨询。
更多技术知识,8455线路检测中心期待与你一起探索。
售前咨询
售后咨询
备案咨询
二维码

TOP