Windows上使用docker部署openwrt开启的dns服务 ,无法正确域名解析
在openwrt容器内使用nslook a.test 127.0.0.1 解析正确
在于openwrt容器处于相同docker网络的容器 使用nslookuo a.test $OPENWRT_CONTAINER_IP 解析正确
在Windows上使用nslookup a.test 127.0.0.1 解析失败
在Windows上使用Docker部署OpenWRT并尝试使用其内置的DNS服务时遇到域名解析问题,通常与Docker容器的网络配置和Windows宿主机的网络隔离有关。以下是一些可能的原因和解决方案:
nslookup a.test 127.0.0.1
时,你是在请求宿主机上的服务,而不是Docker容器内的服务。你需要使用Docker容器分配给OpenWRT的IP地址,或者通过端口映射在宿主机上访问。端口映射:
确保你已经将OpenWRT容器中的DNS服务端口(通常是53)映射到宿主机的某个端口。例如,你可以使用以下命令启动Docker容器,将53端口映射到宿主机的5353端口:
docker run -d --name openwrt -p 5353:53/udp -p 5353:53/tcp <image_name>
然后,在Windows上使用nslookup a.test 127.0.0.1 -port=5353
来尝试解析。
使用Docker网络的IP地址:
如果你不想或不能使用端口映射,你可以使用Docker网络分配给OpenWRT容器的IP地址。首先,找到OpenWRT容器的IP地址:
docker inspect -f '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' openwrt
然后使用这个IP地址在Windows上进行nslookup
:
nslookup a.test <OPENWRT_CONTAINER_IP>
通过上述步骤,你应该能够解决在Windows上使用Docker部署的OpenWRT DNS服务的域名解析问题。
2 回答2.5k 阅读✓ 已解决
1 回答1.4k 阅读✓ 已解决
2 回答1.4k 阅读✓ 已解决
1 回答1.8k 阅读✓ 已解决
2 回答1.3k 阅读✓ 已解决
1 回答1.4k 阅读✓ 已解决
1 回答1.1k 阅读✓ 已解决
我感觉你的问题可能出现在端口映射上,这里有个点需要注意下:并不是启动了docker容器后,本机就拥有了docker容器的服务能力。docker容器与本机是两个独立的主机。
nslookup a.test 127.0.0.1
会请求到本机的53端口,由于本机并没有开启dns服务,所以解析不到。解决方案:
为openwrt增加53端口映射,这样以来访问docker宿主(本机)的53端口时,就相当于访问了docker容器的53端口。
此时再执行
nslookup a.test 127.0.0.1
应该就行了。