Snap代理失效:Ubuntu 18.04安装Conjure-Up遇代理连接错误求助
解决Ubuntu 18.04上Snap安装Conjure-Up的代理EOF错误
我之前也碰到过类似的Snap代理问题——虽然系统层面的环境变量配置好了,但Snap服务往往不会自动读取这些设置,或者需要单独做代理配置。下面是几个亲测有效的解决办法:
方案1:临时为安装命令指定代理
直接在执行安装命令时附带代理参数,绕开系统环境变量的读取问题:
sudo http_proxy=http://你的代理地址:端口 https_proxy=http://你的代理地址:端口 snap install conjure-up --classic
如果代理需要身份认证,格式为 http://用户名:密码@代理地址:端口
方案2:为Snap服务永久配置代理
Snap由systemd管理,需要修改其服务配置来注入代理环境变量:
- 编辑Snap的systemd服务配置文件:
sudo systemctl edit snapd.service
- 在打开的编辑器中添加以下内容(替换为你的代理信息):
[Service] Environment="http_proxy=http://你的代理地址:端口" Environment="https_proxy=http://你的代理地址:端口" Environment="no_proxy=localhost,127.0.0.1"
- 保存退出后,重新加载systemd配置并重启Snap服务:
sudo systemctl daemon-reload sudo systemctl restart snapd.service
- 再次尝试安装命令:
sudo snap install conjure-up --classic
方案3:排查代理SSL证书问题
如果你的代理使用自签名证书,Snap调用HTTPS接口时会因证书验证失败触发EOF错误:
- 将代理的CA证书导入系统信任库:
sudo cp /path/to/你的代理CA证书.crt /usr/local/share/ca-certificates/ sudo update-ca-certificates
- 重启Snap服务后重新执行安装命令
方案4:验证代理连通性
先确认代理本身能否正常访问Snapcraft的API:
curl -x http://你的代理地址:端口 https://api.snapcraft.io/v2/snaps/refresh
如果这个命令也返回EOF或连接错误,说明代理本身存在问题(比如端口不通、代理服务器离线、虚拟机防火墙限制等),需要先排查代理的可用性。
内容的提问来源于stack exchange,提问作者Kai




