Haskell Stack 连接超时。

4

我使用WSL2在Windows 10上安装了WSL Ubuntu上的stack。安装成功后,但在测试stack时遇到了问题。

stack path --local-bin

我收到以下错误信息:
Writing implicit global project config file to: 
/home/jdgallag/.stack  /global-project/stack.yaml 
Note: You can change snapshot via the resolver field there.      
HttpExceptionRequest Request {                                                                                            
host                 = "s3.amazonaws.com"                                                                               
port                 = 443                                                                                              
secure               = True                                                                                             
requestHeaders       = [("Accept","application/json"),("User-Agent","The Haskell Stack")]
path                 = "/haddock.stackage.org/snapshots.json"                                                           
queryString          = ""                                                                                               
method               = "GET"                                                                                            
proxy                = Nothing                                                                                          
rawBody              = False                                                                                            
redirectCount        = 10                                                                                               
responseTimeout      = ResponseTimeoutDefault       
requestVersion       = HTTP/1.1                                                                                       
}                                                                                                                        
ConnectionTimeout   

我看到了一些关于此类问题的帖子,但没有一个得到解决,并且它们都比较旧。此外,我没有使用代理,这是我的个人电脑,并且我完全关闭了防火墙。尽管如此,在VPN连接上尝试时,我得到了不同的错误。可能是SSL/HTTPS问题,因为WSL2在技术上是与Windows不同的IP地址,所以连接在亚马逊端被阻止了吗?

记录一下,在VPN尝试命令时,我收到的错误是:

Writing implicit global project config file to: 
/home/jdgallag/.stack/global-project/stack.yaml                         
Note: You can change the snapshot via the resolver field there.                                                         
HttpExceptionRequest Request {                                                                                            
host                 = "s3.amazonaws.com"                                                                               
port                 = 443                                                                                              
secure               = True                  
requestHeaders       = [("Accept","application/json"),("User-Agent","The Haskell Stack")]                               
path                 = "/haddock.stackage.org/snapshots.json"                                                           
queryString          = ""                                                                                               
method               = "GET"                                                                                            
proxy                = Nothing                                                                                          
rawBody              = False                                                                                            
redirectCount        = 10                                                                                               
responseTimeout      = ResponseTimeoutDefault                                                                           
requestVersion       = HTTP/1.1                                                                                       
}                                                                                                                        
(InternalException (HandshakeFailed Error_EOF)) 

更新

回归到WSL-1可以“解决”这个问题,因此该问题是WSL-2特有的。我在另一台设备上进行了全新安装并复制了这个问题,但还没有找到解决方法。


这也发生在我的电脑上(WSL2 实例)。我想提一下,我可以成功地使用 wget 命令获取那些 stack 无法访问的资源。 - parml
https://github.com/commercialhaskell/stack/issues/5063 - Hi computer
2个回答

4

我在我的电脑上安装了wls2 ubuntu 20.02。
通过更改/etc/resolv.conf的内容,解决了这个问题。

cd /etc
sudo *your favorite editor* resolv.conf

添加了Google DNS服务器

nameserver 8.8.8.8
nameserver 8.8.4.4

这个固定堆栈对我来说不起作用。

更多细节请参见此处 - Yuri Carvalho
这对我来说有效,而无需更改DNS。 - Jason Hu

0

我使用的是一台MacBook,型号是Ventura 13.4.1 - 15英寸,2018年款。

我已经尝试过:

对我无效:将Google DNS命名服务器添加到/etc/resolv.conf中
# sudo vim /etc/resolv.conf
nameserver 8.8.8.8
nameserver 8.8.4.4

不适用于我:向/etc/hosts添加条目。
185.199.110.133 raw.githubusercontent.com
151.101.245.175 downloads.haskell.org
对我来说起作用(可能是因为所有三个步骤),在终端中添加代理
export https_proxy=http://127.0.0.1:7890 http_proxy=http://127.0.0.1:7890 all_proxy=socks5://127.0.0.1:7890

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接