Назад | Перейти на главную страницу

Squid3 отказывает в подключении

Я пытаюсь использовать Squid как простой веб-прокси, однако после обновления моего сервера до 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 он работает нормально. Я предполагаю, что он только прослушивал соединения с localhost на этом порту.