问题描述
出于开发目的,我希望所有对.dev TLD的DNS请求都转发到我自己的PC。
主机文件不足。我使用多个域以及多个子域。我必须为每个组合添加一行。
我读过可以使用DNS转发器(例如DNSmasq)来完成这项工作(例如as described here)。而且该软件已经安装在Ubuntu 12.10上。
问题是我看不到如何配置DNSmasq的方式和位置,即我应该将以下行放在哪里:
address=/dev/127.0.0.1
最佳办法
在Ubuntu 12.04和12.10中默认未安装完整的独立dnsmasq(DHCP和DNS服务器),但在Ubuntu Desktop 12.04和12.10中默认安装了名为dnsmasq-base的软件包。 dnsmasq-base软件包包含dnsmasq二进制文件,并且被NetworkManager使用。
要执行您想要的操作,您将需要使用dnsmasq作为缓存DNS服务器。你需要:
-
安装dnsmasq sudo apt-get安装dnsmasq
-
更改您的网络设置,以便您的计算机将自身用作dns服务器。
-
对配置文件进行更改:
使用以下内容创建/etc/dnsmasq.d/dev-tld
:
local=/dev/
address=/dev/127.0.0.5
第一条命令说,*.dev
请求无法转发到您的真实DNS服务器。第二个消息说*.dev
解析为本地主机127.0.0.5
。
-
重新启动dnsmasq服务(不是network-manager)
次佳办法
在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
-
享受真棒。