有没有办法可以在命令行上更改 DNS 服务器而不必更改磁盘上的任何内容?
我最近启动了救援会话并且获得了一个 IP 地址(使用 DHCP)但没有 DNS 服务器。由于我的网络配置通常是nm-applet
在桌面会话中完成的而不是在/etc/network/interfaces
我希望能够为这次救援会话提供一个 DNS 服务器而不是在磁盘上写入任何内容。
这通常可以通过编辑来实现/run/resolvconf/resolv.conf
。但resolvconf
似乎没有在 ubuntu 14.04 救援会话中运行。
我希望有类似于网络配置的东西,我可以在其中配置接口而不必编辑文件:
# ifconfig eth0 192.168.2.5 netmask 255.255.255.0
# route add default gw 192.168.2.1
有没有办法在 ubuntu 14.04 的救援会话中对 DNS 执行此操作?
答案1
我找到了一种方法来做到这一点:
终止 dns 服务(可能有更巧妙的方法?)
# killall dnsmasq
使用所需的上游服务器重新启动服务:
# dnsmasq --server=192.168.2.1
在较新的 ubuntu (带有 的 ubuntu systemd
) 上,这将是:
# systemd-resolve -i enp0s31f6 --set-dns=192.168.2.1 # --set-dnssec=true
检查:
# systemd-resolve --status
答案2
导航到此目录/etc/resolvconf/resolv.conf.d
使用具有 su 权限的 vi 或 vim 编辑头文件
sudo vi /etc/resolvconf/resolv.conf.d/head
将以下行添加到文件
nameserver *DNS server IP*
保存文件并使用 resolvconf 实用程序通过以下命令设置您输入的静态 DNS 服务器地址
sudo resolvconf -u
答案3
为了使其正常工作,我au.archive.ubuntu.com
在/etc/hosts
文件中添加了一个通过我的电脑 ping 它获得的 IP 地址。
然后就这样做了apt update
,问题就解决了。