我有一个指向我的网络服务器的外部 IP 的域。我设置了 Pi-Hole 服务器并更改了网络设置以使用它,并且我已验证它是否正常工作。我想将我的网络服务器的 URL(指向外部 IP)重定向到网络服务器的内部 IP。
我使用了命令
sudo pihole -a hostrecord example.com 192.168.0.12
将域名重定向到IP。但是当我尝试通过 ping、nslookup 并使用浏览器连接到它时,它会转到外部 IP。
然后我再次执行该命令,但这次域名拼写错误。
sudo pihole -a hostrecord eexample.com 192.168.0.12
这次它成功了,访问 eexample.com 按预期工作,并且被重定向到正确的 IP。
我已经清除了计算机的 DNS 缓存和 Pi-Hole 的缓存。此外,当我在手机上访问正确的域(连接到网络并关闭移动数据)时(以前从未连接到该网站),它按预期工作。
这是怎么回事?
答案1
我不确定这种方法有什么问题,我怀疑您遇到了这个问题,标题为:添加主机记录选项#1266。笔记:此功能似乎没有什么意义,因为它似乎只允许单个host-record
条目。
但我只需将host-record
您想要的条目直接添加到 dnsmasq 的/etc/dnsmasq.d/01-pihole.conf
配置文件中,并绕过 Pi-Hole 的奇怪功能实现。
只需添加如下行:
host-record=google.com,192.168.0.12
例子
在这里我像这样覆盖了 www.google.com :
$ cat /etc/dnsmasq.d/01-pihole.conf
host-record=www.google.com,192.168.1.107
然后重新启动:
$ pihole restartdns
[✓] Restarting DNS service
$
并确认:
$ dig +short www.google.com
192.168.1.107
更永久的东西
如果您担心编辑文件,01-pihole.conf
您可以在下面创建自己的文件集/etc/dnsmasq.d
来执行您想要的任何操作,而不会受到 Pi-Hole 更新的影响。您也可以使用03-pihole-wildcard.conf
,我不相信该文件会因更新而受到影响。
我对我的 LAN 做了类似的事情,这样我就可以覆盖一些东西:
$ cat /etc/dnsmasq.d/03-pihole-wildcard.conf
address=/babycam.mydomain.com/192.168.2.1
address=/www.yahoo.com/192.168.2.10
然后执行pihole restartdns
上面类似的操作并确认:
$ pihole restartdns
[✓] Restarting DNS service
$ dig +short www.yahoo.com
192.168.2.10
参考
答案2
Avast Antivirus 有一个名为“真实站点”的功能,它们会默默地强制您的计算机使用其 DNS 服务器来保护您免受 DNS 劫持。这会覆盖您拥有的任何自定义 DNS 服务器。
禁用此修复了此问题。转到“保护”->“真实站点”并“无限期”禁用它。