过去 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 调制解调器的网站!
希望这些能够帮助更多了解服务器管理的人