ubuntu 18.04 的 Squid 代理无法连接
Squid proxy at ubuntu 18.04 impossible to connect
我是 Google Cloud 的新手,所以我可能解释得不准确。\
我在 Google Cloud Platform 上有 Ubuntu 18.04 的虚拟机,我在上面安装了 Squid 3 代理服务器。
代理已经配置了一些。
http_port 3128 transparent
auth_param basic program /usr/lib/squid3/basic_ncsa_auth /etc/squid/passwd
auth_param basic children 2
auth_param basic realm My Proxy Server
auth_param basic credentialsttl 24 hours
auth_params basic casesensitive off
#add acl rules
acl users proxy_auth REQUIRED
#http access rules
http_access deny !users
http_access allow users
在 Google 控制台中,我可以看到服务器的外部 IP 地址,但无法通过它工作。
ifconfig命令显示下一个
ens4: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1460
inet 10.156.0.3 netmask 255.255.255.255 broadcast 0.0.0.0
inet6 fe80::4001:aff:fe9c:3 prefixlen 64 scopeid 0x20<link>
ether 42:01:0a:9c:00:03 txqueuelen 1000 (Ethernet)
RX packets 104399 bytes 83418274 (83.4 MB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 93840 bytes 12598292 (12.5 MB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
inet6 ::1 prefixlen 128 scopeid 0x10<host>
loop txqueuelen 1000 (Local Loopback)
RX packets 16697 bytes 1149429 (1.1 MB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 16697 bytes 1149429 (1.1 MB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
其中 inet 10.156.0.3 表示我的内部 IP。
我想我不明白 Google 平台或代理配置的一些简单工作规则。
你能告诉我哪里错了吗?
谢谢。
要解决您的问题,您需要检查 nmap 您的 VM 上打开了哪些端口,如果 3128 已关闭,请为您的 VM 设置 Network tag
并添加防火墙规则以允许访问它。
我已尝试在我的测试虚拟机上重现您的问题:
- 创建 VM 实例或使用现有实例
- 安装 Squid
检查 Squid 是否 运行:
$ sudo systemctl status squid
● squid.service - LSB: Squid HTTP Proxy version 3.x
Loaded: loaded (/etc/init.d/squid; generated)
**Active: active (running)** since Wed 2020-02-19 11:47:50 UTC; 26s ago
使用 nmap 检查 Squid 的可访问性:
$ nmap -Pn 35.XXX.155.XXX
Starting Nmap 7.80 ( https://nmap.org ) at 2020-02-19 12:53 CET
...
Host is up (0.023s latency).
Not shown: 996 filtered ports
PORT STATE SERVICE
22/tcp open ssh
3389/tcp closed ms-wbt-server
8000/tcp closed http-alt
8081/tcp closed blackice-icecap
鱿鱼不可用
编辑 VM 并设置 Network tag
proxy-server
添加防火墙规则以使用 Network tag
:
启用与 Squid 的连接
$ gcloud compute --project=test-prj firewall-rules create proxy-server-rule --direction=INGRESS --priority=999 --network=default --action=ALLOW --rules=tcp:3128 --source-ranges=0.0.0.0/0 --target-tags=proxy-server
再次使用 nmap 检查 Squid 的可访问性
$ nmap -Pn 35.XXX.155.XXX
Starting Nmap 7.80 ( https://nmap.org ) at 2020-02-19 12:53 CET
...
Host is up (0.022s latency).
Not shown: 995 filtered ports
PORT STATE SERVICE
22/tcp open ssh
3128/tcp open squid-http
3389/tcp closed ms-wbt-server
8000/tcp closed http-alt
8081/tcp closed blackice-icecap
现在 Squid 可以使用了。
我是 Google Cloud 的新手,所以我可能解释得不准确。\ 我在 Google Cloud Platform 上有 Ubuntu 18.04 的虚拟机,我在上面安装了 Squid 3 代理服务器。 代理已经配置了一些。
http_port 3128 transparent
auth_param basic program /usr/lib/squid3/basic_ncsa_auth /etc/squid/passwd
auth_param basic children 2
auth_param basic realm My Proxy Server
auth_param basic credentialsttl 24 hours
auth_params basic casesensitive off
#add acl rules
acl users proxy_auth REQUIRED
#http access rules
http_access deny !users
http_access allow users
在 Google 控制台中,我可以看到服务器的外部 IP 地址,但无法通过它工作。
ifconfig命令显示下一个
ens4: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1460
inet 10.156.0.3 netmask 255.255.255.255 broadcast 0.0.0.0
inet6 fe80::4001:aff:fe9c:3 prefixlen 64 scopeid 0x20<link>
ether 42:01:0a:9c:00:03 txqueuelen 1000 (Ethernet)
RX packets 104399 bytes 83418274 (83.4 MB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 93840 bytes 12598292 (12.5 MB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
inet6 ::1 prefixlen 128 scopeid 0x10<host>
loop txqueuelen 1000 (Local Loopback)
RX packets 16697 bytes 1149429 (1.1 MB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 16697 bytes 1149429 (1.1 MB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
其中 inet 10.156.0.3 表示我的内部 IP。 我想我不明白 Google 平台或代理配置的一些简单工作规则。
你能告诉我哪里错了吗? 谢谢。
要解决您的问题,您需要检查 nmap 您的 VM 上打开了哪些端口,如果 3128 已关闭,请为您的 VM 设置 Network tag
并添加防火墙规则以允许访问它。
我已尝试在我的测试虚拟机上重现您的问题:
- 创建 VM 实例或使用现有实例
- 安装 Squid
检查 Squid 是否 运行:
$ sudo systemctl status squid ● squid.service - LSB: Squid HTTP Proxy version 3.x Loaded: loaded (/etc/init.d/squid; generated) **Active: active (running)** since Wed 2020-02-19 11:47:50 UTC; 26s ago
使用 nmap 检查 Squid 的可访问性:
$ nmap -Pn 35.XXX.155.XXX Starting Nmap 7.80 ( https://nmap.org ) at 2020-02-19 12:53 CET ... Host is up (0.023s latency). Not shown: 996 filtered ports PORT STATE SERVICE 22/tcp open ssh 3389/tcp closed ms-wbt-server 8000/tcp closed http-alt 8081/tcp closed blackice-icecap
鱿鱼不可用
编辑 VM 并设置
Network tag
proxy-server
添加防火墙规则以使用
启用与 Squid 的连接Network tag
:$ gcloud compute --project=test-prj firewall-rules create proxy-server-rule --direction=INGRESS --priority=999 --network=default --action=ALLOW --rules=tcp:3128 --source-ranges=0.0.0.0/0 --target-tags=proxy-server
再次使用 nmap 检查 Squid 的可访问性
$ nmap -Pn 35.XXX.155.XXX Starting Nmap 7.80 ( https://nmap.org ) at 2020-02-19 12:53 CET ... Host is up (0.022s latency). Not shown: 995 filtered ports PORT STATE SERVICE 22/tcp open ssh 3128/tcp open squid-http 3389/tcp closed ms-wbt-server 8000/tcp closed http-alt 8081/tcp closed blackice-icecap
现在 Squid 可以使用了。