![路由器中设置自定义域名以进行本地访问?](https://linux22.com/image/1508027/%E8%B7%AF%E7%94%B1%E5%99%A8%E4%B8%AD%E8%AE%BE%E7%BD%AE%E8%87%AA%E5%AE%9A%E4%B9%89%E5%9F%9F%E5%90%8D%E4%BB%A5%E8%BF%9B%E8%A1%8C%E6%9C%AC%E5%9C%B0%E8%AE%BF%E9%97%AE%EF%BC%9F.png)
最近我购买了一个 TP Link 路由器供家庭使用,说明书上说你可以从http://tplinkwifi.net/领域。
但我搞不懂他们是怎么做到的?当我从家里 ping 该域时,它说正在 ping 192.168.0.1,但当我从办公室执行相同操作时,它说ping: cannot resolve tplinkwifi.net: Unknown host
。
他们如何添加仅在本地路由器环境中有效的自定义域名?我可以这样做吗?
还有哪些路由器型号支持本地域设置,以便我可以设置任何域名并将其指向我的本地 IP 地址。
我知道一种通过修改 Windows 中的 hosts 文件的方法,但这是一个漫长的过程,有没有办法通过路由器或任何 CMS 系统执行相同的操作?
请指教?
答案1
路由器正在自行拦截并回复 DNS 请求。
DNS 是将域名解析tplinkwifi.net
为 IP 地址的系统192.168.0.1
。该协议没有内置任何类型的加密或安全性 - 您的计算机向 DNS 服务器发送 DNS(纯文本)查询,接收(纯文本)响应,并信任它。
当使用 DHCP 时,您的路由器可以为您分配要使用的 DNS(主 DNS 和辅助 DNS),但您的计算机仍然可以覆盖该 DNS。
192.168.3.253
就我而言,我的计算机通过 WiFi连接到 TP-Link Archer C50 路由器 ( ),192.168.3.200
通过 DHCP 获取其 IP ( ),但设置了自定义 DNS 服务器 (8.8.8.8
和8.8.4.4
)。tplinkwifi.net
解析为192.168.3.253
(这不是路由器的标准 IP,因此解析不是固定的),即使我执行明确针对 DNS8.8.8.8
服务器的 DNS 查询,我也会立即收到本地 IP 的响应:
$ dig @8.8.8.8 tplinkwifi.net
; <<>> DiG 9.10.6 <<>> @8.8.8.8 tplinkwifi.net
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 48609
;; flags: qr rd ra ad; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0
;; QUESTION SECTION:
;tplinkwifi.net. IN A
;; ANSWER SECTION:
tplinkwifi.net. 1 IN A 192.168.3.253
;; Query time: 1 msec
;; SERVER: 8.8.8.8#53(8.8.8.8)
;; WHEN: Wed Jul 07 23:59:52 -03 2021
;; MSG SIZE rcvd: 48
因此结论是路由器拦截了该名称的 DNS 查询,并自行响应,冒充8.8.8.8
。您可以看到1 msec
响应时间(我的互联网连接非常差,ping8.8.8.8
最多需要 30 毫秒),因此一定是路由器伪造了响应。
您最终可以检查Google 公共 DNS实际域名解析为其他 IP。为了能够访问该网站,您应该连接到 Internet 而不通过解析此域名的 TP Link 路由器,将这些 IP 硬编码到本地主机文件中,或者使用 DNS over HTTPs (DoH) 以避免 DNS 查询被路由器拦截。
答案2
根据型号和管理界面,您可能能够或不能添加/修改 DNS 条目。实际情况是您的计算机通过 DHCP 将路由器作为其主 DNS 服务器。路由器上要么有 DNS 服务器,要么有包含该地址的 hosts 文件。
由于它不是公开注册的域,因此您在任何时候都无法在本地网络之外访问该地址。
如果您想完全控制本地网络上的 DNS,您可以在树莓派上设置 bind9 并配置路由器以指向它。