squid 不会监听特定 IP

squid 不会监听特定 IP

我有一个安装了 squid 的公共子网。

假设我的子网是从 1.2.3.2 到 1.2.4.254。

当我设置以下内容时:

http_port 50000
http_port 1.2.3.2:50000

这是工作。

但是当我设置:

http_port 1.2.4.37:50000

它不工作。

它仅适用于我的子网中的第一个公共 IP。

当它不工作时我收到的错误如下:

commBind: Cannot bind socket FD 10 to 1.2.4.37:50000: (99) Cannot assign requested address

我的配置有什么问题?

@Zoredache

我有一台专用服务器,整个子网被定义为 IP 范围。当我仅使用端口或第一个 IP 并执行

netstat -ntlp | grep  46555

我得到以下信息:

tcp        0      0 0.0.0.0:50000           0.0.0.0:*               LISTEN      25532/(squid        )

当我使用我的特定 IP 时,netstat 查询将不显示任何内容,因为服务器未启动。我不希望 squid 监听所有 IP 或第一个 IP,它只是应该监听的特定 IP。

答案1

的输出是什么netstat -ntlp | grep 50000

默认情况下,该http_port 50000选项将导致 squid 绑定,0.0.0.0:50000 这意味着它将接受系统上任何地址的请求。

您不需要列出1.2.3.2、 或1.2.4.37。只需确保这些地址已分配给主机即可。

如果您的主机没有1.2.4.37本地分配的地址,那么我猜您正在尝试进行拦截缓存之类的操作。您可能需要使用防火墙规则拦截该地址。在 Linux 系统上,您可以使用 REDIR 执行此操作。

ip addr - 我得到:inet 1.2.3.2/22 brd 1.2.5.255 scope global eth0。

如果主机没有配置1.2.4.37IP 地址,则它没有 IP 地址。您必须在网络设置中配置它。Squid 无法绑定到主机上未配置的 IP。

相关内容