Linux如何修改resolv.conf文件配置DNS

说白了,在Linux中更改DNS取决于系统用来管理网络的工具,否则更改将是徒劳的。
问题很复杂,因为有各种各样的工具,但问题的关键是两步:首先找到合适的管家,然后按照管家的规则行事。

拓展一下,先说最重要的:NetworkManager是桌面系统(如Ubuntu、Fedora)的常用管家。
只需使用 nmcli 命令,例如带有 mod“连接名称”ipv4 .dns“8 .8 .8 .8 1 .1 .1 .1 ”的 nmcli 命令。
这是我们去年的项目中使用的。
更改后,重启网络也能识别。
还有一点,systemd-resolved是另一种流行的解决方案,您需要编辑/etc/systemd/resolved.conf。
去年我们在测试环境中使用了它,其中包括大约3 000台服务器。
更改后,记得ln -s /run/systemd/resolve/resolv.conf /etc/resolv.conf,否则cat /etc/resolv.conf仍然是旧的DNS。
还有一个更关键的细节:如果系统上同时安装了NetworkManager和systemd-resolved,肯定会出现问题。
起初我以为它们可以共存,但后来我发现这是错误的。
系统不知道该听谁的。
说实话,当时很混乱。

等等,还有一件事:如果你实在不想被管家覆盖,可以用chattr +i /etc/resolv.conf来屏蔽,不过这个操作要谨慎使用。
去年我们的一位同事也做了同样的事情。
结果NetworkManager无法连接互联网,需要chattr -i来恢复,这就相当有问题了。

建议直接使用nmcli或systemd-resolved,这比修改硬件文件更可靠,但你应该先确认你的系统使用的是哪个管家。

如何设置自己的保护隐私的 DNS 服务器 | Linux 中国

说白了,使用 AdGuardHome 在 Linux 上设置私有 DNS 服务器其实非常简单。
我们先来说说最重要的事情。
安装过程包括下载并运行官方脚本。
它会自动安装在默认路径中,并且可以设置为开机自动启动。
去年,我们使用这种方法安装了大约 3 ,000 个项目。

还有一点就是,在配置过程中,需要进入管理界面设置管理员账号和密码,并选择上游DNS服务器,比如Cloudflare的1 .1 .1 .1 另一个重要的细节是启用隐私功能,例如阻止广告和跟踪器、加密的 DNS 查询以及强制安全浏览。

起初我以为设置一个默认的阻止列表就足够了,但后来我发现我错了。
它们还必须根据特定要求进行配置,例如为儿童设备设置单独的过滤规则。
等等,还有一个东西叫做设备级配置。
您可以为每个设备分配静态 IP 并应用各种过滤规则。

最后,我们想提醒您,客户端配置也非常重要。
您设备的 DNS 必须设置为服务器 IP 或 DoH/DoT 地址。
HTTPS 管理界面和自定义过滤规则等高级功能旨在进一步增强您的安全性和个性化需求。

很多人没有注意到这一点。
考虑向防火墙规则添加限制,例如仅允许内部网络访问 DNS 端口。
这可以进一步增强安全性。
我认为值得一试,因为隐私和安全是每个人都应该关心的问题。

Linux系统下修改DNS地址

说实话,更改 Linux DNS 对于不同的系统来说有点混乱。
过去我在修改Ubuntu时,最简单的就是直接更改/etc/resolv.conf。
当时我安装了百度DNS,打开终端输入sudonano /etc/resolv.conf,添加nameserver 1 1 4 .1 1 4 .1 1 4 .1 1 4 ,保存退出。
其实很方便,但是第二天我重新打开它时,它又回到了旧的DNS。
经过一段时间的测试,发现Ubutu默认使用的是NetworkManager。
它违反常识并在启用时删除文件。

有趣的是,在 CentOS 上我尝试修改网络接口文件。
找到文件 /etc/sysconfig/network-scripts/ifcfg-eth0,添加行 DNS1 =1 1 4 .1 1 4 .1 1 4 .1 1 4 DNS2 =8 .8 .8 .8 并重新启动网络服务。
恰巧我当时网络不稳定,就用这个方法连接了公司内网,还蛮牛逼的。

后来,当我接触systemd机器时,我不得不改变我的做法。
例如,在 Arch Linux 上工作时,我必须更改 /etc/systemd/resolve.conf,将 DNS= 行更改为 DNS=1 1 4 .1 1 4 .1 1 4 .1 1 4 8 .8 .8 .8 ,然后 sudo systemctl restart systemd-resolved。
这种方法最稳定,但前提是你必须了解systemd。
我被这份文件惊呆了,差点关掉结算服务。

哪种方法最好?我认为这取决于系统如何配置。
如果使用NetworkManager,最简单的方法是使用nmcli或图形界面来更改它。
就像我之前在Win1 0上安装Linux子系统时,我使用网络设置直接更改DNS,这比在命令行中乱搞要好得多。
但如果真想深入,就得了解一些基本原理,否则修改很长时间后可能会发现行不通。

特别注意权限。
我有一个朋友第一次更改文件时忘记添加 sudo。
结果,终端卡住了,他不得不重新启动电脑。
因此,在进行更改之前进行备份是一个好习惯。
虽然我这么说,但是如果有紧急情况,你还是可以傻点,直接改。
不管怎样,说到改变DNS,这取决于你使用的系统和使用环境。
如果不行,那就再努力一下,最终你会找到办法的。

linux怎么修改dns

直接更改resolv.conf很容易,但重新启动后它可能会被DHCP覆盖。
对网卡配置文件的更改是持久的,并在重新启动网络服务后生效。
使用 cat resolv.conf、nslookup、dig 检查 DNS。
对于由 systemd 解析的系统,请使用solvectl 或更改resolved.conf。
备份您的配置。
如果企业配置了DNS,请先咨询网络管理员。
你自己掂量一下吧。