问题现象

浏览器中提示 "The proxy server is refusing connections."

检查客户端或服务器

检查是否所有浏览器都出现这样的问题,如果是,则故障排除集中在squid服务器本身上。

如何诊断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