我已正确设置 DNSmasq,以将任何 *.dev 域指向 localhost。我的 apache vhosts 都配置到了相应的文件夹,但我没有收到来自本地站点的任何响应。我一直在绞尽脑汁,在网上搜索各种答案,但都没有成功。只是指出,此设置以前有效,但 High Sierra Security 更新破坏了一切。这是我的主机配置:
<Directory "/www">
Options Indexes MultiViews FollowSymLinks
AllowOverride All
Require all granted
</Directory>
<Virtualhost *:80>
VirtualDocumentRoot "/www/home/wwwroot"
ServerName home.dev
UseCanonicalName Off
</Virtualhost>
<Virtualhost *:80>
VirtualDocumentRoot "/www/sites/%1/wwwroot"
ServerName sites.dev
ServerAlias *.dev
UseCanonicalName Off
</Virtualhost>
<Virtualhost *:80>
VirtualDocumentRoot "/www/sites/%-7+/wwwroot"
ServerName xip
ServerAlias *.xip.io
UseCanonicalName Off
</Virtualhost>
我刚刚注意到 ping home.dev 返回 127.0.0.1 但 dig home.dev 返回 127.0.53.53
以下是我的 DNS 解析:
DNS configuration
resolver #1
search domain[0] : home
nameserver[0] : 8.8.8.8
nameserver[1] : 208.67.220.220
if_index : 9 (en7)
flags : Request A records
reach : 0x00000002 (Reachable)
resolver #2
domain : local
options : mdns
timeout : 5
flags : Request A records
reach : 0x00000000 (Not Reachable)
order : 300000
resolver #3
domain : 254.169.in-addr.arpa
options : mdns
timeout : 5
flags : Request A records
reach : 0x00000000 (Not Reachable)
order : 300200
resolver #4
domain : 8.e.f.ip6.arpa
options : mdns
timeout : 5
flags : Request A records
reach : 0x00000000 (Not Reachable)
order : 300400
resolver #5
domain : 9.e.f.ip6.arpa
options : mdns
timeout : 5
flags : Request A records
reach : 0x00000000 (Not Reachable)
order : 300600
resolver #6
domain : a.e.f.ip6.arpa
options : mdns
timeout : 5
flags : Request A records
reach : 0x00000000 (Not Reachable)
order : 300800
resolver #7
domain : b.e.f.ip6.arpa
options : mdns
timeout : 5
flags : Request A records
reach : 0x00000000 (Not Reachable)
order : 301000
resolver #8
domain : local
nameserver[0] : 127.0.0.1
flags : Request A records, Request AAAA records
reach : 0x00030002 (Reachable,Local Address,Directly Reachable Address)
resolver #9
domain : dev
nameserver[0] : 127.0.0.1
flags : Request A records, Request AAAA records
reach : 0x00030002 (Reachable,Local Address,Directly Reachable Address)
DNS configuration (for scoped queries)
resolver #1
search domain[0] : home
nameserver[0] : 8.8.8.8
nameserver[1] : 208.67.220.220
if_index : 9 (en7)
flags : Scoped, Request A records
reach : 0x00000002 (Reachable)
答案1
好的,我找到了解决方案。dev 域名似乎是您可以注册的官方域名,因此在我的 DNS 解析中产生了冲突,导致它指向 127.0.53.53,这是发生冲突时通常归属的 IP。这意味着 *.dev 曾尝试通过我的公共 DNS 设置和我的本地主机设置进行解析,从而产生了冲突。我将本地开发域名切换到 *.test,一切立即恢复正常。