服务器可以访问外网ip无法访问外网域名解决办法

/

问题描述:项目服务器部署好之后,使用ping命令可以访问外网ip,但是无法访问外网域名;
解决方法:
1、修复上游DNS配置:编辑/etc/systemd/resolved.conf文件。

  1. sudo nano /etc/systemd/resolved.conf
  2. 添加或者修改如下
  3. [Resolve]
  4. DNS=8.8.8.8 114.114.114.114
  5. sudo systemctl restart systemd-resolved

2、/etc/resolv.conf文件项目上可能是一个指向/run/systemd/resolve/stub-resolv.conf的软链接。如果以上方法无效,可以重建软链接,让其指向可编辑的文件。

  1. # 备份当前文件
  2. sudo mv /etc/resolv.conf /etc/resolv.conf.bak
  3. # 创建指向可编辑配置文件的新链接
  4. sudo ln -s /run/systemd/resolve/resolv.conf /etc/resolv.conf
  5. # 重启解析服务
  6. sudo systemctl restart systemd-resolved

3、 检查Netplan配置如果你的服务器使用Netplan管理网络配置(配置文件在/etc/netplan/目录下),检查其YAML文件中的nameservers设置是否正确。
编辑Netplan配置文件:sudo nano /etc/netplan/01-netcfg.yaml(文件名根据项目实际调整文件名)。确保nameservers部分配置正确,例如:

  1. yaml
  2. network:
  3. ethernets:
  4. eth0:
  5. dhcp4: no
  6. addresses: [192.168.1.100/24]
  7. gateway4: 192.168.1.1
  8. nameservers:
  9. addresses: [8.8.8.8, 114.114.114.114]
  10. version: 2
  11. 如缺少8.8.8.8114.114.114.114,可以增加配置并使用sudo netplan apply命令重启

4、清除DNS缓存,DNS缓存可能会返回过时的解析结果。如果域名解析已更新,可以尝试刷新缓存。

  1. bash
  2. sudo systemd-resolve --flush-caches # 旧版命令
  3. # 或
  4. sudo resolvectl flush-caches # 新版命令
  5. 重启NetworkManager
  6. bash
  7. sudo systemctl restart NetworkManager

5、以上执行完成后再次尝试是否可以访问域名;
ZGL(20260629)

转载请注明作者和出处,并添加本页链接。
原文链接: //svn.seekcy.com/909