Linux TCP连接数查询

1 tcp连接查看

bash 复制代码
netstat -anput
2 统计连接数
2.1统计80端口的连接数
bash 复制代码
 netstat -nat|grep -i "80"|wc -l
2.2统计总连接数
bash 复制代码
netstat -nat|wc -l
2.3统计已连接上的,状态为established
bash 复制代码
netstat -na|grep ESTABLISHED|wc -l
3 统计所有请求状态及数量
bash 复制代码
netstat -an | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}'

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

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

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

ESTABLISHED 55 代表一个打开的连接

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

CLOSING 2 没有任何连接状态

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

TCP连接状态详解

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

SYN-SENT: 再发送连接请求后等待匹配的连接请求

SYN-RECEIVED:再收到和发送一个连接请求后等待对方对连接请求的确认

ESTABLISHED: 代表一个打开的连接

FIN-WAIT-1: 等待远程TCP连接中断请求,或先前的连接中断请求的确认

FIN-WAIT-2: 从远程TCP等待连接中断请求

CLOSE-WAIT: 等待从本地用户发来的连接中断请求

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

LAST-ACK: 等待原来的发向远程TCP的连接中断请求的确认

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

CLOSED: 没有任何连接状态

4 查看那个ip连接最多
bash 复制代码
netstat -anput | grep "ESTABLISHED" | awk '{print $5}'| awk -F: '{print $1}' | uniq | sort -n
5 限制访问

5.1限制最大的连接数

当访问80端口的连接数达到100后,开始限制为最多允许每分钟25个链接(防止cc攻击)

bash 复制代码
iptables -A INPUT -p tcp --dport 80 -m limit --limit 25/minute --limit-burst 100 -j ACCEPT

限制单个ip的并发访问(防止cc攻击)

bash 复制代码
iptables -I INPUT -p tcp --dport 85 -s 192.168.1.8 -m connlimit --connlimit-above 10 -j REJECT

流量均衡

将访问流量分流至内网三台不同主机:

bash 复制代码
iptables -A PREROUTING -i eth1 -p tcp --dport 80 -m state --state NEW -m nth --counter 0 --every 3 --packet 0 -j DNAT -to-destination 172.27.8.10
iptables -A PREROUTING -i eth1 -p tcp --dport 80 -m state --state NEW -m nth --counter 0 --every 3 --packet 0 -j DNAT -to-destination 172.27.8.20
iptables -A PREROUTING -i eth1 -p tcp --dport 80 -m state --state NEW -m nth --counter 0 --every 3 --packet
6 保存配置

通过iptables配置防火墙立即生效。iptables防火墙配置在重启后就失效了,解决方法如下:

6.1 将配置写入文件
sudo iptables-save > /etc/iptables.rules

6.2 网卡启动和关闭时自动加载和保存配置

编辑/etc/network/interfaces文件,添加如下内容:

pre-up iptables-restore < /home/user/iptables.rules

post-down iptables-save > /home/user/iptables.rules

pre-up: 网卡启用前的动作

up: 启用时候的动作

post-up: 启用后的动作

pre-down: 关闭前的动作

down: 关闭时动作

post-down: 关闭后动作

相关推荐
ASS-ASH2 分钟前
快速处理虚拟机磁盘扩容问题
linux·数据库·vmware·虚拟机·磁盘扩容
AI_56782 分钟前
零基础学Linux:21天从“命令小白”到独立部署服务器
linux·服务器·人工智能·github
不染尘.4 分钟前
Linux基本概述
linux·windows·centos·ssh
weixin_446260857 分钟前
XPipe: 轻松访问你的服务器基础设施 [特殊字符]
运维·服务器
TTGGGFF8 分钟前
GLM-4V-9B 视觉多模态模型本地部署教程【保姆级教程】
linux·运维·服务器·图文对话
消失的旧时光-194311 分钟前
函数指针 + 结构体 = C 语言的“对象模型”?——从 C 到 C++ / Java 的本质统一
linux·c语言·开发语言·c++·c
郝学胜-神的一滴15 分钟前
Linux系统编程:深入理解读写锁的原理与应用
linux·服务器·开发语言·c++·程序人生
Larry_Yanan15 分钟前
Qt多进程(十一)Linux下socket通信
linux·开发语言·c++·qt
代码游侠24 分钟前
学习笔记——ESP8266 WiFi模块
服务器·c语言·开发语言·数据结构·算法
Hello.Reader27 分钟前
PyFlink Configuration 一次讲透怎么配、配哪些、怎么“调得快且稳”
运维·服务器·python·flink