几年前我买了软路由,把我父母家的内网和我自己的内网连了起来。
当时恰好有域名商家正在特价促销,于是我注册了 .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.com 、www.baidu.com 、www.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 年,微软也不打算修一修
1
jim9606 72 天前 1
你把 myhome.itismydomain.guru 设成 dns 后缀了吧?然后标准 dns 解析没回应就会尝试拼接 dns 后缀
组策略-管理模板-网络-DNS 客户端有一个“允许将 DNS 后缀附加到非限定性多标签域名进行查询”,看看管不管用? |
2
1423 72 天前
外行做法, linux 同样有这类错误配置的情况
|
3
jeesk 72 天前
dns search domain 被滥用了?
|
5
niubilewodev 72 天前 via iPhone
Linux 会拼的,而且是优先拼。
但是 linux 有 ndots 参数,可以指定。 |
6
cnbatch OP @jim9606 我把域名设置成软路由的“域”了,它应该自动进一步设置成了 DNS 后缀。
设成“禁用”确实有效。 我查了下路由器 DNS 查询记录,在改成“禁用”之前有个奇怪现象,Windows 居然是先查询拼接后缀,DNS 返回表示域名不存在,Windows 才再发出另一个 DNS 请求查询未拼接的正确域名。 组策略“禁用”该选项后,Windows 才直接查询正确域名。 @niubilewodev 然后到在安卓、Linux 、BSD 分别试了下,包括 ping 和直接开网站,再调出 DNS 查询记录,都是第一次就查询正确域名(未拼接) |
7
yinmin 72 天前 via iPhone
别用后缀方式,改用域名指定 ip 方式。
|