Chinaunix

标题: 十万火急!做的透明代理严重丢包断线! [打印本页]

作者: mengcun123    时间: 2014-11-16 03:28
标题: 十万火急!做的透明代理严重丢包断线!
求解释centos6.按照yang上的配置一步一步做下来,刚开始很流畅,ping百度什么一点也不丢包,一两个小时以后就开始丢包然后断线。尝试过6.3和6.5.都一样
作者: chenzhiquan2000    时间: 2014-11-16 08:07
提示: 作者被禁止或删除 内容自动屏蔽
作者: mengcun123    时间: 2014-11-16 08:19
回复 2# chenzhiquan2000

用centos 6 和 5 都做过,因为是测试环境所以我就联网 yum安装 之后按照网络上的步骤做设置,刚开始测试很流畅,客户端的机器ping 百度都很正常,但是往往一两个小时之后就开始出现丢包,很严重的丢包   ,查看了一下日志    报kernel: nf_conntrack: table full, dropping packet 的错误,上网也查过了,说是需要改内核参数,但是看过很多透明配置都没有提到这个情况,我想知道是不是我配置上出现了问题还是代理根本就不能ping ,只能浏览网页。我尝试了N多次,都是这个样子。

我配置基本采用  http://www.liusuping.com/ubuntu- ... parent-setting.html  这篇博文上的配置方式。
作者: dengbao2001    时间: 2014-11-16 08:40
mengcun123 发表于 2014-11-16 08:19:52
回复 2# chenzhiqua

既然有错误提示,肯定要修复这个问题。任何文档不可能面面俱到,遇到问题,要随机应变
作者: mengcun123    时间: 2014-11-16 08:44
回复 4# dengbao2001
我看论坛很多文章,基本没有人提到过这个问题,我想是不是我安装的有问题,还是系统问题。。。。

   
作者: jixuuse    时间: 2014-11-18 17:13
表满了,一般有两种情况:

1、内网用户并发连接过大,超过了系统默认设置。
对于这种,可以考虑直接用panabit等现成的router系统进行限速、限制并发。

2、内网有人中毒,特别是内网SYN攻击,我遇到过瞬间并发60000+,搞得服务器从1-65535端口全部被拿来做NAT的情况。
这个只能杀毒,管理好内部网络
作者: woxizishen    时间: 2014-11-20 08:58
本帖最后由 woxizishen 于 2014-11-20 09:02 编辑

iptables有自己的检测状态的连接表,当表格满的时候会出现延迟或者丢包。

摘自网上解决该问题的方法,你可以测试下
ip_conntrack: table full, dropping packet 的解决方法:

CentOS 6 /RHEL 5 下的解决方法:

1.运行


复制代码代码如下:sysctl -w net.ipv4.netfilter.ip_conntrack_max=100000.sysctl -w net.ipv4.netfilter.ip_conntrack_max=100000

2.在 /etc/sysctl 中加入:


复制代码代码如下:net.ipv4.netfilter.ip_conntrack_max = 100000.net.ipv4.netfilter.ip_conntrack_max = 100000

3.使其生效:


复制代码代码如下:sysctl -p.sysctl -p

CentOS 6 /RHEL 6 下的解决方法:

1.运行


复制代码代码如下:sysctl -w net.nf_conntrack_max=100000.sysctl -w net.nf_conntrack_max=100000

2.在 /etc/sysctl 中加入:


复制代码代码如下:net.nf_conntrack_max = 100000.net.nf_conntrack_max = 100000

3.使其生效:


复制代码代码如下:sysctl -p.sysctl -p
作者: mengcun123    时间: 2014-11-22 15:34
回复 6# jixuuse

我允许内网通过proxy的只有一台电脑,如果内网有问题的话,不会要等一两个小时才出现问题吧
   
作者: mengcun123    时间: 2014-12-02 10:17
回复 7# woxizishen
关闭squid,只开iptables的时候丢包!兄台,这是什么情况

   
作者: mengcun123    时间: 2014-12-02 10:18
回复 6# jixuuse


    关闭squid,只开iptables的时候丢包!兄台,这是什么情况

   
作者: woxizishen    时间: 2014-12-02 10:25
回复 9# mengcun123

和squid没关系 上面已经告诉你了 iptables的表已经满了,你可以尝试上面方法先把iptables修改下


   
作者: mengcun123    时间: 2014-12-02 13:34
回复 11# woxizishen


    不会吧,我刚刚开始用就已经有丢包了。。。。。
作者: mengcun123    时间: 2014-12-02 13:36
回复 6# jixuuse


    兄弟,能告诉我,满了,怎么处理吗
作者: woxizishen    时间: 2014-12-02 14:10
回复 12# mengcun123

1.你先把iptables表格增大先,如果增大后还是有这问题,你得考虑是不是内网谁的电脑中毒了,还有你客户端到底多少台电脑设置网关是指到你这个服务器上?


2.还有一种极少数情况可能,你们内网有个极品用户把自己的ip地址设成你这个代理服务器的ip地址,和你抢地址在。
作者: mengcun123    时间: 2014-12-02 16:33
回复 14# woxizishen
能否留一个联系方式,方便又问题请教你。:wink:
   
作者: mengcun123    时间: 2014-12-03 09:42
回复 11# woxizishen


     永久修改ip_conntrack_max和hashsize

  1) 增大 ip_conntrack_max(设置为 2^20,默认值是 2^16=65536)

  # vi /etc/sysctl.conf

  net.ipv4.ip_conntrack_max = 1048576

  2) 增大 hashsize (在i386架构上,HASHSIZE = CONNTRACK_MAX /

  # vi /etc/modprobe.conf

  options ip_conntrack hashsize=131072

  然后重启 iptables 服务,在 messages中可以看到参数已生效:

  # service iptables restart

按照网上的这个弄的,结果还是丢包。。。。




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2