Linux netstat 超详细完整教程一、基础说明netstatnetwork statistics是老牌网络连接查看工具用于查看端口监听、TCP/UDP连接、路由表、网卡统计、进程占用端口等。注意新版 LinuxCentOS8、Ubuntu20默认不装 netstat推荐替代工具ss但 netstat 兼容性好运维仍常用。1. 安装 netstat# CentOS / RHELyuminstallnet-tools-y# Debian / Ubuntuaptinstallnet-tools-y二、netstat 通用语法netstat[选项]核心参数分类记忆1. 连接协议类-t只显示 TCP 连接-u只显示 UDP 连接-w原始套接字 RAW-xUNIX 本地域套接字2. 显示状态/进程类-aall显示所有连接监听已建立默认只显示已建立-nnumeric不解析域名、端口、用户名直接数字速度最快日常必加-pprogram显示进程 PID/程序名root 才能看全部进程-llistening只显示监听端口服务端口3. 扩展统计类-eextend扩展信息用户名、inode-otimer显示连接计时器TCP 超时、保活时间-sstatistics各协议收发数据包统计-rroute查看系统路由表-iinterface网卡流量统计-ccontinuous持续刷新输出每秒打印三、输出字段详解执行netstat -ant典型输出tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN tcp 0 96 192.168.1.10:22 10.0.0.5:49152 ESTABLISHED字段拆解Proto协议 tcp/udp/unixRecv-Q接收队列不为0代表对方发的数据本机未读阻塞Send-Q发送队列不为0代表本机数据发不出去网络拥堵Local Address本机IP:端口Foreign Address对方IP:端口0.0.0.0:*代表监听所有地址StateTCP连接状态UDP无状态TCP 常见状态状态含义LISTEN监听端口等待客户端连接服务端ESTABLISHED正常已建立连接正在通信TIME_WAIT连接正常关闭后等待释放大量TIME_WAIT代表短连接并发高CLOSE_WAIT客户端已关闭服务端未调用close程序bug/未释放连接SYN_SENT主动发起连接等待对方握手SYN_RECV收到连接请求回复synack四、高频实用命令运维日常1. 查看本机所有监听端口最常用# -l 监听 -n 数字 -t TCP -u UDPnetstat-lntu只看TCP监听netstat-lnt2. 查看所有连接含已建立监听带进程# -a 全部 -n 数字 -p 进程 -t TCPnetstat-antp不加root时部分进程显示-sudo/root才能完整查看PID。3. 查找某个端口被哪个进程占用例查找80端口占用netstat-lntp|grep80输出会显示 PID/程序名杀进程kill -9 PID4. 只看已建立的TCP连接netstat-ant|grepESTABLISHED5. 统计每个IP连接数排查CC/并发netstat-ant|grepESTABLISHED|awk{print $5}|cut-d:-f1|sort|uniq-c|sort-nr作用列出哪个外部IP连接本机最多判断攻击。6. 统计 TIME_WAIT / CLOSE_WAIT 数量# 统计TIME_WAITnetstat-ant|grepTIME_WAIT|wc-l# 统计CLOSE_WAITnetstat-ant|grepCLOSE_WAIT|wc-l大量CLOSE_WAIT代码未关闭socket大量TIME_WAIT短连接频繁创建销毁。7. 持续实时监控端口连接每秒刷新netstat-antpc8. 查看路由表等价route -nnetstat-rn9. 网卡流量统计netstat-i输出RX-OK/TX-OK收发成功包RX-ERR/TX-ERR错误包。10. 网络协议整体流量统计netstat-s分别展示TCP、UDP、ICMP、IP收发、丢包、错误统计排查网络异常。11. 查看本地Unix套接字进程本地通信netstat-lx12. 显示完整扩展信息用户、inodenetstat-antpe五、实战排错场景场景1端口启动失败提示address already in use# 找到占用进程PIDnetstat-lntp|grep:端口号# 强制杀死kill-9进程PID场景2服务器卡顿大量CLOSE_WAIT连接原因服务端代码未释放连接。临时缓解调整内核tcp参数根治修复程序socket关闭逻辑。场景3对外请求慢大量TIME_WAIT临时优化内核参数/etc/sysctl.confnet.ipv4.tcp_tw_reuse 1 net.ipv4.tcp_fin_timeout 30生效sysctl -p场景4外部恶意高频连接用连接数统计命令拉黑高连接IP# 屏蔽IPiptables-AINPUT-s1.2.3.4-jDROP六、netstat 与 ss 对比现代推荐ssnetstat 缺点性能差高并发服务器卡顿底层读取/proc/net/tcp。ss 优点速度快、信息更全系统内置无需装net-tools。等价替换# netstat -lntuss-lntu# netstat -antpss-antp七、完整参数速查表-a 显示所有连接和监听端口 -t TCP连接 -u UDP连接 -l 仅监听端口 -n 数字格式不解析域名 -p 进程PID/名称 -e 扩展详情用户、inode -o TCP计时器信息 -c 持续刷新 -s 协议流量统计 -r 路由表 -i 网卡信息 -x Unix套接字 -w RAW套接字