Ubuntu发生Temporary failure in name resolution的解决方法

  1. 首先列出如下有用的参考文档:
    解决 Ubuntu 系统中 “Temporary Failure in Name Resolution“ 错误-CSDN博客
    How to fix the “Temporary failure in name resolution” Error – Its Linux FOSS
    How to fix the “Temporary failure in name resolution” Error – Its Linux FOSS
     
  2. 以下是我的解决方案:
    1. 首先确认网络是否正常连接:终端执行命令:ping 8.8.8.8 ,
      如果报错ping: connect: Network is unreachable那就是失败,要打开网络
      打开网络执行指令:nmcli networking on
      可以执行指令:nmcli networking ,终端打印enabled证明成功打开网络 
      上述指令执行情况如下图:
    2. 接下来要修改两个文件:
      1. 文件路径为:/etc/systemd/resolved.conf 和 /etc/resolv.conf
      2. 需要往/etc/resolv.conf文件添加三行代码,有两种方法,用编辑器vim、vscode等打开修改,或者在终端使用命令行指令直接添加,我使用的方法是终端指令直接添加。
        在终端执行如下代码往
        /etc/resolv.conf添加如下内容
        sudo bash -c 'echo "nameserver 8.8.8.8" > /etc/resolv.conf' 
        sudo bash -c 'echo "nameserver 8.8.4.4" >> /etc/resolv.conf'
        sudo bash -c 'echo "nameserver 127.0.0.1" >> /etc/resolv.conf'
        同样要修改/etc/systemd/resolved.conf的内容,改resolved.conf的内容为:
        [Resolve]
        DNS=8.8.8.8 8.8.4.4 127.0.0.1

        要注意127.0.0.1这个名是我打开/etc/hosts文件,里面有这样一行代码:127.0.0.1    localhost ,才确定的,不同人的可能不太一样。
        三个文件最后内容如下图:
      3. 可能需要对网络连接进行设置(这一步可能不是必须的),执行如下代码:
        nmcli con mod <connection_name> ipv4.dns "8.8.8.8 8.8.4.4"
        nmcli con mod <connection_name> ipv4.ignore-auto-dns yes
        nmcli con up <connection_name>

        注意执行之前要把connection_name替换成自己虚拟机对应的,可以执行指令:nmcli con show
        执行nmcli con show可能会出现下面的内容:

        那么这一串常常的8b91dddd~~~就是我们要的connection-name,执行效果如下:
      4. 然后是重启服务,执行如下语句:
         sudo systemctl restart systemd-resolved
         sudo ln -sf /run/systemd/resolve/resolv.conf /etc/resolv.conf
         sudo systemctl restart NetworkManager
      5. 然后就可以试一下ping能不能成功了。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值