Ubuntu

Squid3 拒絕連接

  • August 5, 2017

我正在嘗試將 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),不用擔心安全性或訪問。

有任何想法嗎?

我可以在您的文章中看到兩個問題。首先,squid 似乎沒有在埠 3128 上執行或監聽,因為從netstat. 3128埠沒有監聽程序。

另一個問題是您的 squid 配置將 http_port 定義為:

http_port 127.0.0.1:3128

這意味著它將僅在環回介面上偵聽,因此不會與 localhost 以外的任何主機建立連接。

問題在於將用作指令的127.0.0.1:3128一部分。http_port

如果我將其更改為3128它就可以了。我猜它只是在那個埠上監聽來自本地主機的連接。

引用自:https://serverfault.com/questions/867007