






















ss 命令(推荐)# 查看所有监听端口
ss -l
# 查看所有监听端口(显示端口号而非服务名)
ss -ln
# 查看所有TCP监听端口
ss -ltn
# 查看所有UDP监听端口
ss -lun
# 查看所有监听端口及其对应进程
ss -lntp
# 常用组合:显示TCP监听端口+进程信息
ss -lntp
输出示例:
State Recv-Q Send-Q Local Address:Port Peer Address:Port Process
LISTEN 0 128 0.0.0.0:22 0.0.0.0:* users:(("sshd",pid=1234,fd=3))
LISTEN 0 128 127.0.0.1:631 0.0.0.0:* users:(("cupsd",pid=567,fd=7))
LISTEN 0 511 *:80 *:* users:(("nginx",pid=890,fd=6))
netstat 命令(传统方式)# 查看所有监听端口
netstat -l
# 查看所有监听端口(数字形式显示)
netstat -ln
# 查看TCP监听端口
netstat -ltn
# 查看UDP监听端口
netstat -lun
# 查看监听端口+进程信息
netstat -lntp
lsof 命令# 查看所有监听端口
lsof -i -P -n | grep LISTEN
# 查看指定端口的监听情况
lsof -i :80
ss 命令(推荐)# 查看所有连接
ss -a
# 查看所有TCP连接
ss -at
# 查看所有TCP连接(数字形式,不解析服务名)
ss -atn
# 查看已建立的连接
ss -n state established
# 查看特定状态的连接
ss -n state syn-sent
ss -n state syn-recv
ss -n state time-wait
ss -n state close-wait
# 查看连接及其进程信息
ss -atnp
输出示例:
State Recv-Q Send-Q Local Address:Port Peer Address:Port Process
ESTAB 0 0 192.168.1.100:22 192.168.1.200:54321 users:(("sshd",pid=2345,fd=4))
TIME-WAIT 0 0 192.168.1.100:80 192.168.1.50:12345
ESTAB 0 0 192.168.1.100:3306 192.168.1.100:45678 users:(("mysqld",pid=789,fd=10))
netstat 命令# 查看所有连接
netstat -a
# 查看所有TCP连接
netstat -at
# 查看所有TCP连接(数字形式)
netstat -atn
# 查看所有UDP连接
netstat -au
# 查看连接+进程信息
netstat -atnp
# 查看特定状态的连接
netstat -an | grep ESTABLISHED
netstat -an | grep TIME_WAIT
netstat -an | grep SYN
| 参数 | 说明 |
|---|---|
| 状态 | 说明 |
|---|---|
ss -atn | awk 'NR>1 {print $1}' | sort | uniq -c | sort -rn
# 输出示例:
# 45 ESTAB
# 12 TIME-WAIT
# 5 LISTEN
ss -atnp | awk '{print $7}' | sort | uniq -c | sort -rn | head
ss -tlnp | grep :80
# 或
lsof -i :80
ss -atn | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -rn | head
| 需求 | 推荐命令 |
|---|---|
💡 建议:现代Linux发行版推荐使用
ss命令,它比netstat更快,因为ss直接从内核获取信息,而netstat需要读取/proc文件系统。
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。