微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何在用户空间中编辑域名解析

如何解决如何在用户空间中编辑域名解析

域名解析非常简单: grosso modo 它使用域名并返回IP。但是我发现它在Linux中相当复杂。

据我了解,域名解析通过了(不确定顺序):

  • 配置名称类型的顺序 IP映射(nsswitch)
  • 缓存(nscd)
  • 本地文件解析(例如/ etc / hosts)
  • DNS服务器的本地或远程53请求

(我在这里跳过了对dns请求的任何加密)

可以使用许多工具:systemd-resolved,dnsmasq,nslookup,dig,getent,... 我迷路了。我不能做一些非常简单的事情。

我有一个caddy服务器(但它可能是Nginx),其中有几个"addresses"(相当于Nginx“ server_name”)。这些地址用于根据每个请求的“ HOST:”将HTTP请求路由到相应的服务/代理。

当我在公共IP地址上启动caddy服务器时,并且在配置具有正确记录的远程DNS时,一切正常。假设此处使用的dns记录为<mydomainname> -> <public_ip>

但是现在我想在本地测试部署的新版本。因此,我将caddy服务器部署在本地的虚拟机中。如何在caddy内保持HTTP请求路由的同时测试服务器?由于IP更改,我不能再使用以前的dns记录。有需要的<mydomainname> -> <local_ip>。而且我不想更改远程DNS记录,因为它用于产品服务器。在测试期间,所有内容都应是本地的。

我发现了

curl --connect-to <mydomainname>:443:<local_ip>:443 https://<mydomainname>

有效。

但是我希望能够在浏览器中测试服务器。

到目前为止,我尝试在发送之前在浏览器中编辑HTTP请求,并注入Host: <mydomainname>。我还查看了主机别名,但由于limitations而无法使用。

似乎goto解决方案是编辑/etc/hosts,但这在用户空间中是不可能的。 我想尽可能避免依赖本地DNS服务器,因为这只是出于测试目的。

TL; DR

如何在用户空间中编辑域名解析?无需修改/etc中的主机文件

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。