![主机名如何在无需添加其他名称的情况下发生变化?](https://linux22.com/image/210276/%E4%B8%BB%E6%9C%BA%E5%90%8D%E5%A6%82%E4%BD%95%E5%9C%A8%E6%97%A0%E9%9C%80%E6%B7%BB%E5%8A%A0%E5%85%B6%E4%BB%96%E5%90%8D%E7%A7%B0%E7%9A%84%E6%83%85%E5%86%B5%E4%B8%8B%E5%8F%91%E7%94%9F%E5%8F%98%E5%8C%96%EF%BC%9F.png)
我想访问所有子域名而不需要手动添加
我尝试过但不起作用
127.0.0.6 *.azka.dev
127.0.0.1 localhost
127.0.1.1 noob-Modern-14-B5M
# The following lines are desirable for IPv6 capable hosts
::1 ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
# custom domain
127.0.0.6 azka.dev
127.0.0.6 azka.azka.dev
127.0.0.6 api.azka.dev
127.0.0.6 heroku.azka.dev
127.0.0.6 *.azka.dev
答案1
/etc/hosts
仅将固定 IPv4/v6 地址映射到固定名称,反之亦然。其语法中没有可用的通配符。
如果相当简单的方法/etc/hosts
不足以满足您的要求,您基本上有两种选择:
安装并配置为本地容器/虚拟机提供名称的替代主机名解析插件(查看您的发行版是否有
libnss-*
可用的软件包)。nss-*
例如,Debian 有libnss-docker
对于 Docker 容器和libnss-mymachines
对于由以下人员管理的容器systemd-machined
。如果您选择的发行版中有一个预先存在的插件可以满足您的要求,这可能是最简单的方法:只需安装一个包并编辑hosts:
文件行/etc/nsswitch.conf
,然后就完成了。安装本地 DNS 服务器(例如
dnsmasq
BIND)并将其配置为对您的私有域具有权威性,并将任何其他请求转发到您用作真正 DNS 解析器服务器的任何服务器。这需要更多的工作,并且需要对 DNS 服务器管理有基本的了解 - 但随后您将拥有可用的 DNS 的所有功能。