这个答案与上面的答案相似,但是使用问题示例配置来回答问题。另外,这解释了为什么两个命令都是必需的。
编辑/etc/network/interfaces
:
iface eth0 inet static
address 192.168.3.3
netmask 255.255.255.0
gateway 192.168.3.1
dns-search example.com
dns-nameserver 192.168.3.45
dns-nameserver 192.168.8.10
除非您重新启动或重新加载配置文件,否则不会进行这些更改:
为了实时更新interfaces文件,必须运行以下命令:
echo "nameserver 192.168.3.45
nameserver 192.168.8.10
search example.com" | sudo resolvconf -a eth0.inet
这允许在不重新引导或重新加载的情况下更新接口。
但是,如果/etc/network/interfaces
不进行上述更改,则重新引导后上述命令更改将丢失。
顺便说一下,此列表中来自BDenis的最后一个答案实际上可以代替最后一个命令,方法是解析/etc/network/interfaces
文件并将这些行传送到命令中。sudo resolvconf -a eth0
这实际上是答案的一半,并且是内联sed解析的一个很好的例子。如果要查看其操作方式,只需运行命令的第一部分并观看它解析/etc/network/interfaces
文件并吐出运行sudo resolvconf -a eth0
命令所需的所有必要信息:
sed 's/#.*$//' /etc/network/interfaces | grep dns- | sed 's/dns-//g'
注意,这将产生与命令相同的输出:
echo "nameserver 192.168.3.45
nameserver 192.168.8.10
search example.com"
假设/etc/network/interfaces
文件配置了以下信息:
iface eth0 inet static
address 192.168.3.3
netmask 255.255.255.0
gateway 192.168.3.1
dns-search example.com
dns-nameserver 192.168.3.45
dns-nameserver 192.168.8.10