Windows 的 DNS 查询乱加域名后缀。如何解决?

59 天前
 cnbatch

几年前我买了软路由,把我父母家的内网和我自己的内网连了起来。

当时恰好有域名商家正在特价促销,于是我注册了 .guru 域名,用来给我两个内网做区分,同时方便相互访问,至少不用每次都输入 IP 地址。

(以下是示例,并不是我注册的真实域名)

我家用的是 *.myhome.itismydomain.guru,父母家内网用的是 *.thehome.itismydomain.guru

此后访问两边的内网机器全靠域名,很方便。比如访问自己内网的 nas ,我只需要进入 https://nas 或者 https://nas.myhome.itismydomain.guru 就可以了。
访问父母家的 WiFi 路由,只需要进入 wifi.thehome.itismydomain.guru ,方便我远程开 / 关访客 SSID 。

然而没多久就遇到一些小麻烦了。

每次访问正常网站,Windows 总会胡乱拼接域名。比如访问 www.google.comwww.baidu.comwww.icbc.com.cn ,Windows 时不时会抽风,向路由器发出这样的查询:

这样的域名显然不存在,浏览器只好给我跳个 DNS_PROBE_FINISHED_NXDOMAIN 错误码。有时刷新一下就恢复正常。但并不是每次都这么抽风,绝大多数情况下都是正常的。

我父母家那边的 Windows 机器也是一样,偶然会遇到 Windows 乱拼接。

Android 手机不会出现这种情况,Linux 和各个 BSD 也不会出现这种事,它们都知道什么时候应该拼接内部域名,什么时候不该追加内部域名。

已经顺手 Google 了下,发现类似情况早就存在了:
https://answers.microsoft.com/zh-hans/windows/forum/all/windows-server2016-ad/2738559d-11e4-4e96-ab65-ff534e0b7505
整整 7 年,微软也不打算修一修

1466 次点击
所在节点    Windows
7 条回复
jim9606
59 天前
你把 myhome.itismydomain.guru 设成 dns 后缀了吧?然后标准 dns 解析没回应就会尝试拼接 dns 后缀
组策略-管理模板-网络-DNS 客户端有一个“允许将 DNS 后缀附加到非限定性多标签域名进行查询”,看看管不管用?
1423
59 天前
外行做法, linux 同样有这类错误配置的情况
jeesk
59 天前
dns search domain 被滥用了?
sky96111
59 天前
遇到过类似问题,我的搜索域是.lan ,我访问 xxx.com ,有时候 Windows 甚至会给我拼出 xxx.com.lan.lan 这种域名
niubilewodev
59 天前
Linux 会拼的,而且是优先拼。
但是 linux 有 ndots 参数,可以指定。
cnbatch
59 天前
@jim9606 我把域名设置成软路由的“域”了,它应该自动进一步设置成了 DNS 后缀。

设成“禁用”确实有效。
我查了下路由器 DNS 查询记录,在改成“禁用”之前有个奇怪现象,Windows 居然是先查询拼接后缀,DNS 返回表示域名不存在,Windows 才再发出另一个 DNS 请求查询未拼接的正确域名。
组策略“禁用”该选项后,Windows 才直接查询正确域名。

@niubilewodev
然后到在安卓、Linux 、BSD 分别试了下,包括 ping 和直接开网站,再调出 DNS 查询记录,都是第一次就查询正确域名(未拼接)
yinmin
58 天前
别用后缀方式,改用域名指定 ip 方式。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1072123

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX