快捷搜索:

Ubuntu-20.04修改静态IP 修改DNS教程

最近用了最新版的ubuntu 20.04运行一些服务,然后发现服务器经常出现网络不通的情况,主要是一些域名无法解析。
检查/etc/resolv.conf,发现之前修改的nameserver总是会被修改为127.0.0.53,无论怎么改都 会被替换回来。
查看/etc/resolv.conf这个文件的注释,发现开头就写着这么一行:
# This file is managed by man:systemd-resolved(8). Do not edit.
这说明这个文件是被systemd-resolved这个服务托管的。
通过netstat -tnpl| grep resol查看到这个服务是监听在53号端口上。
查了下,这个服务的配置文件为/etc/systemd/resolved.conf,大致内容如下:

[Resolve]
DNS=8.8.8.8 114.114.114.114
#FallbackDNS=
#Domains=
LLMNR=no
#MulticastDNS=no
#DNSSEC=no
#Cache=yes
#DNSStubListener=yes

如果我们要想让/etc/resolve.conf文件里的配置生效,需要添加到systemd-resolved的这个配置文件里DNS配置项
(如上面的示例DNS=8.8.8.8 114.114.114.114已经完成修改),然后重启systemd-resolved服务即可。
systemctl restart systemd-resolved
cat /etc/resolve.conf   查看新修改的DNS已经生效了,但如果重启或netplan apply 这个更改就不存在了。

2.另一种更简单的办法是,我们直接停掉systemd-resolved服务,这样再修改/etc/resolve.conf就可以一直生效了。

3.直接配置静态IP 更改 /etc/netplan/XXXX-network-manager-all.yaml
network:
  version: 2
#  renderer: NetworkManager
  ethernets:
     ens33:
      addresses: [192.168.50.77/24]
      gateway4: 192.168.50.1
      nameservers:
         addresses: [8.8.8.8,114.114.114.114]
然后让配置生效netplan apply

然后以root身份在ubuntu终端中依次执行如下命令:

systemctl restart systemd-resolved
systemctl enable systemd-resolved

mv /etc/resolv.conf /etc/resolv.conf.bak
ln -s /run/systemd/resolve/resolv.conf /etc/
再查看/etc/resolv.conf文件就可以看到新的dns信息已经写入其中了。

nslookup www.baidu.com  查看用的哪个DNS解析的
systemctl status systemd-resolved   服务状态
systemctl status NetworkManager    UI界面的网卡管理服务
desktop它缺省是使用NetworkManger来进行管理,可使用图形界面进行配置,其网络配置文件是保存在:/etc/NetworkManager/system-connections目录下的,跟Server版区别还是比较大的。


查看dns ip设置(自动获取时可以查看到DNS)  nmcli dev show

######################----未测试
Ubuntu-20.04永久修改DNS服务器  https://blog.csdn.net/weixin_45467056/article/details/119684561?utm_term=ubuntu20%E8%AE%BE%E7%BD%AEdns&utm_medium=distribute.pc_aggpage_search_result.none-task-blog-2~all~sobaiduweb~default-6-119684561&spm=3001.4430

可以使用 resolvconf 工具来永久更改DNS服务器。

首先运行下面两条指令,安装 resolvconf :

然后,编辑 /etc/resolvconf/resolv.conf.d/head 文件,并添加所需的DNS服务器(译者:即可以将下面的两句话复制进该文件):

最后,运行下面这条指令来更新 /etc/resolv.conf 文件使DNS配置生效:

译者:8.8.8.8 和 8.8.4.4 是 google 免费提供的DNS服务器,考虑到响应速度,也可以使用国内运营商(移动、电信和联通)提供的DNS服务器: 114.114.114.114
######################

其它YAML格式的语法
基本格式

    用空格缩进, 不能用tab
    用#标记注释
    列表: 用短划(-)标记元素
    映射: 用冒号(:)分隔key, value. 如果写在一行, 需要用逗号分隔并前后加花括号
    字符串: 不加引号, 加单引号或者加双引号都可以, 加双引号时可以使用\开头的转义字符
    多行字符串可以用 | 或 > 符号, 紧接着换行符
    重复的节点, 可以用 & 标识, 并用 * 来引用
这里还需要注意以下几点:
1)以上操作均在root用户下进行,如在普通用户,请自行加上sudo
2)将/etc/netplan/01-network-manager-all.yaml文件中的renderer: NetworkManager注释,否则netplan命令无法生效
3)IP配置信息要按如上格式,使用yaml语法格式,每个配置项使用空格缩进表示层级
4)对应配置项后跟着冒号,之后要接个空格,否则netplan命令也会报错


参考:https://blog.csdn.net/qq_42982742/article/details/103393746



您可能还会对下面的文章感兴趣: