TCP连接数的那些事

5 篇文章 0 订阅
4 篇文章 0 订阅

背景

在实际工作中,特别运维职业过程中,查询服务器的TCP是一个必备的技能,比如在工作中,开发反馈某个IP连接不上每个服务器、某台服务器突然登录不上、或者开发提供一个IP+端口需要你查询这个IP是什么服务,等等。。。,这个时候查询服务器的TCP服务就显得尤为重要,下面就直接展示工作中实际运用的命令;

技术呈现

1、统计某个端口的连接数【8080为例】

netstat -ant|grep -i 8080 |wc -l

2、统计某个服务的连接数【tomcat服务为例】

ps -ef| grep tomcat | wc -l

3、统计已连接上本台服务器的主机,状态为"established"的个数

netstat -na|grep ESTABLISHED|wc -l

4、查看哪些服务器连接到本机
netstat -anlp

5、查看本机那台服务器连接最多【以此可以判断连接过来的机器的异常问题,作下一步分析】
netstat -anput | grep “ESTABLISHED” | awk ‘{print $5}’| awk -F: ‘{print $1}’ | uniq | sort

6、查询正在与本机进行TCP通信的服务器IP及连接个数
netstat -an | grep “ESTABLISHED” | awk ‘{print $5}’| awk -F: ‘{print $1}’ | sort | uniq -c

7、查询本机某个端口占用的进程【以80端口为例】
netstat anlp |grep 80 #根据端口可以查询到占用这个端口的进程的pid
ps -ef|grep pid #可以根据pid查询到具体的某一个进程

8、查询本机等待关闭的连接数
nestat anlp |grep TIME_WAIT |wc -l

9、查询本机等待关闭的连接数的具体地址
netstat -anlp |grep TIME_WAIT

TIME_WAIT过多的优化方法

发现服务器存在大量TIME_WAIT状态的连接,通过调整内核参数解决:
编辑文件:vim /etc/sysctl.conf
加入或修改以下内容:
net.ipv4.tcp_syncookies = 1
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_tw_recycle = 1
系统参数生效
/sbin/sysctl -p

参数说明:
net.ipv4.tcp_syncookies = 1 #表示开启SYN cookies。当出现SYN等待队列溢出时,启用cookies来处理,可防范少量SYN攻击,默认为0,表示关闭;
net.ipv4.tcp_tw_reuse = 1 表示开启重用。允许将TIME-WAIT sockets重新用于新的TCP连接,默认为0,表示关闭;
net.ipv4.tcp_tw_recycle = 1 表示开启TCP连接中TIME-WAIT sockets的快速回收,默认为0,表示关闭;
net.ipv4.tcp_fin_timeout 修改系統默认的 TIMEOUT 时间;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值