出于开发目的,我希望所有对.dev TLD的DNS请求都转发到我自己的PC。
主机文件不足。我使用多个域以及多个子域。我必须为每个组合添加一行。
我已经读过可以使用DNS转发器(例如DNSmasq)来完成这项工作(例如,如此处所述)。而且该软件已经安装在Ubuntu 12.10上。
问题是我看不到如何以及在哪里配置DNSmasq,即我应该在哪里放置此行:
address=/dev/127.0.0.1
出于开发目的,我希望所有对.dev TLD的DNS请求都转发到我自己的PC。
主机文件不足。我使用多个域以及多个子域。我必须为每个组合添加一行。
我已经读过可以使用DNS转发器(例如DNSmasq)来完成这项工作(例如,如此处所述)。而且该软件已经安装在Ubuntu 12.10上。
问题是我看不到如何以及在哪里配置DNSmasq,即我应该在哪里放置此行:
address=/dev/127.0.0.1
Answers:
在Ubuntu 12.04和12.10中默认未安装完整的独立dnsmasq(DHCP和DNS服务器),但在Ubuntu Desktop 12.04和12.10中默认安装了名为dnsmasq-base的软件包。基于dnsmasq的程序包包含dnsmasq二进制文件,并由NetworkManager使用。
要执行您想要的操作,您将需要使用dnsmasq作为缓存DNS服务器。你需要:
/etc/dnsmasq.d/dev-tld
使用以下内容创建:
local=/dev/
address=/dev/127.0.0.5
第一条命令说*.dev
请求不能转发到您的真实DNS服务器。第二*.dev
句话说解析到127.0.0.5
哪个是本地主机。
在Ubuntu 12.10或更高版本中,您可以使用NetworkManager运行的dnsmasq来执行此操作。
mkdir /etc/NetworkManager/dnsmasq.d
如果目录不存在,请创建它。
sudo mkdir /etc/NetworkManager/dnsmasq.d
将以下行扔进去/etc/NetworkManager/dnsmasq.d/dev-tld
。
address=/dev/127.0.0.1
(Ubuntu 12.10)重新启动NetworkManager。
sudo service network-manager restart
(Ubuntu> 13.04)重新启动Dnsmasq。
sudo service dnsmasq restart
享受真棒。
以下在Ubuntu 16.04中为我工作:
安装 dnsmasq
sudo apt-get -y install dnsmasq
编辑dnsmasq.conf
文件:
sudo nano /etc/dnsmasq.conf
添加命令:
address=/dev/127.0.0.1
对于通配符(*),则可以使用点(。),然后使用dnsmasq解析
WHATEWER_YOU_PUT_HERE.yourmachine.yourdomain
为相同的IP。例如,address=/.localhost.dev/127.0.0.1
重新启动dnsmasq服务:
sudo /etc/init.d/dnsmasq restart
刚安装了新的19.04,并且我无法正常运行的唯一方法是禁用systemd-resolved
并NetworkManager
使用dnsmasq
DNS。NetworkManager
已建成的支持dnsmasq
和dnsmasq-base
包被默认安装。
我将多个域指向不同的VM,例如*.customerX.test
to 192.168.33.10
和*.productY.test
to 192.168.33.20
等。我不再使用*.dev
,而是使用保留的顶级域名之一。
禁用 systemd-resolved
sudo systemctl disable systemd-resolved.service
sudo systemctl stop systemd-resolved.service
sudo rm /etc/resolv.conf
编辑/etc/NetworkManager/NetworkManager.conf
以dnsmasq
用于DNS。
[main]
dns=dnsmasq
放入dnsmasq
配置/etc/NetworkManager/dnsmasq.d/test-tld.conf
address=/test/127.0.0.1
address=/customerX.test/192.168.33.10
最后重启NetworkManager
,将产生一个新的/etc/resolv.conf
sudo systemctl restart network-manager.service
.dev
Google那样使用它。我仍在研究他们将使用它的目的以及他们是否打算让普通人连接到它,或者只是打算与员工建立连接,但是如果是前者,则您可能不希望重定向所有访问权限,除非这纯粹是一个测试框,永远不会连接到外部主机。