我正在尝试使用 Squid 作为一个简单的 Web 代理,但是,在将我的服务器升级到 Ubuntu 17.04 后,它就停止工作了。
我已经禁用了 ufw,所以防火墙不是问题。我可以使用telnet
其他端口并连接,ssh
这样我就可以清楚地与服务器通信。除此之外,它telnet localhost 3128
工作得非常好,但使用外部端口时就会掉线。
我的squid.conf
:
acl SSL_ports port 443
acl CONNECT method CONNECT
cache_peer {redacted company filtering server} parent 80 0 no-query default
never_direct allow all
http_access allow all
#http_access deny !Safe_ports
http_access deny CONNECT !SSL_ports
http_access allow localnet localhost manager
http_access deny manager
http_access allow localhost
http_access deny all
http_port 127.0.0.1:3128
coredump_dir /var/spool/squid
refresh_pattern ^ftp: 1440 20% 10080
refresh_pattern ^gopher: 1440 0% 1440
refresh_pattern -i (/cgi-bin/|\?) 0 0% 0
refresh_pattern (Release|Packages(.gz)*)$ 0 20% 2880
refresh_pattern . 0 20% 4320
结果netstat -plnt
:
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 2222/sshd
tcp 0 0 127.0.0.1:631 0.0.0.0:* LISTEN 1108/cupsd
tcp 0 0 0.0.0.0:445 0.0.0.0:* LISTEN 1307/smbd
tcp 0 0 127.0.0.1:3306 0.0.0.0:* LISTEN 2061/mysqld
tcp 0 0 0.0.0.0:5355 0.0.0.0:* LISTEN 1627/systemd-resolv
tcp 0 0 0.0.0.0:139 0.0.0.0:* LISTEN 1307/smbd
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 1699/nginx: master
tcp6 0 0 :::22 :::* LISTEN 2222/sshd
tcp6 0 0 ::1:631 :::* LISTEN 1108/cupsd
tcp6 0 0 :::3000 :::* LISTEN 2204/gitea
tcp6 0 0 :::445 :::* LISTEN 1307/smbd
tcp6 0 0 :::5355 :::* LISTEN 1627/systemd-resolv
tcp6 0 0 :::139 :::* LISTEN 1307/smbd
tcp6 0 0 :::80 :::* LISTEN 1699/nginx: master
结果telnet localhost 3128
:
seeng@GITServ:~$ telnet localhost 3128
Trying ::1...
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
telnet {hostIP} 3128
来自远程机器的结果:
PS C:\Users\James.Hughes> telnet {hostIP} 3128
Connecting To 10.230.48.93...Could not open connection to the host, on port 3128: Connect failed
该服务器只能从公司网络内部访问,但是,通过它cache peer
可以访问互联网。因此,本质上我希望任何可以连接到该服务器的计算机都代理到缓存对等点(然后将其发送到 WWW),这在升级之前是可以正常工作的,因此无需担心安全性或访问问题。
有任何想法吗?
答案1
我发现您的帖子中有两个问题。首先,从 的输出中可以清楚地看出,squid 似乎没有运行或监听端口 3128。netstat
端口 3128 上没有监听进程。
另一个问题是您的 squid 配置将 http_port 定义为:
http_port 127.0.0.1:3128
这意味着它将只监听环回接口,因此不会监听除本地主机之外的任何主机的连接。
答案2
127.0.0.1:3128
问题在于作为指令的一部分的使用http_port
。
如果我将其更改为 just,3128
它就可以正常工作。我猜它只是在该端口上监听来自本地主机的连接。