找一条命令/
EN
☰

← 返回工作台全部命令

03 / FIELD NOTES

锁住 resolv.conf

写入 DNS,再用 chattr 锁住 resolv.conf,避免被 DHCP 盖掉。

为什么这样选

锁 resolv.conf 是云镜像反复盖 DNS 时的下策,不是默认建议。不可变文件会坑到下一个改机器的人。先写进去;真被盖掉了再锁。

什么时候用

DHCP 或 cloud-init 总是把你刚写的 DNS 盖掉。

什么时候别用

若你依赖 DHCP 管 DNS,或用着 systemd-resolved,就别锁。

前置条件

  • root shell
  • 系统里有 chattr

步骤

先看 resolv.conf 归谁管

只读
readlink -f /etc/resolv.conf
systemctl is-active systemd-resolved

跑完应看到: 输出 /run/systemd/resolve 下的路径或 active,说明由 systemd-resolved 管理。到此为止,改 /etc/systemd/resolved.conf 里的 DNS,不要锁文件。

写入 Cloudflare DNS

会改配置
printf '%s\n' 'nameserver 1.1.1.1' 'nameserver 1.0.0.1' | tee /etc/resolv.conf

跑完应看到: tee 打出两行 nameserver。

设成不可变

会改配置
chattr +i /etc/resolv.conf

跑完应看到: 之后要改,得先 chattr -i /etc/resolv.conf。

会改什么

把 /etc/resolv.conf 设成不可变。之后要改,先执行 chattr -i /etc/resolv.conf。在重装后的 root 会话里执行。