![在 docker 而不是 VM 上使用 Pihole 时,网站重定向不起作用](https://linux22.com/image/793240/%E5%9C%A8%20docker%20%E8%80%8C%E4%B8%8D%E6%98%AF%20VM%20%E4%B8%8A%E4%BD%BF%E7%94%A8%20Pihole%20%E6%97%B6%EF%BC%8C%E7%BD%91%E7%AB%99%E9%87%8D%E5%AE%9A%E5%90%91%E4%B8%8D%E8%B5%B7%E4%BD%9C%E7%94%A8.png)
我目前正在将一些基础设施从大量运行简单程序的虚拟机迁移到容器中。
我正在尝试将我们的 pihole DNS 服务器移动到容器中。一切都运行良好,直到我收到警告,我们的一个网站重定向无法正常工作。我们的一个提供商要求将所有外部流量重定向到登录页面,并且我们子网上的任何人都可以直接转到所需的网页。我们子网上的员工和公共访问 PC 被重定向到登录页面,而它们不应该被重定向到登录页面。Apache2 Web 服务器仍在 VM 中,并且没有改变。自从我们一年多前创建它以来,重定向一直运行良好。至少到现在为止。关闭 pihole 容器,然后重新打开 pihole VM,重定向就会再次开始工作。所以,我假设问题出在 Docker 如何处理网络。在某些情况下,我在 macvlan 上运行容器,因此 pihole 位于我们的物理网络上,并且不使用 docker 主机 IP。不是我的选择……更多的是我的组织的要求。VM
和容器上的 Pihole 设置完全相同。我已经三次检查过这个,并让别人检查过它。假设物理局域网是 10.0.0.0/24 我的 docker 网络:
sudo docker network create --config-only --subnet 10.0.0.0/24 --gateway 10.0.0.1 -o parent=eth0 --ip-range 10.0.0.0/26 --aux-address 'host=10.0.0.10' my_macvlan_config
sudo docker network create -d macvlan --config-from my_macvlan_config --attachable my_macvlan_network
sudo ip link add macvlan_shim link eth0 type macvlan mode bridge
sudo ip addr add 10.0.0.10/32 dev macvlan_shim
sudo ip link set macvlan_shim up
sudo ip route add 10.0.0.0/26 dev macvlan_shim
docker 主机是 10.0.0.7
pihole(容器)是 10.0.0.3
apache2 web 服务器是 10.0.0.2
我们的 apache2 服务器的重定向如下所示,希望有帮助:
RewriteEngine On
RewriteCond %{REMOTE_ADDR} !^10\.0\.
RewriteCond %{REMOTE_ADDR} !^[REDACTED]
RewriteCond %{REMOTE_ADDR} !^[REDACTED]
RewriteCond %{REMOTE_ADDR} !^[REDACTED]
RewriteRule [REDACTED]\.html$ https://[REDACTED]
我尝试将我的 IP 直接添加到重定向排除列表中,但即使这样也失败了。我花了一段时间才弄清楚问题首先来自容器……因为我没想到 HTTP 重定向问题会由 apache2 配置以外的任何其他原因引起。
一切似乎都运行正常,DNS 解析、广告拦截等。只有在使用容器而不是 VM 时,网站重定向才会失败。docker
网络是否有可能导致问题?
提前谢谢您!