3.4 KiB
3.4 KiB
想实时监控系统的外网连接并定位到具体的程序和用户,在Linux系统下有不少优秀的工具可以满足你的需求。它们各有侧重,你可以根据场景灵活选择。
下面这个表格汇总了几款常用工具及其核心功能:
| 工具名称 | 类型 | 监控外网连接 | 显示PID/程序名 | 主要特点 |
|---|---|---|---|---|
ss |
命令行 | ✅ | ✅ | 功能强大,替代netstat,直接读取内核信息,效率高 |
lsof |
命令行 | ✅ | ✅ | 列出进程打开的文件,强大的网络连接排查能力 |
nethogs |
命令行 | ✅ | ✅ | 实时监控,按进程统计网络流量(上传/下载速率) |
Sniffnet |
图形化 | ✅ | ✅ | 跨平台,直观的实时流量图表,支持过滤和隐私预警 |
🛠️ 命令行工具详解
对于习惯使用终端或者需要在服务器环境排查问题的用户,命令行工具是不二之选。
-
使用
ss命令 它是netstat的现代替代品,执行速度更快,功能也更强大。- 基本用法:使用
-tunp组合选项可以查看所有的TCP和UDP连接,并显示对应的进程信息。sudo ss -tunp - 筛选外部地址:你可以通过
grep过滤掉内网地址,专注于外部连接。sudo ss -tunp | grep -vE "127.0.0.1|192.168.|10."
- 基本用法:使用
-
使用
lsof命令 这个命令非常强大,可以列出任何被进程打开的文件,网络连接也被视为文件。- 查看所有网络连接:
sudo lsof -i -nP - 查看指定端口的连接:如果你想查看哪个进程占用了特定的端口(例如22端口),可以这样操作:
sudo lsof -i :22
- 查看所有网络连接:
-
使用
nethogs命令 当你想知道哪个进程占用了大量带宽时,nethogs堪称神器。- 实时监控:它会像
top命令一样,动态地显示每个进程的网络流量(发送和接收速率)。sudo nethogs eth0 # 请将"eth0"替换为你自己的网卡名
- 实时监控:它会像
🖥️ 图形化界面工具
如果你在桌面环境使用Linux,或者更喜欢直观的可视化界面,那么 Sniffnet 会是一个让你惊喜的工具。
- 核心特点:
- 实时流量可视化:通过动态图表清晰展示上传和下载速度的波动。
- 连接详情一目了然:清晰罗列所有活跃连接的本地/远程地址、端口、协议和状态。
- 强大的过滤功能:可以按协议、IP地址、端口等条件精准筛选你关心的连接。
- 安装与使用:你可以从其 GitHub项目页面 下载安装包,启动后即可开始监控。
💡 实用建议与小贴士
- 关于权限:大部分上述命令都需要
root权限才能查看所有进程的网络信息,所以别忘了在命令前加上sudo。 - 如何选择工具:
- 快速排查特定连接:使用
ss或lsof。 - 诊断带宽占用问题:使用
nethogs。 - 日常监控与安全分析:使用图形化的
Sniffnet。
- 快速排查特定连接:使用
希望这些工具能帮助你更好地了解和掌控系统的网络活动。如果你在使用的过程中遇到任何问题,或者想了解更具体的用法,随时可以再来问我。