Appearance
netstat 命令:网络统计工具
1. 命令简介
netstat
(network statistics)是一个用于显示网络连接、路由表、接口统计等网络相关信息的命令行工具。它能够显示 TCP 和 UDP 端口的使用情况,以及各种网络协议的统计信息。
注意:在较新的 Linux 系统中,netstat
命令已被 ss
命令取代,但由于其广泛使用和易读性,仍然值得学习。
2. 基本语法
bash
netstat [选项]
3. 常用选项
-t
:显示 TCP 连接-u
:显示 UDP 连接-l
:只显示监听中的连接-p
:显示进程 ID 和进程名称-n
:不解析名称,以数字形式显示地址和端口号-a
:显示所有连接,包括 LISTEN 状态-r
:显示路由表-i
:显示网络接口信息-s
:显示各种协议的统计信息
4. 基础使用示例
显示所有活动的连接:
bashnetstat -a
显示所有 TCP 连接:
bashnetstat -at
显示监听中的 TCP 端口:
bashnetstat -lt
显示进程 ID 和程序名:
bashsudo netstat -tp
5. 进阶使用技巧
显示特定端口的连接:
bashnetstat -an | grep :80
显示路由表:
bashnetstat -r
显示网络接口统计信息:
bashnetstat -i
显示 TCP、UDP 等协议的统计信息:
bashnetstat -s
6. 实用示例
查找占用特定端口的进程:
bashsudo netstat -tulnp | grep :443
统计连接状态:
bashnetstat -ant | awk '{print $6}' | sort | uniq -c | sort -n
查看连接到特定 IP 的连接:
bashnetstat -an | grep 192.168.1.100
显示 IPv6 连接:
bashnetstat -A inet6
7. 注意事项
- 某些选项(如 -p)需要 root 权限才能执行。
- 在大型系统上,
netstat
可能会消耗较多资源,影响系统性能。 - 在新版 Linux 系统中,推荐使用
ss
命令代替netstat
。
8. 相关命令
ss
:更新和更高效的套接字统计工具lsof
:列出打开的文件,可用于查看网络连接tcpdump
:网络数据包分析工具nmap
:网络扫描和安全审计工具
9. 技巧与建议
使用
watch
命令实时监控网络连接:bashwatch -n 1 'netstat -an | grep :80'
结合
grep
和awk
提取特定信息:bashnetstat -ant | grep ESTABLISHED | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -nr
使用
netstat -p
查找占用端口的应用程序:bashsudo netstat -tulnp
使用
netstat -s
诊断网络问题,如丢包、重传等:bashnetstat -s | grep -i retransmitted
netstat
是一个强大的网络诊断工具,它可以帮助系统管理员和网络工程师了解系统的网络状态、识别网络问题、监控网络流量等。尽管在较新的系统中它正在被 ss
命令取代,但由于其广泛的可用性和易读的输出,它仍然是一个值得掌握的重要工具。理解和熟练使用 netstat
可以大大提高网络问题的诊断和解决能力。