为何VS Code终端不使用系统http_proxy?已开启环境继承
解决VS Code终端无法继承Pop OS系统代理的问题
我之前在Ubuntu 20.04系的系统上也碰到过一模一样的问题,明明勾选了Terminal>Integrated:Inherit Env,但VS Code终端就是拿不到系统的http_proxy变量。结合Pop OS的环境特性,给你几个靠谱的排查和解决步骤:
先确认系统代理变量的加载位置
系统设置里配置的代理,有时候会写入/etc/environment,但如果你是手动在~/.bashrc里加的代理变量,那图形界面启动的VS Code可能拿不到——因为.bashrc只有交互式Shell才会加载,而图形界面启动的程序继承的是登录会话的环境变量。
你可以先在普通终端里执行:echo $http_proxy echo $https_proxy确认值正确后,用这条命令找变量的定义位置:
grep -r "http_proxy" ~/.bashrc ~/.profile /etc/environment /etc/profile如果发现变量在
~/.bashrc里,建议把它们移到~/.profile或者/etc/environment里,这两个文件是登录时全局加载的,图形界面程序能拿到这些变量。尝试关闭VS Code的Sandbox机制
VS Code的Sandbox安全机制有时候会干扰环境变量的继承,你可以试试关闭它:- 按下
Ctrl+Shift+P打开命令面板,输入Preferences: Configure Runtime Arguments并回车。 - 在打开的
argv.json文件里,添加一行:"disableSandbox": true。 - 保存文件后重启VS Code,再检查终端的代理变量。
- 按下
手动给VS Code终端指定代理变量
如果上面的方法都不行,直接在VS Code设置里硬编码代理变量也是个稳妥的办法:- 按下
Ctrl+,打开设置界面,搜索Terminal > Integrated: Env: Linux。 - 点击
Edit in settings.json,添加类似下面的配置(替换成你实际的代理地址):"terminal.integrated.env.linux": { "http_proxy": "http://127.0.0.1:8080", "https_proxy": "http://127.0.0.1:8080", "NO_PROXY": "localhost,127.0.0.1,::1" } - 保存后重启VS Code,终端里就能拿到代理变量了。
- 按下
最后别忘了重启VS Code,然后在终端里执行echo $http_proxy验证是否生效。
内容的提问来源于stack exchange,提问作者Yi Zhao
相关产品推荐
相关产品推荐

