Linux Web服务器相关配置、命令
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 //屏蔽某段ipiptables -I INPUT -s 192.168.0.0/100 -j DROP? //屏蔽某些ip3、修改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).?