我的服务器有一个可公开访问的主机名,它显然指向网络的公共 IP 地址。这对于从其他地方访问服务器非常有用。
当在内部使用此主机名/公共 IP 地址时... 什么也不会发生,不幸的是,这是由于路由器的设置方式所致。从网络内部访问公共 IP 地址不起作用。
因此,我已在此服务器上配置了 Adguard,以便在请求公共主机名时返回其自己的本地 IP 地址。效果很好!
但是Docker不喜欢这样。
默认情况下,docker 守护进程使容器用作8.8.8.8
DNS 服务器。当我将其更改为172.17.0.1
它时,它实际上不起作用,因为 docker 容器不知道如何处理服务器的“本地”ip 地址。
因此,我尝试使用另一个覆盖设置第二个 DNS 服务器,将公共主机名指向172.17.0.1
,但我实际上无法在守护进程选项中使用它:127.17.0.1:530
不支持为 DNS 服务器设置不同的端口(如)。
因此,我尝试将第二个 dns 服务器本身 dockerize。使其公开端口 53。但我无法为其提供与其他容器位于同一网络上的静态 ip(它--ip 172.17.0.222:53/udp
只是被忽略,而是使用随机 ip)
于是我创建了一个新网络。现在--ip 172.18.0.2:53/udp
可以正常工作。但是其他容器无法访问该网络,因为网络是隔离的!
还有其他人有其他想法吗?:/