我正在尝试开始使用Yocto项目快速构建,并且第一个bitbake
命令在尝试通过获取https://www.example.com
来检查网络可用性时失败了。错误消息是:
Fetcher failure for URL: 'https://www.example.com/'. URL https://www.example.com/ doesn't work.
我知道我的网络设置正确(除此之外,我可以正常使用网络),并且我的网络上没有代理(另一个引起类似问题的常见原因)。
我在这个问题上做了很多搜索,发现了一些建议,尝试直接使用wget
和python来检查可用性。像这样:
我尝试与wget连接并获得了这些结果。
使用http
:
$ wget http://www.example.com
Resolving www.exampe.com (www.exampe.com)... 72.52.179.174
Connecting to www.exampe.com (www.exampe.com)|72.52.179.174|:80... connected.
HTTP request sent, awaiting response... 302 Found
Location: http://ww4.exampe.com [following]
--2018-12-20 22:43:03-- http://ww4.exampe.com/
Resolving ww4.exampe.com (ww4.exampe.com)... 192.64.147.152
Connecting to ww4.exampe.com (ww4.exampe.com)|192.64.147.152|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 842 [text/html]
Saving to: ‘index.html’
使用https
:
$ wget https://www.example.com
Resolving www.example.com (www.example.com)... 198.105.254.23, 198.105.244.23
Connecting to www.example.com (www.example.com)|198.105.254.23|:443... failed: Connection refused.
Connecting to www.example.com (www.example.com)|198.105.244.23|:443... failed: Connection refused.
然后我从命令行像python一样尝试了相同的检查 所以:
$ python -c 'import urllib; print urllib.urlopen("http://www.example.com").read()'
$ python -c 'import urllib; print urllib.urlopen("https://www.example.com").read()'
这些都因以下错误而失败:
<stacktrace omitted>
IOError: [Errno socket error] [Errno 111] Connection refused
最后,使用telnet
在套接字连接级别进行检查
揭示了尝试连接到www.example.com上的套接字443的情况
完全失败了。
$ telnet www.example.com 443
Trying 198.105.254.23...
Trying 198.105.244.23...
telnet: Unable to connect to remote host: Connection refused
答案 0 :(得分:0)
如果您查看问题中调试命令的输出
您会看到域www.example.com
至少解析为
3个不同的IP地址,也许最重要的是,不同的IP
地址的解析取决于传递给wget的协议。
很多Google搜索似乎都指向一个事实,那就是我的python CA证书设置不正确(许多问题 2.7发布后不久就发布了发行版,但我认为不是 不再)。
最后,我最终将默认名称服务器从默认名称更改为
我的路由器已配置(可能特定于我的ISP,
CenturyLink),并在以下位置使用CloudFlare的公共DNS服务器
1.1.1.1和1.0.0.1,我开始将www.example.com
解析为
93.184.216.34,问题消失了。
关于发生的事情,我最好的猜测是我的ISP(或骨干网)
他们连接的ISP)有自己的个人服务器
www.example.com
并且该服务器未设置HTTPS。