以非持久方式更改 DNS 服务器(在命令行上)

以非持久方式更改 DNS 服务器(在命令行上)

有没有办法可以在命令行上更改 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,问题就解决了。

相关内容