Squid 允许特定端口

Squid 允许特定端口

我是一名程序员,但现在负责管理基于 Linux 的网络,所以这个问题可能有点愚蠢。所有 PC 都通过 squid 作为代理服务器,squid 未设置为阻止正常的“受信任”端口,例如 80(http),我还将其更改为允许更高的端口,例如 4040。但当我尝试打开包含此端口号的 URL 时,squid 会阻止它,例如

http://192.168.1.100:4040

对于它为什么会这样做,有什么想法吗?

客户端是 Windows XP,squid 在 VMware 映像上的 Debian(据我所知)上运行。

答案1

允许的端口通常由 来配置Safe_ports acl。配置文件应该有一个配置端口列表的 ACL。这在规则中使用http_access。我的配置有规则http_access deny !Safe_ports

Debian 系统可能正在运行 iptables 防火墙,阻止对端口 4040 的传出访问。

编辑:如果删除注释和空白行,可能会更容易读取配置。这应该会将您查看的行数减少到 50 左右。删除文件并提取 acl 数据的命令是:

 sudo grep -v -e '^#' -e '^$' /etc/squid3/squid.conf > ~/squid.txt
 grep grep -i -e acl -e allow  -e deny squid.txt

您的问题的重要内容是:

acl localnet src 192.168.0.0/16  # RFC1918 possible internal network
acl Safe_ports port 1025-65535  # unregistered ports
http_access deny !Safe_ports
http_access allow localnet

如果缺少未注册的端口,则最有可能出现问题。如果端口上使用 HTTPS,则连接可能会失败。

相关内容