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