我在 ubuntu 17.04 上有两个以太网接口,eth0 和 eth1。eth0 配置为 DHCP,并获取 IP 地址、网关和 DNS 服务器。这是一台移动 PC,因此这些每次都会发生变化。
eth1 是一个本地网络,我想在其中提供一个 DHCP 服务器,该服务器具有提供 IP(静态或动态)、网关、搜索域以及主 DNS 和辅助 DNS 的基本功能。我想传递 eth0 的 DNS 服务器,而不是一些静态的已知选项。如何实现这一点?
一旦我连接 eth0,dnsmasq 似乎正在进行解析,而且我似乎找不到(a)两个服务器的存储位置以及(b)动态指示 DHCP 服务器 isc-dhcp 或 dnsmasq 或其他任何服务器在报价中使用它们。
非常感激!
答案1
我想知道您是否需要为第二个接口传递 DNS 服务器,因为我很确定只有一个系统解析器。但您可以使用以下命令检查 DNS 服务器:
$ nmcli connection show <CONNECTION_NAME> | egrep "DNS|\sdomain_name_servers"
您可以使用以下命令列出您的活动连接名称:
$ nmcli connection show --active
您可以使用以下命令设置新的 DNS 服务器(本例中为 8.8.8.8 和 8.8.4.4):
$ sudo dbus-send --system --print-reply --dest=org.freedesktop.NetworkManager.dnsmasq /uk/org/thekelleys/dnsmasq uk.org.thekelleys.SetDomainServers "array:string:8.8.8.8,8.8.4.4"
并检查是否成功:
$ journalctl -n -b _COMM=dnsmasq
和
$ sudo kill -USR1 `cat /var/run/NetworkManager/dnsmasq.pid` && sleep .5; journalctl -n -b _COMM=dnsmasq
更新:
如果您想提供自己的提供 DNS 记录的 DHCP 服务器,最好让您的dnmasq
实例提供 DNS 查询。因此,请在您的接口dnsmasq
上进行监听:eth0
$ sudo tee <<< "interface=eth0" /etc/NetworkManager/dnsmasq.d/bind-eth0.conf
$ sudo systemctl reload NetworkManager
并设置您的 DHCP 服务器以提供 eth0 的 IP 地址作为 DNS 服务器。