文档首页> 常见问题> Linux如何查看网络连接状态?

Linux如何查看网络连接状态?

发布时间:2025-04-13 11:11       

Linux网络连接状态全解析:从基础命令到高级监控

作为Linux系统管理员或开发者,掌握网络连接状态的查看方法是必备技能。本文将详细介绍Linux系统中各种网络连接状态的查看方法,从基础命令到高级工具,助您全面掌握网络诊断技术。

一、基础网络连接状态查看命令

1. netstat命令

netstat是最经典的网络状态查看工具,虽然在新版Linux中逐渐被ss替代,但仍然值得了解:

# 查看所有活动的网络连接
netstat -antp

# 显示监听状态的端口
netstat -lntp

# 显示UDP连接
netstat -anup

参数说明:-a显示所有连接,-n以数字形式显示地址,-t显示TCP连接,-u显示UDP连接,-p显示进程信息

2. ss命令

ss是netstat的现代替代品,性能更好,功能更强大:

# 显示所有TCP连接
ss -t -a

# 显示所有监听端口
ss -lntp

# 显示特定端口的连接
ss -ntp sport = :80

3. lsof命令

lsof可以查看特定进程打开的文件和网络连接:

# 查看所有网络连接
lsof -i

# 查看特定端口的连接
lsof -i :22

二、进阶网络连接分析

1. 连接状态详解

TCP连接有多种状态,常见的有:

  • ESTABLISHED:已建立连接
  • TIME_WAIT:等待足够时间确保远程TCP收到连接中断确认
  • CLOSE_WAIT:等待本地用户关闭连接
  • LISTEN:监听状态

2. 统计连接状态

# 统计各种TCP状态数量
ss -ant | awk 'NR>1 {print $1}' | sort | uniq -c

3. 监控网络连接变化

使用watch命令实时监控网络连接变化:

watch -n 1 "ss -s"

三、网络连接问题诊断

1. 常见问题排查

  • 端口被占用:使用ss -tulnp | grep 端口号查找占用进程
  • 连接数过多:检查TIME_WAIT状态连接数量
  • 连接拒绝:检查服务是否运行,防火墙设置

2. 网络性能分析

使用iftop、nethogs等工具分析网络流量:

# 安装iftop
sudo apt install iftop

# 使用iftop监控流量
sudo iftop -i eth0

四、持久化网络状态监控

1. 使用conntrack

conntrack可以跟踪网络连接状态:

# 安装conntrack
sudo apt install conntrack

# 查看连接跟踪表
sudo conntrack -L

2. 使用systemtap进行深度监控

对于需要深度分析的高级用户,可以使用systemtap:

# 安装systemtap
sudo apt install systemtap

# 监控TCP连接建立
stap -e 'probe kernel.trace("tcp_accept") { printf("%s\n", $$parms) }'

五、图形化工具推荐

  • Wireshark:强大的网络协议分析工具
  • nmap:网络探测和安全审计工具
  • ntopng:实时网络流量监控工具

掌握Linux网络连接状态的查看方法对于系统管理和故障排查至关重要。从基础的netstat/ss命令,到高级的conntrack和systemtap工具,层层深入,您可以根据实际需求选择合适的工具。建议将常用命令制作成脚本或别名,提高工作效率。