Files
Knowledge/3 札记/Linux 网络链接.md
T

3.4 KiB
Raw Blame History

想实时监控系统的外网连接并定位到具体的程序和用户,在Linux系统下有不少优秀的工具可以满足你的需求。它们各有侧重,你可以根据场景灵活选择。

下面这个表格汇总了几款常用工具及其核心功能:

工具名称 类型 监控外网连接 显示PID/程序名 主要特点
ss 命令行 ✅ ✅ 功能强大,替代netstat,直接读取内核信息,效率高
lsof 命令行 ✅ ✅ 列出进程打开的文件,强大的网络连接排查能力
nethogs 命令行 ✅ ✅ 实时监控,按进程统计网络流量(上传/下载速率)
Sniffnet 图形化 ✅ ✅ 跨平台,直观的实时流量图表,支持过滤和隐私预警

🛠️ 命令行工具详解

对于习惯使用终端或者需要在服务器环境排查问题的用户,命令行工具是不二之选。

  1. 使用 ss 命令 它是 netstat 的现代替代品,执行速度更快,功能也更强大。

    • 基本用法:使用 -tunp 组合选项可以查看所有的TCP和UDP连接,并显示对应的进程信息。
      sudo ss -tunp
      
    • 筛选外部地址:你可以通过 grep 过滤掉内网地址,专注于外部连接。
      sudo ss -tunp | grep -vE "127.0.0.1|192.168.|10."
      
  2. 使用 lsof 命令 这个命令非常强大,可以列出任何被进程打开的文件,网络连接也被视为文件。

    • 查看所有网络连接:
      sudo lsof -i -nP
      
    • 查看指定端口的连接:如果你想查看哪个进程占用了特定的端口(例如22端口),可以这样操作:
      sudo lsof -i :22
      
  3. 使用 nethogs 命令 当你想知道哪个进程占用了大量带宽时,nethogs 堪称神器。

    • 实时监控:它会像 top 命令一样,动态地显示每个进程的网络流量(发送和接收速率)。
      sudo nethogs eth0  # 请将"eth0"替换为你自己的网卡名
      

🖥️ 图形化界面工具

如果你在桌面环境使用Linux,或者更喜欢直观的可视化界面,那么 Sniffnet 会是一个让你惊喜的工具。

  • 核心特点:
    • 实时流量可视化:通过动态图表清晰展示上传和下载速度的波动。
    • 连接详情一目了然:清晰罗列所有活跃连接的本地/远程地址、端口、协议和状态。
    • 强大的过滤功能:可以按协议、IP地址、端口等条件精准筛选你关心的连接。
  • 安装与使用:你可以从其 GitHub项目页面 下载安装包,启动后即可开始监控。

💡 实用建议与小贴士

  • 关于权限:大部分上述命令都需要 root 权限才能查看所有进程的网络信息,所以别忘了在命令前加上 sudo。
  • 如何选择工具:
    • 快速排查特定连接:使用 ss 或 lsof。
    • 诊断带宽占用问题:使用 nethogs。
    • 日常监控与安全分析:使用图形化的 Sniffnet。

希望这些工具能帮助你更好地了解和掌控系统的网络活动。如果你在使用的过程中遇到任何问题,或者想了解更具体的用法,随时可以再来问我。