文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>ip_conntrack: table full, dropping packet现象解决

ip_conntrack: table full, dropping packet现象解决

时间:2005-07-05  来源:liqiang1027

总是遇到这些,把一些大虾的方法收集一下,以备以后查看。

现象:ip_conntrack: table full, dropping packet.
解决方法:

IP_conntrack表示连接跟踪数据库(conntrack database),代表NAT机器跟踪连接的数目,连接跟踪表能容纳多少记录是被一个变量控制的,它可由内核中的ip- sysctl函数设置。每一个跟踪连接表会占用350字节的内核存储空间,时间一长就会把默认的空间填满,那么默认空间时多少?我以redhat为例在内存为64MB的机器上时4096,内存为128MB是 8192,内存为256MB是16376,那末就能在/proc/sys/net/ipv4/ip_conntrack_max里查看、设置。
例如:增加到81920,可以用以下命令: 
 echo "81920" > /proc/sys/net/ipv4/ip_conntrack_max

那样设置是不会保存的,要重启后保存可以在/etc/sysctl.conf中加: 
net.ipv4.ip_conntract_max =81920
按照此方法改变后一切正常,要是在满了可以加大其值.

修改/proc/sys/net/ipv4/下的一些参数...不让连接存活的时间过长,因为很多都只是http,短连接接到响应就关闭连接了,但是ip_conntrack仍然需要保存

下载hping: 
http://www.hping.org/download.html 

./configure 
make 
make install 

安装后写一个script: 

代码:
[code:1:204710b32b]
#!/bin/bash 
 
echo 
echo "############################" 
echo "# Edit by Youngh 2003.06.24 v1.1 " 
echo "# Usage : clr_conns IpAddress" 
echo "# This will clear all connections from this IP_Address" 
echo "# Example:/root/clr_conns 10.0.3.3 " 
echo "############################" 
echo 
 
if [ -z $1 ] ; then 
exit 
fi 
 
grep -E "^tcp .{10,25}ESTABLISHED src=$1 " /proc/net/ip_conntrack | while read line ; do 
S_IP=`echo $line | awk '{print substr($5,5)}'` 
S_SOCK=`echo $line | awk '{print substr($7,7)}'` 
D_IP=`echo $line | awk '{print substr($6,5)}'` 
D_SOCK=`echo $line | awk '{print substr($8,7)}'` 
echo "$S_IP:$S_SOCK $D_IP:$D_SOCK" 
 
hping2 $D_IP -R -s $S_SOCK -p $D_SOCK -a $S_IP -k -c 1 >/dev/null 2>/dev/null & 
 
done
[/code:1:204710b32b]
 保存为clr_conns.sh 

用: 

sh clr_conns.sh x.x.x.x 

就可以清除显示的连接. 

相关阅读 更多 +
排行榜 更多 +
辰域智控app

辰域智控app

系统工具 下载
网医联盟app

网医联盟app

运动健身 下载
汇丰汇选App

汇丰汇选App

金融理财 下载