问题现象
浏览器中提示 "The proxy server is refusing connections."
检查客户端或服务器
检查是否所有浏览器都出现这样的问题,如果是,则故障排除集中在squid服务器本身上。
在Ubuntu Linux 16.04 LTS中,Squid服务器异常退出?如何找出其中的原因?
Squid是Web的缓存和开源代理,支持HTTP,HTTPS,FTP等。通过缓存和重用,它减少了带宽并缩短了响应时间。
检查squid代理服务器是否正在运行?
检查进程是否存在:
$ ps aux | grep -i squid $ pgrep squid
检查squid日志文件或squid服务器的状态
执行以下命令:
$ sudo systemctl status squid
日志显示:
Feb 14 04:09:01 onitroad-squid-0001 squid[1658]: Squid Parent: (squid-1) process 1661 exited due to signal 9 with status 0
表明该进程是被随机杀死。 原因是通常是内存不足(OOM)情况。
$ dmesg | grep -i mem
或者
$ dmesg | grep -i out_of_mem
输出示例:
858444.872840] lowmem_reserve[]: 0 0 0 0 0 [858444.872867] 0 pages HighMem/MovableOnly [858444.872948] Out of memory: Kill process 1003 (squid) score 67 or sacrifice child [860244.967476] sessionclean cpuset=/ mems_allowed=0 [860244.967512] [] out_of_memory+0x219/0x460 [860244.967521] [] alloc_kmem_pages_node+0x4b/0xc0
提示是因为内存不足,但是服务器内存是充足的。
之前升级了系统内核:
$ uname -mrs
Linux 4.4.0-59-generic x86_6 该版本有问题
再次升级内核进行修复:
$ sudo apt-get update $ sudo apt-get upgrade ## 或者强制升级 $ sudo apt-get dist-upgrade
重启Linux服务器:
$ sudo reboot $ uname -mrs
检查服务器端口是否打开?
在Ubuntu Linux服务器上执行以下命令,检查TCP端口3128(默认)是否已打开:
$ netstat -tulpn $ ss -tulpn $ netstat -tulpn | grep 3128
如果服务未运行,执行下面命令运行:
$ sudo systemctl start squid
日期:2020-03-23 08:03:52 来源:oir作者:oir