{"msg":"操作成功","code":200,"data":{"createBy":"admin","createTime":"2024-12-02 09:26:16","updateBy":"admin","updateTime":"2024-12-02 09:26:16","remark":null,"id":93,"articleTitle":"每天一个Linux命令（十七）netstat","articleUrl":"linux_netstat","articleThumbnail":"https://www.asumimoe.com/imgfiles/20250301/b95d839fa195428cb42fc7f104f50b0d.png","articleFlag":"0","draftStatus":"1","reprintStatement":"0","articleSummary":"netstat是 Linux/Unix 系统中用于显示网络连接、路由表、接口统计信息的命令（Network Statistics），支持查看 TCP、UDP 连接状态、监听端口、网络接口等信息。它是网络管理和故障排查中常用的工具之一。","articleContent":"`netstat` 是 Linux/Unix 系统中用于**显示网络连接、路由表、接口统计信息**的命令（Network Statistics），支持查看 TCP、UDP 连接状态、监听端口、网络接口等信息。它是网络管理和故障排查中常用的工具之一。\n\n---\n\n## 语法\n\n```bash\nnetstat [选项]\n```\n\n---\n\n## 常用选项\n\n| 选项 | 说明                     |\n| ---- | ------------------------ |\n| `-a` | 显示所有连接和监听端口   |\n| `-t` | 显示 TCP 连接            |\n| `-u` | 显示 UDP 连接            |\n| `-n` | 以数字形式显示地址和端口 |\n| `-l` | 显示监听中的端口         |\n| `-p` | 显示进程 ID 和程序名称   |\n| `-r` | 显示路由表               |\n| `-i` | 显示网络接口统计信息     |\n| `-s` | 显示网络协议统计信息     |\n| `-c` | 持续显示（实时刷新）     |\n\n---\n\n## 输出字段说明\n\n| 字段               | 说明                               |\n| ------------------ | ---------------------------------- |\n| `Proto`            | 协议类型（如 TCP、UDP）            |\n| `Recv-Q`           | 接收队列中的字节数                 |\n| `Send-Q`           | 发送队列中的字节数                 |\n| `Local Address`    | 本地地址和端口                     |\n| `Foreign Address`  | 远程地址和端口                     |\n| `State`            | 连接状态（如 ESTABLISHED、LISTEN） |\n| `PID/Program name` | 进程 ID 和程序名称                 |\n\n---\n\n## 使用示例\n\n### 1. 显示所有连接和监听端口\n\n```bash\nnetstat -a\n```\n\n输出示例：\n\n```bash\nProto Recv-Q Send-Q Local Address           Foreign Address         State\ntcp        0      0 0.0.0.0:22             0.0.0.0:*               LISTEN\ntcp        0      0 192.168.1.100:22       192.168.1.200:54321     ESTABLISHED\nudp        0      0 0.0.0.0:68             0.0.0.0:*\n```\n\n---\n\n### 2. 显示 TCP 连接\n\n```bash\nnetstat -t\n```\n\n输出示例：\n\n```bash\nProto Recv-Q Send-Q Local Address           Foreign Address         State\ntcp        0      0 192.168.1.100:22       192.168.1.200:54321     ESTABLISHED\n```\n\n---\n\n### 3. 显示 UDP 连接\n\n```bash\nnetstat -u\n```\n\n输出示例：\n\n```bash\nProto Recv-Q Send-Q Local Address           Foreign Address         State\nudp        0      0 0.0.0.0:68             0.0.0.0:*\n```\n\n---\n\n### 4. 显示监听中的端口\n\n```bash\nnetstat -l\n```\n\n输出示例：\n\n```bash\nProto Recv-Q Send-Q Local Address           Foreign Address         State\ntcp        0      0 0.0.0.0:22             0.0.0.0:*               LISTEN\n```\n\n---\n\n### 5. 显示进程 ID 和程序名称\n\n```bash\nnetstat -p\n```\n\n输出示例：\n\n```bash\nProto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name\ntcp        0      0 192.168.1.100:22       192.168.1.200:54321     ESTABLISHED 1234/sshd\n```\n\n---\n\n### 6. 显示路由表\n\n```bash\nnetstat -r\n```\n\n输出示例：\n\n```bash\nKernel IP routing table\nDestination     Gateway         Genmask         Flags   MSS Window  irtt Iface\ndefault         192.168.1.1     0.0.0.0         UG        0 0          0 eth0\n192.168.1.0     0.0.0.0         255.255.255.0   U         0 0          0 eth0\n```\n\n---\n\n### 7. 显示网络接口统计信息\n\n```bash\nnetstat -i\n```\n\n输出示例：\n\n```bash\nKernel Interface table\nIface   MTU Met   RX-OK RX-ERR RX-DRP RX-OVR    TX-OK TX-ERR TX-DRP TX-OVR Flg\neth0   1500 0     123456      0      0 0         98765      0      0      0 BMRU\nlo     65536 0      1234      0      0 0          1234      0      0      0 LRU\n```\n\n---\n\n## 注意事项\n\n1. **权限要求**：显示进程信息（`-p` 选项）需 root 权限\n2. **输出格式**：默认输出格式可能因系统而异\n3. **替代工具**：`netstat` 已逐渐被 `ss` 和 `ip` 命令取代，但仍广泛使用\n\n---\n\n## 进阶用法\n\n### 1. 显示所有 TCP 和 UDP 连接（数字形式）\n\n```bash\nnetstat -tun\n```\n\n输出示例：\n\n```bash\nProto Recv-Q Send-Q Local Address           Foreign Address         State\ntcp        0      0 192.168.1.100:22       192.168.1.200:54321     ESTABLISHED\nudp        0      0 0.0.0.0:68             0.0.0.0:*\n```\n\n---\n\n### 2. 显示所有监听中的 TCP 端口（带进程信息）\n\n```bash\nnetstat -ltp\n```\n\n输出示例：\n\n```bash\nProto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name\ntcp        0      0 0.0.0.0:22             0.0.0.0:*               LISTEN      1234/sshd\n```\n\n---\n\n### 3. 显示网络协议统计信息\n\n```bash\nnetstat -s\n```\n\n输出示例：\n\n```bash\nIp:\n    123456 total packets received\n    0 forwarded\n    0 incoming packets discarded\n    98765 incoming packets delivered\n    65432 requests sent out\nTcp:\n    1234 active connections openings\n    567 passive connection openings\n    0 failed connection attempts\n    0 connection resets received\n```\n\n---\n\n### 4. 持续显示网络统计信息（实时刷新）\n\n```bash\nnetstat -c\n```\n\n输出示例（每秒刷新一次）：\n\n```bash\nProto Recv-Q Send-Q Local Address           Foreign Address         State\ntcp        0      0 192.168.1.100:22       192.168.1.200:54321     ESTABLISHED\n```\n\n---\n\n### 5. 显示所有 UNIX 域套接字\n\n```bash\nnetstat -x\n```\n\n输出示例：\n\n```bash\nProto RefCnt Flags       Type       State         I-Node   Path\nunix  2      [ ACC ]     STREAM     LISTENING     12345    /var/run/docker.sock\n```\n\n---\n\n### 6. 显示所有 IPv6 连接\n\n```bash\nnetstat -6\n```\n\n输出示例：\n\n```bash\nProto Recv-Q Send-Q Local Address           Foreign Address         State\ntcp6       0      0 :::22                  :::*                    LISTEN\n```\n\n---\n\n### 7. 显示所有 IPv4 连接\n\n```bash\nnetstat -4\n```\n\n输出示例：\n\n```bash\nProto Recv-Q Send-Q Local Address           Foreign Address         State\ntcp        0      0 192.168.1.100:22       192.168.1.200:54321     ESTABLISHED\n```","categoryId":1,"viewCount":64,"categoryName":"Linux","author":"球接子","authorAvatar":null,"tagIds":[10],"tagNames":["Linux基础"]}}