我正在使用Ubuntu。当我尝试从命令 shell 登录 Heroku 时,出现以下错误:
/usr/local/lib/ruby/1.9.1/net/http.rb:644:in `initialize': getaddrinfo: Name or service not known (SocketError)
from /usr/local/lib/ruby/1.9.1/net/http.rb:644:in `open'
from /usr/local/lib/ruby/1.9.1/net/http.rb:644:in `block in connect'
from /usr/local/lib/ruby/1.9.1/timeout.rb:44:in `timeout'
from /usr/local/lib/ruby/1.9.1/timeout.rb:89:in `timeout'
from /usr/local/lib/ruby/1.9.1/net/http.rb:644:in `connect'
from /usr/local/lib/ruby/1.9.1/net/http.rb:637:in `do_start'
from /usr/local/lib/ruby/1.9.1/net/http.rb:626:in `start'
from /usr/local/lib/ruby/gems/1.9.1/gems/rest-client-1.6.7/lib/restclient/request.rb:172:in `transmit'
最佳答案
“名称或服务未知”通常意味着您尝试连接的主机未解析为 IP 地址(即 DNS 查找失败)。
您可以尝试一些故障排除步骤:
- 确保您已连接到互联网。尝试使用
ping -c10 8.8.8.8
(因为您正在 ping IP 地址而不是主机名,所以无需 DNS 即可正常工作)。您会在输出的末尾获得一些统计信息,如果它显示类似0% packet loss
的内容,那么您就有了互联网连接。 - 查看 DNS 是否正常工作。尝试使用
dig heroku.com
。您应该得到一些输出,其中包括列出多个 IP 地址的ANSWER SECTION
。如果出现超时,则问题出在您的 DNS 服务器上。 - 使用
dig @8.8.8.8 heroku.com
尝试另一个 DNS 服务器。如果有效,您应该将您的 DNS 服务器(至少暂时)更改为 Google 的8.8.8.8
和8.8.4.4
。
另请参阅:
关于登录错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12902715/