Linux Web服务器相关配置、命令

本文介绍如何通过查看服务器链接IP地址排行、利用防火墙禁用恶意IP、修改Linux内核参数来提升服务器性能,并解决了ip_conntrack资源耗尽的问题。

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

1、查看服务器链接IP地址排行:

 cat /proc/net/ip_conntrack | cut -d ' ' -f 10 | cut -d '=' -f 2 | sort | uniq -c | sort -nr | head -n 10

 

2、利用防火墙禁用IP、IP段

iptables -I INPUT -s 192.168.38.174 -j DROP //屏蔽单个ip

iptables -I INPUT -s 192.168.38.0/100 -j DROP //屏蔽某段ip
iptables -I INPUT -s 192.168.0.0/100 -j DROP  //屏蔽某些ip

3、修改Linux内核参数:

netstat -n| awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}'
CLOSED:无连接是活动的或正在进行中的。
LISTEN:服务器在等待进入呼叫。
SYN_RECV:一个连接请求已经到达,等待确认。
SYN_SENT:应用已经开始,打开一个连接。
ESTABLISHED:正常数据传输状态。
FIN_WAIT1:应用说它已经完成。
FIN_WAIT2:另一边已同意释放。
CLOSING:两边同时尝试关闭。
TIME_WAIT:另一边已初始化一个释放。
LAST_ACK:等待所有分组死掉。

 

vim /etc/sysctl.conf

 

如果是用于Apache或Nginx等的Web服务器,或Nginx的反向代理,则只需要更改以下几项即可:
net.ipv4.tcp_syncookies=1
net.ipv4.tcp_tw_reuse=1
net.ipv4.tcp_tw_recycle = 1
net.ipv4.ip_local_port_range = 1024 65000

 

如果是邮件服务器,则建议内核方案如下: 
net.ipv4.tcp_fin_timeout = 30
net.ipv4.tcp_keepalive_time = 300
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_tw_recycle = 1
net.ipv4.ip_local_port_range = 5000 65000
kernel.shmmax = 134217728

 

Linux下高并发的Squid服务器中:

net.ipv4.tcp_fin_timeout = 30
net.ipv4.tcp_keepalive_time = 1200
net.ipv4.tcp_syncookies = 1
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_tw_recycle = 1
net.ipv4.ip_local_port_range = 1024 65000
net.ipv4.tcp_max_syn_backlog = 8192
net.ipv4.tcp_max_tw_buckets = 5000

 

 

执行以下命令使内核配置立即生效: 
/sbin/sysctl -p

 

4、ip_conntrack: table full, dropping packet. 

解决方法(1):加大ip_conntrack_max值
查出原本的ip_conntrack_max值: 
指令: cat /proc/sys/net/ipv4/ip_conntrack_max 
写入理想的数值(每一个ip_conntrack buffer会占用292 Bytes) 
指令: echo "数值" > /proc/sys/net/ipv4/ip_conntrack_max 
例如: echo "81920" > /proc/sys/net/ipv4/ip_conntrack_max 

这个效果是暂时的,如果要每次开机都使用新的数值,需将上述指令写入/etc/rc.d/rc.local 
或是在/etc/sysctl.conf加入: net.ipv4.ip_conntrack_max =数值
或使用指令: sysctl -w net.ipv4.ip_conntrack_max=数值

 

解决方法(2):降低ip_conntrack timeout时间
重设ip_conntrack_tcp_timeout_established (原值: 432000,单位:秒) 
指令: echo "数值" > /proc/sys/net/ipv4/netfilter/ip_conntrack_tcp_timeout_established 
例如: echo "600" > /proc/sys/net/ipv4/netfilter/ip_conntrack_tcp_timeout_established 
开机自动设置的作法同方法(1). 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值