当我执行
wget
时,我在 Ubuntu 12.04 64 位机器上遇到了这个奇怪的事情
$ wget google.com
--2014-07-18 14:44:32-- http://google.com/
Resolving http (http)... failed: Name or service not known.
wget: unable to resolve host address `http'
我之前在任何网页(而不是http)上获取它时都遇到过这个问题,这需要我将我的名称服务器添加到
/etc/resolv.conf
。
然而,这似乎不是问题,而是将
http
视为不同的东西。有什么建议吗?
DNS 服务器似乎出现故障。您可以使用其他 DNS 服务器,例如 8.8.8.8。将
nameserver 8.8.8.8
放在 /etc/resolv.conf
的第一行。
从
http
中删除 https
或 wget https:github.com/facebook/facebook-php-sdk/archive/master.zip
。这对我来说效果很好。
我也有这个问题。我怀疑 DigitalOcean 的域名服务器存在问题,因此这也可能会影响很多其他人。 这是我暂时解决这个问题的方法 - 但其他人可能可以提供更好的长期解决方案的建议:
确保您的 DNS 解析器配置文件可写:
sudo chmod o+r /etc/resolv.conf
暂时更改您的 DNS 以使用 Google 的域名服务器而不是 DigitalOcean 的:
sudo nano /etc/resolv.conf
将文件中的IP地址更改为:
8.8.8.8
按
CTRL
+
X
保存文件。
这只是一个临时修复,因为该文件是由服务器自动写入/更新的,但是,我还没有弄清楚写入什么内容,以便我可以永久更新它。
我知道出了什么问题了。在我的盒子的代理配置中,额外的
http://
前缀为“带有 http 的代理服务器”。
示例..
http://http://proxy.mycollege.com
这就产生了问题。已更正,效果完美。
感谢@WhiteCoffee 和@ChrisBint 的建议!
如果使用Vagrant,请尝试重新加载你的盒子。这解决了我的问题。
这可能是由于 resolv.conf 被覆盖而发生的,这个答案对我有帮助,每次设置新的 WSL 时都使用下面的内容。
sudo chattr +i /etc/resolv.conf
- 将使文件不可变,并且下次启动 wsl 时不会被覆盖。
sudo bash -c 'echo -e "[network]
generateResolvConf = false" > /etc/wsl.conf
rm /etc/resolv.conf
echo -e "options timeout:1 attempts:1 rotate
nameserver 1.1.1.1
nameserver 1.0.0.1" > /etc/resolv.conf
chattr -f +i /etc/resolv.conf'
我遇到了同样的问题,我刚刚从链接中删除了 http:// 并且它起作用了: