Linux查看TCP连接情况

本文介绍了一个用于检查系统中TCP连接状态的shell命令。通过netstat和awk的组合使用,可以详细列出各种TCP状态的连接数量,如TIME_WAIT、CLOSE_WAIT等,并解释了每个状态的含义。此外,还提供了一个查看正常并发连接的命令。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

netstat -n | awk '/^tcp/ {++state[$NF]} END {for(key in state) print key,"\t",state[key]}'

会得到类似下面的结果,具体数字会有所不同:

TIME_WAIT 	 5856
CLOSE_WAIT 	 268
FIN_WAIT1 	 3
ESTABLISHED 	 4837
SYN_RECV 	 14
CLOSING 	 1

 

相关TCP状态解释:

LISTEN:       侦听来自远方的TCP端口的连接请求;

SYN_SENT:     在发送连接请求后等待匹配的连接请求;

SYN_RECV: 在收到和发送一个连接请求后等待对方对连接请求的确认;

ESTABLISHED:  代表一个打开的连接;

FIN_WAIT1:   等待远程TCP连接中断请求, 或先前的连接中断请求的确认;

FIN_WAIT2:   从远程TCP等待连接中断请求;

CLOSE_WAIT:   等待从本地用户发来的连接中断请求;

CLOSING:      等待远程TCP对连接中断的确认;

LAST_ACK:     等待原来的发向远程TCP的连接中断请求的确认;

TIME_WAIT:    等待足够的时间以确保远程TCP接收到连接中断请求的确认;

CLOSE:        没有任何连接状态;

 

如果只想看正常的并发连接,使用如下命令: netstat -nat|grep ESTABLISHED|wc -l

 

Linux系统中,可以使用多种命令行工具来查看TCP协议的连接情况。这些工具通过读取/proc文件系统或使用netlink套接字来获取内核中的网络连接信息。下面是一些常用的命令: 1. `netstat`:netstat命令是一个网络工具,可以显示路由表、活动的网络连接、接口统计、伪装连接、多播成员等信息。查看TCP连接可以使用以下命令: ``` netstat -tulnp | grep tcp ``` 这里的参数含义如下: - `-t` (tcp) 显示TCP连接。 - `-u` (udp) 显示UDP连接。 - `-l` (listen) 仅显示监听状态的套接字。 - `-n` (numeric) 直接显示IP地址和端口号,不尝试将它们解析为域名和服务名。 - `-p` (program) 显示正在使用该连接的程序名。 2. `ss`:`ss`是Socket Statistics的缩写,是一个用于显示socket统计信息的工具,用于替代`netstat`。它能够显示更多TCP连接状态和更多信息。查看TCP连接可以使用以下命令: ``` ss -tulnp ``` 参数含义与`netstat`类似。 3. `lsof`:`lsof`(LiSt Open Files)是一个列出当前系统打开文件的工具。它也被用来查看网络连接。使用`lsof`查看TCP连接可以使用以下命令: ``` lsof -i :port ``` 其中`port`是你要查询的端口号。如果不指定端口号,将列出所有当前打开的网络连接。 4. `nmap`:`nmap`是一个网络探测和安全审核工具,它也可以用来查看TCP连接,尤其是对于扫描开放的端口非常有用。使用`nmap`进行端口扫描的命令是: ``` nmap -sT -O localhost ``` 这里的参数含义如下: - `-sT` (TCP connect scan) 使用TCP连接扫描。 - `-O` (enable OS detection) 启用操作系统检测。 这些工具各有特色,你可以根据具体需求和习惯选择使用。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值