WSL2 Ubuntu中仅单个主机无法通过无DNS后缀的裸主机名访问的问题排查求助
WSL2 Ubuntu中仅单个主机无法通过无DNS后缀的裸主机名访问的问题排查求助
各位大佬好,我碰到了一个特别奇怪的WSL2网络问题,折腾了好久没搞明白,想请大家帮忙分析下:
环境背景
- 系统:Windows 11 Pro,搭配默认安装的WSL2 Ubuntu发行版
- 网络配置:DHCP分配了默认搜索域
mydomain.dev - DNS服务:内网用Pi-hole做DNS服务器,所有内网主机都手动添加了带完整后缀的DNS记录(比如
host1.mydomain.dev对应192.168.1.254)
奇怪的现象对比
Windows主机及其他客户端(正常)
所有三台内网主机都能通过裸主机名直接访问,系统会自动补全mydomain.dev后缀,比如:
C:\Users\Isaac>ping host1 Pinging host1.mydomain.dev [192.168.1.254] with 32 bytes of data: Reply from 192.168.1.254: bytes=32 time=1ms TTL=64
WSL2 Ubuntu(异常)
只有2台主机能通过裸主机名正常访问,第三台host1必须手动加上后缀才能解析成功:
- 直接ping裸主机名报错:
isaac@ubuntu:~$ ping host1 ping: host1: Name or service not known
- 加后缀后正常:
isaac@ubuntu:~$ ping host1.mydomain.dev PING host1.mydomain.dev (192.168.1.254) 56(84) bytes of data. 64 bytes from 192.168.1.254 (192.168.1.254): icmp_seq=1 ttl=63 time=1.08 ms
而另外两台(比如host2)用裸主机名却完全正常:
isaac@ubuntu:~$ ping host2 PING host2 (192.168.1.251) 56(84) bytes of data. 64 bytes from 192.168.1.251 (192.168.1.251): icmp_seq=1 ttl=63 time=2.27 ms
当前WSL网络配置
我没有修改过WSL内的任何网络配置,/etc/resolv.conf是WSL自动生成的,指向Hyper-V接口的DNS地址(应该是转发到Windows主机的解析器):
isaac@ubuntu:~$ cat /etc/resolv.conf # This file was automatically generated by WSL. To stop automatic generation of this file, add the following entry to /etc/wsl.conf: # [network] # generateResolvConf = false nameserver 172.22.96.1
我尝试过的操作
我在Pi-hole里给host1额外加了一条不带后缀的DNS记录(即host1直接指向192.168.1.254),之后WSL里就能用裸主机名访问host1了;但删掉这条额外记录后,又回到了解析失败的状态。而另外两台正常的主机,Pi-hole里只有带完整后缀的单条记录。
我的困惑
这个问题不是普遍的DNS后缀补全失效(毕竟另外两台主机完全正常),而且Windows端所有主机都能正常解析,为什么唯独WSL里host1的裸主机名无法自动补全后缀?之前看到有类似问题被标记为重复,但那个问题是所有主机都无法解析,和我的情况完全不一样,实在搞不懂哪里出问题了,求各位大佬指点!
备注:内容来源于stack exchange,提问作者Isaac Dontje Lindell
相关产品推荐
相关产品推荐

