欢迎各位兄弟 发布技术文章

这里的技术是共享的

You are here

linux 如何实时查看 tcp 连接 deepseek chatgpt 有大用

在Linux系统中,实时查看TCP连接可以通过以下工具实现,具体方法如下:


1. 使用 ss 命令 + watch 工具

ss(Socket Statistics)是替代 netstat 的高效工具,结合 watch 可定期刷新输出。

bash
复制
# 查看所有TCP连接(包括监听/已建立),每秒刷新一次
watch -n 1 "sudo ss -tnap"

# 参数说明:
# -t : 仅显示TCP连接
# -n : 不解析服务名称(直接显示端口号)
# -a : 显示所有连接(包括监听)
# -p : 显示关联的进程信息
# 需要sudo权限查看进程信息

特点:简单高效,适合快速查看当前状态。


2. 使用 tcptrack 工具

tcptrack 可动态显示TCP连接及其传输速率,需手动安装。

bash
复制
# 安装(Debian/Ubuntu)
sudo apt install tcptrack

# 实时监控指定网卡的TCP连接(如eth0)
sudo tcptrack -i eth0

特点:实时显示连接状态、速率,自动更新,适合监控活动连接。


3. 使用 iptraf-ng 工具

交互式网络监控工具,提供详细的统计信息。

bash
复制
# 安装(Debian/Ubuntu)
sudo apt install iptraf-ng

# 启动后选择监控选项
sudo iptraf-ng
  • 进入菜单选择 IP Traffic Monitor > TCP/UDP Service Monitor

  • 支持按端口、协议过滤,显示实时流量和连接。

特点:功能全面,适合需要详细分析的场景。


4. 使用 tcpdump 抓包分析

通过抓包实时分析TCP连接(需指定网卡)。

bash
复制
# 监听eth0网卡的TCP连接(Ctrl+C退出)
sudo tcpdump -i eth0 'tcp'

特点:显示原始数据包,适合调试复杂问题。


5. 查看 /proc/net/tcp 文件

直接读取内核提供的TCP连接信息(需解析)。

bash
复制
watch -n 1 "cat /proc/net/tcp"
  • 输出为十六进制格式,需自行解析端口和状态(如 0A 表示 LISTEN)。

特点:底层数据,适合脚本处理。


工具对比

工具实时性易用性信息详细度适用场景
ss + watch定期快速查看当前连接
tcptrack动态监控活动连接及速率
iptraf-ng动态中高综合网络状态分析
tcpdump实时抓包及协议分析

选择工具时,若只需简单查看连接状态,推荐 ss;若需动态监控,使用 tcptrack 或 iptraf-ng


普通分类: