我想使用真实的 URL 而不是localhost
用于本地开发(这样我就可以使我的开发环境更类似于生产环境,而不必记住哪个端口与哪个服务相关联,并且具有有效的证书)。
我为我的域名 ( *.myname.example.com -> 0.0.0.0
) 的 DNS 记录添加了一条 A 记录,但收到“拒绝连接”错误;我需要在机器上进行某些更改吗(例如,我尝试将相同的映射添加到/etc/hosts
)?我同样尝试将 A 记录添加到127.0.0.1
并将 CNAME 添加到penguin.linux.test
(这0.0.0.0
在我的主机上解析为,请参阅下面的设置,默认情况下有此/etc/hosts
规则)。
有关更多背景信息(即为什么编辑/etc/hosts
不够充分),我实际上无法/etc/hosts
在我的计算机上进行编辑,只能在运行我的代码的虚拟机上进行编辑。更具体地说,我的堆栈如下。
- ChromeOS 主机
- Crostini Arch Linux 容器
- Traefik Docker 容器将子域名路由到适当的服务
为了解决关于问题根源的任何歧义,如果我将 DNS 规则设置为指向我的外部 IP 地址的 A 记录,则此方法非常有效(当我在允许端口转发的网络上时,情况并非总是如此,这是我尝试使用localhost
/ 127.0.0.1
/ 的另一个原因0.0.0.0
)。
答案1
您可能误解0.0.0.0
了127.0.0.1
。
127.0.0.1
是一个通常解析为的环回地址localhost
(在 hosts 文件中默认设置)。0.0.0.0
是一个不可路由的元地址。
答案2
一些管理员,让他们的 Web 应用程序解析到本地主机127.0.0.1
,并且你的计算机在发出请求时可以存储信息
例如:www.example.com 可以拥有 Web 管理员
app.example.com 127.0.0.1 in the A record
你的机器也会存储上述内容。只不过 localhost 现在是你的机器,而不是app.example.com