在 macOS 中使用“.localhost”顶级域名解析地址

在 macOS 中使用“.localhost”顶级域名解析地址

在本地开发 Web 应用时,我喜欢使用类似的地址app.localhost:8080来访问它们。它们在 Chrome 中运行良好,但在 Safari 中却不行。我猜这是因为 Chrome 对 TLD 有特殊处理,而 Safari 使用 OS DNS 解析器。

有没有办法让 macOS 将所有.localhost地址解析为127.0.0.1

答案1

是的,作为 root,你应该编辑你的 /etc/hosts 文件并添加如下行

127.0.0.1 app.localhost
127.0.0.1 app2.localhost

ETC。

如果它不立即起作用,则重新启动浏览器/重启。

更新:我没有 Mac,但可以尝试一下127.0.0.1 *.localhost。对于我的 Linux,它不起作用,那么唯一的方法是在您的机器上设置 DNS 服务器并在其上配置“localhost”区域。

答案2

我认为通配符 (*) 在 中不起作用/etc/hosts。在 MacOS Safari 上,唯一的选择是使用类似域名系统

brew install dnsmasq
mkdir -pv $(brew --prefix)/etc/
echo 'address=/.localhost/127.0.0.1' >> $(brew --prefix)/etc/dnsmasq.conf
echo 'port=53' >> $(brew --prefix)/etc/dnsmasq.conf
sudo mkdir -v /etc/resolver
sudo bash -c 'echo "nameserver 127.0.0.1" > /etc/resolver/localhost'
sudo brew services start dnsmasq

如果您使用的是不同的域扩展名(如 *.test),请将其替换localhosttest所有地方。

此外,port53是 DNS 端口。重新映射将适用于所有端口。例如,您可以使用http://foobar.localhost:8080或任何其他名称。

上面的脚本修改自这个要点

相关内容