根据这一页看起来很简单。然而,/etc/bind
在默认安装的 Ubuntu 12.04.3 LTS 服务器上并不存在。
那么,在不安装任何其他软件的情况下,如何在 ubuntu 服务器上配置 DNS 并删除 dnsmasq?我对sudo
&非常熟悉nano
。
答案1
设置 DNS 服务器
/etc/network/interfaces
如果您想通过命令行更改 DNS 服务器,则需要配置该文件。
它看起来应该是这样的:
# The loopback network interface
auto lo
iface lo inet loopback
# The primary network interface
auto eth0
iface eth0 inet static
address 192.168.X.X
netmask 255.255.255.0
gateway 192.168.X.X
dns-nameservers X.X.X.X
如果您有多个 DNS 服务器,只需在每个服务器之间添加一个空格:
dns-nameservers X.X.X.X Y.Y.Y.Y Z.Z.Z.Z
只需将 Xs、Ys 和 Zs 替换为您自己选择的 DNS 服务器的 IP,完成后运行此命令来更新设置:
sudo ifdown eth0 && sudo ifup eth0
希望这可以帮助!
2023 年更新
ifconfig
、ifdown
、ifup
已弃用。您可以使用:
sudo ip link set eth0 down && sudo ip link set eth0 up
确保在一行中使用这些命令,以&&
避免在您通过网络或 SSH 使用系统时卡住。
答案2
Ubuntu 20.04 默认不再使用resolv.conf
,但可以通过以下方式安装:
sudo apt install resolvconf
但是如果你使用的是较旧的 Ubuntu 版本或某些分支版本,你可能会使用解析配置(管理 内容的包/etc/resolv.conf
)。
为了设置重启后不会被删除的 dns-nameservers,请将它们添加到
sudo nano /etc/resolvconf/resolv.conf.d/base
喜欢
nameserver x.x.x.x
nameserver x.x.y.y
然后就做
sudo resolvconf -u
答案3
我使用 Ubuntu 20.04,不幸的是其他答案都不适合我。
因此,我将在下面分享我解决问题的方法:
首次安装解析配置,如果尚未安装
sudo apt update
sudo apt install resolvconf
检查 resolvconf 服务是否已启动并启用
sudo systemctl status resolvconf.service
如果服务未启用,可以使用以下命令启动并启用:
sudo systemctl start resolvconf.service
sudo systemctl enable resolvconf.service
现在编辑 resolv.conf.d/head 配置文件
sudo nano /etc/resolvconf/resolv.conf.d/head
并将您的 DNS 地址添加到其中(例如,我使用 Google Public DNS,8.8.8.8 和 8.8.4.4)
nameserver 8.8.8.8
nameserver 8.8.4.4
现在强制 resolvconf 使用 -u 调用时运行更新脚本
sudo resolvconf --enable-updates
现在运行更新
sudo resolvconf -u
resolv.conf
现在如果你使用以下命令检查文件的内容
cat /etc/resolv.conf
您必须查看 DNS 配置。如果没有,请尝试以下命令并再次检查
sudo systemctl restart resolvconf.service
sudo systemctl restart systemd-resolved.service
参考
答案4
网络管理器 TUI:nmtui
旁这种替代方案nmcli connection edit
你可能更喜欢ncurses接近nmtui
,GNOME 的命令行界面替代nm-connection-editor
。
笔记:这个答案与 Ubuntu 桌面更相关,但由于合适的问题被标记为该问题的重复(在我看来,这是错误的)我将其发布在这里。