technology-note/linux/软件安装/NetworkManager自定义dns.md
2022-01-20 16:33:50 +08:00

45 lines
1.3 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

---
id: "20211019"
date: "2021-10-19 15:42:00"
title: "NetworkManager如何自定义dns,永久生效"
tags: ["linux", "NetworkManger"]
categories:
- "linux"
- "program"
---
## 前言
目前比较新的linux发行版都默认使用NetworkManger来管理网络了然后如何自定义dns就成了一个比较麻烦的事每次NetworkManager启动都会覆盖`/etc/resolv.conf`文件特别是使用dhcp获取ip时dns地址会变成dhcp服务器默认的dns.那么有哪些解决办法呢?
## 修改/etc/resolv.conf
既然这个文件会被NetworkManager修改那么让它改不了就行了。将resolv.conf设置为不可修改。命令如下
```bash
sudo chattr +i /etc/resolv.conf
```
这样我们自定义dns后就不会被NetworkManager重新覆盖了。
<!-- more -->
## 更幽雅的配置
上面虽然能达到目的但是不太幽雅。其实NetworkManager是支持自定义dns的办法如下:
1. 修改/etc/NetworkManager/conf.d/dns.conf(如没有此文件,新建即可),增加如下两行配置:
```conf
[main]
dns=null
```
2. 修改/etc/NetworkManager/conf.d/dns-servers.conf(如没有此文件,新建即可),增加如下两行配置,设置自定义dns
```conf
[global-dns-domain-*]
servers=::1,127.0.0.1,8.8.8.8
```
3. 重启软件`sudo systemctl restart NetworkManager`
大功告成~