可通过netstat、ss和lsof三个命令实时查看Linux网络连接状态:netstat用于传统统计,ss为高性能替代工具,lsof用于进程级验证;三者分别支持监听端口、已建立连接、进程绑定及特定端口/IP筛选。

如果您需要实时掌握Linux系统中网络连接的建立、监听及数据传输情况,则可以通过内置命令工具查看当前网络连接状态。以下是具体操作步骤:
一、使用netstat命令查看网络连接
netstat是传统的网络统计工具,可显示活动的TCP/UDP连接、监听端口、路由表及接口统计信息。该命令依赖于/proc/net目录下的内核网络状态文件,需确保已安装net-tools软件包。
1、检查是否已安装netstat:执行which netstat或netstat --version,若提示未找到命令,则需安装net-tools。
2、查看所有TCP和UDP连接(含监听与非监听):运行netstat -tuln,其中-t表示TCP、-u表示UDP、-l表示仅显示监听状态、-n表示以数字形式显示地址和端口。
3、查看当前所有已建立的TCP连接(不含监听):执行netstat -tn | grep ESTABLISHED,筛选出处于ESTABLISHED状态的连接。
4、查看特定端口的连接占用情况:例如检查80端口,运行netstat -tuln | grep :80。
二、使用ss命令替代netstat查看连接
ss(socket statistics)是iproute2套件中的现代替代工具,直接读取内核socket信息,比netstat更快速、更精确,且在高并发场景下性能优势明显。
1、查看所有监听的TCP和UDP端口:执行ss -tuln,参数含义与netstat -tuln一致。
2、查看所有已建立的TCP连接:运行ss -tn state established,state关键字后接连接状态标识符。
3、查看连接对应进程信息(需root权限):执行sudo ss -tulnp,-p参数可显示PID和进程名,输出中会包含类似“users:(("nginx",pid=1234,fd=6))”的内容。
4、过滤特定IP地址的连接:例如筛选远程地址为192.168.1.100的TCP连接,运行ss -tn dst 192.168.1.100。
三、结合lsof命令辅助验证网络连接
lsof(list open files)可列出进程打开的所有文件,包括网络socket。当netstat或ss输出结果存在疑问时,可用lsof交叉验证端口与进程的绑定关系。
1、查看所有监听端口及其所属进程:运行sudo lsof -i -P -n -sTCP:LISTEN,-i表示网络文件、-P禁用端口名解析、-n禁用主机名解析、-s指定TCP状态。
2、查看某进程打开的所有网络连接:例如检查PID为5678的进程,执行sudo lsof -nP -i -p 5678。
3、查找占用特定端口的进程:如定位占用3306端口的服务,运行sudo lsof -i :3306。










