Linux 配置 DNS server 和 network 这块一直是一知半解,不同的系统配置也不同,每次遇到问题都要花一段时间Google。
这次因为一直用的一台DNS server 关闭,正好又碰上linux server本身有问题,只能通过修改 /etc/resolv.conf 的DNS才生效。
但是修改 /etc/resolv.conf 重启后配置会被清掉,于是又花了一上午尝试各种修改方式。痛定思痛决定趁热打铁把这些修改方式记录下来以备下次所需。
Ununtu下修改DNS 的 5 种方法:
1. 如果只是临时想用某个dns 来做解析 可以修改 /etc/resolv.conf 中的nameserver .
sudo vim /etc/resolv.conf
找到 nameserver 并修改它的值为 你需要的DNS server,保存退出。
但是这个修改在系统重启后就会失效。
2. 修改 /etc/network/interfaces 中的 dns-nameservers.
sudo vim /etc/network/interfaces
找到 dns-nameservers 并修改成你需要的 DNS server,或者直接在下面 再加一行。比如下面这样:
dns-nameservers 8.8.8.8
dns-nameservers 8.8.4.43. 通过添加 /etc/resolvconf/resolv.conf.d/base 文件并追加 DNS server,这个文件 系统中并没有自带,需要通过vim 添加
sudo vim /etc/resolvconf/resolv.conf.d/base
添加需要的dns server, 可以添加多个DNS
1 nameserver 8.8.8.8
2 nameserver 8.8.44保存后执行 resolvconf -u.
4. 修改 netplan 里的yaml 网络管理文件 , 这个文件名不同的系统可能会不一样,我的yaml文件是这样的 /etc/netplan/01-network-manager-all.yaml, 这个文件名可以通过 ls 查看。
netplan 是 Ubuntu 18.04 以上默认的网络管理工具,在这里可以配置你的IP、gateway、DNS等等。
sudo vim /etc/netplan/01-network-manager-all.yaml
文件内容像下面这样:
2 network:
3 version: 2
4 renderer: NetworkManager
5 ethernets:
6 ens160:
7 dhcp4: no
8 addresses:
9 - 10.75.185.86/24
10 gateway4: 10.75.185.1
11 nameservers:
12 addresses: [8.8.4.4, 8.8.8.8]
这里要注意 yaml 的代码缩进标准, 不同级别需要有空格来缩进, 比如 ens160 是系统网卡,是在ethernets 的下一层需要缩进, addresses 和 gateway 是同一级别不需要缩进。
5. 如果系统是 桌面版的最简单了, 直接在UI上配置就可以了。
进入桌面。
点击网络图标,进入有线或无线网络设置。
点击所用网卡的设置图标。
选择 IPv4 tab, 在DNS里加上DNS server IP,如果有多个可以使用逗号隔开。
Apply 更改。
Centos 修改DNS server:
Centos 直接修改 /etc/resolv.conf 也是有同样的问题,重启后配置就被覆盖掉了,只能临时使用,要永久修改需要改网卡的配置文件。具体操作如下:
1. 进入 /etc/sysconfig/network-scripts 目录,通过ls 找到网卡的配置文件,类似于 ifcfg-ens33,后面ens33是我的网卡名字
2. sudo vim ifcfg-ens33
3. 在文件中加上:
DNS1="8.8.8.8" DNS2="8.8.4.4"
4. 重启网卡:sudo service network restart, 网卡重启后会发现 /etc/resolv.conf 下 已经有了刚刚加的DNS ,而且重启后也不会消失