欢迎各位兄弟 发布技术文章
这里的技术是共享的
在Linux系统中,实时查看TCP连接可以通过以下工具实现,具体方法如下:
ss
命令 + watch
工具ss
(Socket Statistics)是替代 netstat
的高效工具,结合 watch
可定期刷新输出。
# 查看所有TCP连接(包括监听/已建立),每秒刷新一次 watch -n 1 "sudo ss -tnap" # 参数说明: # -t : 仅显示TCP连接 # -n : 不解析服务名称(直接显示端口号) # -a : 显示所有连接(包括监听) # -p : 显示关联的进程信息 # 需要sudo权限查看进程信息
特点:简单高效,适合快速查看当前状态。
tcptrack
工具tcptrack
可动态显示TCP连接及其传输速率,需手动安装。
# 安装(Debian/Ubuntu) sudo apt install tcptrack # 实时监控指定网卡的TCP连接(如eth0) sudo tcptrack -i eth0
特点:实时显示连接状态、速率,自动更新,适合监控活动连接。
iptraf-ng
工具交互式网络监控工具,提供详细的统计信息。
# 安装(Debian/Ubuntu) sudo apt install iptraf-ng # 启动后选择监控选项 sudo iptraf-ng
进入菜单选择 IP Traffic Monitor > TCP/UDP Service Monitor。
支持按端口、协议过滤,显示实时流量和连接。
特点:功能全面,适合需要详细分析的场景。
tcpdump
抓包分析通过抓包实时分析TCP连接(需指定网卡)。
# 监听eth0网卡的TCP连接(Ctrl+C退出) sudo tcpdump -i eth0 'tcp'
特点:显示原始数据包,适合调试复杂问题。
/proc/net/tcp
文件直接读取内核提供的TCP连接信息(需解析)。
watch -n 1 "cat /proc/net/tcp"
输出为十六进制格式,需自行解析端口和状态(如 0A
表示 LISTEN
)。
特点:底层数据,适合脚本处理。
工具 | 实时性 | 易用性 | 信息详细度 | 适用场景 |
---|---|---|---|---|
ss + watch | 定期 | 高 | 中 | 快速查看当前连接 |
tcptrack | 动态 | 中 | 中 | 监控活动连接及速率 |
iptraf-ng | 动态 | 中高 | 高 | 综合网络状态分析 |
tcpdump | 实时 | 低 | 高 | 抓包及协议分析 |
选择工具时,若只需简单查看连接状态,推荐 ss
;若需动态监控,使用 tcptrack
或 iptraf-ng
。