我知道我可以通过添加以下行来使用我选择的 DNS /etc/dhcp/dhclient.conf
:
$ supersede domain-name-servers 1.1.1.1, 1.0.0.1;
我可以验证是否使用了正确的 DNS,如下所示:
$ nmcli dev show | grep DNS
IP4.DNS[1]: 1.1.1.1
IP4.DNS[2]: 1.0.0.1
但我想自动设置我的机器(Ubuntu 18.04),因此希望避免/etc/dhcp/dhclient.conf
直接编辑。 “简单”的解决方案是将附加到文件中:
echo "supersede domain-name-servers 1.1.1.1, 1.0.0.1;" | sudo tee -a /etc/dhcp/dhclient.conf
但这有一个缺点,如果安装脚本运行两次,该行将会重复。有没有既定的方法来做到这一点?
答案1
根据@Patrick 的评论,你可以这样做:
LINE='supersede domain-name-servers 1.1.1.1, 1.0.0.1;'
FILE=/etc/dhcp/dhclient.conf
grep -qF "${LINE}" "${FILE}" || echo ${LINE} | sudo tee --append "${FILE}"
我希望/期待会有一个标准接口dhclient
或类似的接口,但如果它有效,它就有效。 :-)