我正在使用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'
答案 0 :(得分:2)
“名称或服务未知”通常表示您尝试连接的主机未解析为IP地址(即DNS查找失败)。
您可以尝试一些问题排查步骤:
ping -c10 8.8.8.8
(因为您正在ping一个IP地址而不是一个主机名,它应该在没有DNS的情况下工作)。您可以在输出结尾处获得一些统计信息,如果它显示0% packet loss
的某些内容,那么您就可以建立互联网连接。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
。另见: