Sublime Text中如何配置代理插件以解决Package Control连接问题?
- 内容介绍
- 文章标签
- 相关推荐
本文共计858个文字,预计阅读时间需要4分钟。
使用Clash或Surge以及系统设置中的代理对Sublime Text完全无效。它使用的是Python内置的`urllib.request`模块,不读取环境变量也不继承系统设置,仅识别自己配置文件中定义的`http_proxy`和`https_proxy`字段。
常见错误现象:
- 开了 Clash 全局模式,Sublime 控制台仍报
Connection timed out - 填了
https://127.0.0.1:7890(协议写成https://)——直接忽略,不报错也不生效 - 用了 SOCKS5 代理端口(如
127.0.0.1:1080)——urllib.request不支持,必须换 HTTP 代理端口或启用工具的 HTTP 转发
怎么正确配置 http_proxy / https_proxy?
打开 Preferences → Package Settings → Package Control → Settings – User,在 JSON 中添加:
{ "http_proxy": "http://127.0.0.1:7890", "https_proxy": "http://127.0.0.1:7890" }
注意要点:
- 两个字段都必须填,且协议严格为
http://,哪怕目标是 HTTPS 站点 - 端口要和你本地代理软件实际监听的 HTTP 端口一致(Clash 默认
7890,但部分配置可能改成了7891或8080,需确认) - 不需要认证时,
proxy_username和proxy_password留空或干脆不写 - 别加斜杠结尾,也别混入中文引号、不可见 Unicode 字符(从网页复制代码容易中招)
怎么验证代理真的生效了?
按 Ctrl+` 打开控制台,运行这行测试命令:
import urllib.request; urllib.request.urlopen('https://packagecontrol.io').getcode()
返回 200 才算真正通了。如果还报错,再看控制台输出:
- 出现
Connection refused→ 代理没开,或端口填错 - 出现
SSL: CERTIFICATE_VERIFY_FAILED→ 不是代理问题,是系统时间不准(误差超 5 分钟)或证书链异常,临时可加"ssl_verify": false,但不推荐长期开启 - 没任何输出或卡住 → 检查 Windows 防火墙是否拦截了
sublime_text.exe的出站请求
代理配好了,“There are no packages available” 还是出现?
说明 channels 地址根本没通——代理只管请求转发,但 channels 默认值仍是 https://packagecontrol.io/channel_v3.json,这个地址在国内直连大概率失败。
此时有两个选择:
- 删掉
channels字段,让 Package Control 回归直连逻辑,靠代理穿透(前提是代理本身能稳定访问 GitHub) - 保留代理,同时把
channels换成国内镜像,比如:"channels": ["https://gitee.com/akira-cn/package_control_channel/raw/master/channel_v3.json"]注意路径必须含
/raw/master/,结尾必须是channel_v3.json,浏览器能直接打开并返回 JSON 才算有效
改完保存,必须重启 Sublime,设置不热重载;之后再执行 Package Control: Synchronize Packages 强制刷新缓存。
最容易被忽略的其实是:代理配置和 channels 地址是两件事,配了前者不等于后者自动变通——很多人卡在这一步,反复重装 Package Control,其实只是没动对地方。
本文共计858个文字,预计阅读时间需要4分钟。
使用Clash或Surge以及系统设置中的代理对Sublime Text完全无效。它使用的是Python内置的`urllib.request`模块,不读取环境变量也不继承系统设置,仅识别自己配置文件中定义的`http_proxy`和`https_proxy`字段。
常见错误现象:
- 开了 Clash 全局模式,Sublime 控制台仍报
Connection timed out - 填了
https://127.0.0.1:7890(协议写成https://)——直接忽略,不报错也不生效 - 用了 SOCKS5 代理端口(如
127.0.0.1:1080)——urllib.request不支持,必须换 HTTP 代理端口或启用工具的 HTTP 转发
怎么正确配置 http_proxy / https_proxy?
打开 Preferences → Package Settings → Package Control → Settings – User,在 JSON 中添加:
{ "http_proxy": "http://127.0.0.1:7890", "https_proxy": "http://127.0.0.1:7890" }
注意要点:
- 两个字段都必须填,且协议严格为
http://,哪怕目标是 HTTPS 站点 - 端口要和你本地代理软件实际监听的 HTTP 端口一致(Clash 默认
7890,但部分配置可能改成了7891或8080,需确认) - 不需要认证时,
proxy_username和proxy_password留空或干脆不写 - 别加斜杠结尾,也别混入中文引号、不可见 Unicode 字符(从网页复制代码容易中招)
怎么验证代理真的生效了?
按 Ctrl+` 打开控制台,运行这行测试命令:
import urllib.request; urllib.request.urlopen('https://packagecontrol.io').getcode()
返回 200 才算真正通了。如果还报错,再看控制台输出:
- 出现
Connection refused→ 代理没开,或端口填错 - 出现
SSL: CERTIFICATE_VERIFY_FAILED→ 不是代理问题,是系统时间不准(误差超 5 分钟)或证书链异常,临时可加"ssl_verify": false,但不推荐长期开启 - 没任何输出或卡住 → 检查 Windows 防火墙是否拦截了
sublime_text.exe的出站请求
代理配好了,“There are no packages available” 还是出现?
说明 channels 地址根本没通——代理只管请求转发,但 channels 默认值仍是 https://packagecontrol.io/channel_v3.json,这个地址在国内直连大概率失败。
此时有两个选择:
- 删掉
channels字段,让 Package Control 回归直连逻辑,靠代理穿透(前提是代理本身能稳定访问 GitHub) - 保留代理,同时把
channels换成国内镜像,比如:"channels": ["https://gitee.com/akira-cn/package_control_channel/raw/master/channel_v3.json"]注意路径必须含
/raw/master/,结尾必须是channel_v3.json,浏览器能直接打开并返回 JSON 才算有效
改完保存,必须重启 Sublime,设置不热重载;之后再执行 Package Control: Synchronize Packages 强制刷新缓存。
最容易被忽略的其实是:代理配置和 channels 地址是两件事,配了前者不等于后者自动变通——很多人卡在这一步,反复重装 Package Control,其实只是没动对地方。

