squid 透明代理似乎“破坏”了互联网连接(http - 仅限端口 80)

squid 透明代理似乎“破坏”了互联网连接(http - 仅限端口 80)

过去 2 年,我一直在运行防火墙和代理服务器。它基于此,slackware64 - v14.0并且通常在两次重启之间运行很长时间。直到最近,它一直运行良好。没有其他人可以访问此系统,而且我已经大约 60 天没有摆弄过它了。

最近,我正在设置一台新笔记本电脑,发现访问网页时互联网速度很慢。事实上http(端口 80)网站根本无法加载,https但其他服务/端口可以正常工作。

仔细研究后,我发现通过重新启动 squid 代理服务器,一切都恢复正常,并且恢复了一段时间。但过了一段时间后,又无法访问 http 网站... 我尝试删除整个代理缓存,然后重新设置缓存,但squid -z无济于事。问题似乎又出现了。

日志没有显示任何异常(主要是 TCP 命中和未命中),但奇怪的是日志大小竟然有 907MB(尽管我已从 启用了 squid 日志的 logrotate squid.conf)。除了为什么轮换(60 天前一直有效)不起作用之外,它找不到任何错误。尽管我进行了手动轮换,问题仍然会再次出现,因此我暂时禁用了 squid(通过禁用防火墙对端口 80 的重定向)。

这太奇怪了,我不知道从哪里开始查找。有人遇到过这个问题吗?

一些更新:

当我尝试从特定笔记本电脑(连接到内部 wifi)访问任何 http 网站时,中断问题就开始出现。还有其他笔记本电脑和移动设备通过此 wifi 连接到互联网,甚至还有带有 usb-wifi 加密狗的台式电脑,但当这台笔记本电脑尝试访问网页时,任何人都无法再使用 http 互联网。

防火墙重定向行如下:

$IPT -t nat -A PREROUTING -p tcp -i $LOCAL_IFACE -s $LOCAL_NET --destination-port 80 -j REDIRECT --to-ports 3128 #TRANSP PROXY

如果在 Squid 停止工作后我根本不“触碰”它,而只是注释掉上面的行并重新启动防火墙,互联网就会再次恢复。

说完我又取消了注释。互联网又一次消失了。

while squid“在循环中”:sar 1 1000返回:

02:56:51 AM     all      4.52      0.00      1.01      0.00      0.00     94.47
02:56:52 AM     all      5.00      0.00      1.00      0.00      0.00     94.00
02:56:53 AM     all      5.00      0.00      1.00      2.50      0.00     91.50
02:56:54 AM     all      4.50      0.00      1.50      0.00      0.00     94.00
02:56:55 AM     all      4.50      0.00      1.50      0.00      0.00     94.00
02:56:56 AM     all      4.52      0.00      1.01      0.00      0.00     94.47
02:56:57 AM     all      4.98      0.00      1.49      0.00      0.00     93.53

虽然squid不是“在循环中”,但sar返回:

02:58:36 AM     CPU     %user     %nice   %system   %iowait    %steal     %idle
02:58:37 AM     all      1.01      0.00      0.50      0.00      0.00     98.49
02:58:38 AM     all      2.00      0.00      0.50      2.00      0.00     95.50
02:58:39 AM     all      1.00      0.00      0.50      0.00      0.00     98.50
02:58:40 AM     all      2.00      0.00      0.00      0.00      0.00     98.00
02:58:41 AM     all      1.50      0.00      0.00      0.00      0.00     98.50

所以用户 CPU 使用率会低一些。

当所有这一切发生时,iotop显示了0.00%squid 线程的磁盘使用情况......

此外,使用 : 看到的 squid 最新条目tail -f access.log包括:

1389834351.849    382 192.168.18.25 TCP_MISS/200 335 POST http://serverfault.com/posts/validate-body - DIRECT/198.252.206.16 application/json
1389834353.197    388 192.168.18.25 TCP_MISS/200 335 POST http://serverfault.com/posts/validate-body - DIRECT/198.252.206.16 application/json
1389834372.791    453 192.168.18.25 TCP_MISS/200 349 POST http://serverfault.com/posts/566948/editor-heartbeat/edit - DIRECT/198.252.206.16 application/json

以上内容是在 Squid 处于“循环之外”且通过防火墙启用 Squid 时复制的:

1389834586.593    364 192.168.18.25 TCP_MISS/302 1538 GET http://log.dmtry.com/redir/140952/0/3316/100544580/55099663/210599/0/0/0/1.ver? - DIRECT/54.243.105.45 -
1389834586.634    167 192.168.18.25 TCP_MISS/200 38559 GET http://public.oneallcdn.com/img/api/socialize/providers/logo/sprite_35_35.png - DIRECT/93.184.220.20 image/png
1389834586.639    410 192.168.18.25 TCP_MISS/302 1563 GET http://log.dmtry.com/redir/560228/0/3316/100544579/55097980/858012/0/0/0/1.ver? - DIRECT/54.243.105.45 -

然后我尝试从笔记本电脑(有 IP 地址192.168.18.186)访问某些东西,然后我得到了这个http://pastebin.com/FM9QLtRC

所以我不明白之前和之后有什么不同......

此外,当没有互联网时,我甚至无法访问位于inet防火墙/网关服务器接口上的 ADSL 调制解调器的网站!

希望这些能够帮助更多了解服务器管理的人

相关内容