netstat查看linux服务器网络连接状态

netstat查看linux服务器网络连接状态

维护linux 服务器时,要经常查看服务器的网络连接状态,netstat 是一个非常优秀的工具,通过netstat 可以显示网络连接、路由表和网络接口信息,可以让用户得知目前都有哪些网络连接正在运作。

netstat -[rn]       <==与路由有关的参数
netstat -[antulpc] <==与网路介面有关的参数参数:

与路由 (route) 有关的参数说明:
-r :列出路由表(route table),功能如同 route 这个指令;
-n :不使用主机名称与服务名称,使用 IP 与 port number ,如同 route -n
与网路介面有关的参数:
-a :列出所有的连线状态,包括 tcp/udp/unix socket 等;
-t :仅列出 TCP 封包的连线;
-u :仅列出 UDP 封包的连线;
-l :仅列出有在 Listen (监听) 的服务之网路状态;
-p :列出 PID 与 Program 的档名;
-c :可以设定几秒钟后自动更新一次,例如 -c 5 每五秒更新一次网路状态的显示;
-v :显示正在进行的工作。

下面这个语句是一个非常好的查看TCP 连接状态的语句:

netstat -n | awk '/^ tcp / {++S[$NF]} END {for(a in S) print a, S[a]}’

返回结果示例:

LAST_ACK 5
SYN_RECV 30
ESTABLISHED 1597
FIN_WAIT1 51
FIN_WAIT2 504
TIME_WAIT 1057

以下是各种状态的描述

CLOSED:无连接是活动的或正在进行
ESTABLISED:已建立连线的状态;
SYN_SENT:发出主动连线 (SYN 标志) 的连线封包;
SYN_RECV:接收到一个要求连线的主动连线封包;
FIN_WAIT1:该插槽服务(socket)已中断,该连线正在断线当中;
FIN_WAIT2:该连线已挂断,但正在等待对方主机回应断线确认的封包;
TIME_WAIT:该连线已挂断,但 socket 还在网路上等待结束;
LISTEN:通常用在服务的监听 port !可使用『 -l 』参数查阅。
CLOSING:两边同时尝试关闭
TIME_WAIT:另一边已初始化一个释放
LAST_ACK:等待所有分组死掉

### 3. 使用 `ss` 或 `netstat` 查看连接状态 通过 `ss` 或 `netstat` 命令可以查看当前服务器TCP 连接状态,识别是否存在大量连接处于 `CLOSE_WAIT`、`TIME_WAIT` 或 `SYN_RECV` 状态,这些状态可能表明网络拥塞或连接处理效率低下。 ```bash ss -antp | awk '{print $2}' | sort | uniq -c ``` 该命令将输出不同连接状态的数量统计,有助于判断是否存在连接堆积问题。 ### 3. 检查系统 `netfilter` 连接跟踪条目限制 Linux 内核通过 `netfilter` 跟踪连接状态,如果连接数过多,可能会触发 `ip_conntrack` 的限制,导致新连接无法建立或响应延迟。可以通过以下命令查看当前连接跟踪条目数: ```bash cat /proc/sys/net/netfilter/nf_conntrack_count ``` 同时,查看系统允许的最大连接跟踪条目数: ```bash cat /proc/sys/net/netfilter/nf_conntrack_max ``` 如果当前连接数接近最大值,可能表明网络拥塞或连接管理存在问题。需要注意的是,不应盲目增加 `ip_conntrack_max`,因为这可能会影响系统性能和稳定性[^3]。 ### 3. 使用 `sar` 分析网络性能 `sysstat` 工具包中的 `sar` 命令可以用于收集和分析系统性能数据,包括网络接口的吞吐量、丢包率等信息。安装 `sysstat` 后,执行以下命令查看网络接口的统计信息: ```bash sar -n DEV 1 5 ``` 该命令将每隔 1 秒采集一次网络接口的性能数据,共采集 5 次。通过观察 `rxkB/s`、`txkB/s`、`%ifutil` 等指标,可以判断网络接口是否处于高负载状态,从而推断是否存在拥塞。 ### 3. 检查 TCP 重传率 TCP 重传是网络拥塞的常见表现之一。使用 `netstat` 可以查看当前系统的 TCP 重传情况: ```bash netstat -s | grep "segments retransmited" ``` 如果重传率较高,说明网络中可能存在丢包或延迟问题,这可能是拥塞的信号。 ### 3. 使用 `mtr` 进行路径分析 `mtr` 是一个结合了 `traceroute` 和 `ping` 功能的网络诊断工具,可以实时显示数据包在网络中的路径及每一跳的丢包率和延迟情况。安装并运行 `mtr`: ```bash mtr <目标IP地址> ``` 通过观察每一跳的响应时间和丢包率,可以识别网络路径中是否存在拥塞点。 ### 3. 检查系统资源和连接限制 每个 TCP 连接Linux 中都占用一个文件句柄,系统默认允许的最大文件句柄数通常为 1024。如果服务器需要处理大量并发连接,应适当增加该值。查看当前系统的文件句柄限制: ```bash ulimit -n ``` 查看系统全局的文件句柄限制: ```bash cat /proc/sys/fs/file-max ``` 如果当前连接数接近系统限制,可能导致新连接无法建立,表现为网络拥塞或服务不可用。 ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值