wget下载出现failed: Temporary failure in name resolution错误的解决方法

用vi打开/etc/resolv.conf,发现里面是空的。于是联系服务商,幸好有在线客服,立刻要我发SSH的用户名与密码,片刻之后回答我说搞定了。在此用vi打开/etc/resolv.conf发现里面多了两行:

nameserver   8.8.8.8

将上面的dns记了下来,下次重装系统后自己添加就行了。
对了,添加了dns后腰运行service network restart,就是将网络重启后才能生效。

http://www.wuleilei.com/blog/221

### 可能的原因与解决方法 在使用 `wget` 时遇到“无法解析主机地址”或“Temporary failure in name resolution”的问题,通常与 DNS 配置错误网络连接问题有关。以下是可能导致此问题的原因及相应的解决方案[^1]。 #### 1. DNS配置错误 DNS服务器的配置可能不正确或不可用,导致无法解析目标主机名。可以通过检查 `/etc/resolv.conf` 文件来确认DNS服务器是否正确设置。通常情况下,文件中应包含类似以下的内容: ```plaintext nameserver 8.8.8.8 nameserver 8.8.4.4 ``` 如果该文件为空或配置了无效的DNS服务器地址,则需要手动添加可靠的DNS服务器地址,例如Google提供的公共DNS(8.8.8.8 和 8.8.4.4)[^2]。 #### 2. 网络连接问题 如果设备未正确连接到互联网,也可能导致DNS解析失败。可以尝试通过 `ping` 命令测试网络连通性,例如: ```bash ping -c 3 www.google.com ``` 如果无法成功Ping通外部站点,则可能是网络接口配置错误或网关不可达。此时,可以检查网络接口状态和路由表: ```bash ip addr show ip route show ``` #### 3. 主机名解析缓存问题 有时,本地系统的DNS缓存可能导致解析失败。可以尝试清除DNS缓存以解决问题。在Linux系统中,可以重启相关的服务,例如: ```bash sudo systemctl restart NetworkManager ``` 或者,如果使用的是 `systemd-resolved`,则可以执行以下命令: ```bash sudo systemd-resolve --flush-caches ``` #### 4. 防火墙或安全软件干扰 某些防火墙规则或安全软件可能会阻止DNS查询请求。可以临时禁用防火墙以测试是否为相关原因: ```bash sudo ufw disable ``` 或者检查iptables规则: ```bash sudo iptables -L ``` #### 示例代码:检查和修复DNS配置 以下是一个简单的脚本,用于检查并修复DNS配置问题: ```bash #!/bin/bash # 检查当前DNS配置 echo "当前DNS配置:" cat /etc/resolv.conf # 如果没有有效的DNS服务器,添加默认的Google DNS if ! grep -q "8.8.8.8" /etc/resolv.conf; then echo "nameserver 8.8.8.8" | sudo tee -a /etc/resolv.conf echo "已添加Google DNS服务器" fi # 测试网络连通性 echo "测试网络连通性..." ping -c 3 google.com ``` ### 注意事项 - 如果问题仍然存在,可以尝试更换网络环境或联系网络管理员以获取进一步支持。 - 在某些情况下,可能是ISP提供的DNS服务器出现问题,建议切换到其他公共DNS服务器进行测试。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值