package control 不读取系统代理,必须在用户配置中硬编码 http_proxy 和 https_proxy;仅支持 http 代理(如 http://127.0.0.1:7890),不支持 socks5;安装失败时需改安装脚本或手动下载包。

Package Control 不走系统代理,必须手动填 http_proxy 和 https_proxy
Sublime Text 的 Package Control 完全不读取 Windows 代理设置、macOS 网络偏好或任何环境变量(比如 HTTP_PROXY),哪怕你开了 Clash 或 V2RayN 并设置了系统代理,它也照样连不上 packagecontrol.io。唯一生效的方式,是在 Package Control 的用户配置里硬编码写入代理地址。
打开 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://或socks5://—— 否则静默失效 - Clash/V2RayN/Surge 默认 HTTP 端口是
7890,但部分配置可能改成了7891或8080,务必核对你本地工具的实际监听端口 - 不需要认证时,
proxy_username和proxy_password字段可以不写,留空也没用 - JSON 最后一项后面不能有多余逗号,否则整个配置被忽略
SOCKS5 代理(如 127.0.0.1:1080)默认不支持
Package Control 底层用的是 Python 的 urllib(ST3)或 urllib.request(ST4),它们原生不支持 SOCKS5。填 socks5://127.0.0.1:1080 或直接写 127.0.0.1:1080 都会失败,控制台只显示 Connection refused 或完全无日志。
- 解决方案只有两个:换用工具的 HTTP 代理端口(比如 Clash 的
7890),或启用它的 HTTP 转发功能(如 Clash 的mixed-port) - 临时验证是否监听成功:在终端执行
curl -v http://127.0.0.1:7890,返回400 Bad Request或405 Method Not Allowed才算正常;如果报connection refused,说明代理进程没开 HTTP 模式,或端口不对 - 别指望“自动转换”——Sublime 不会把 SOCKS5 请求转成 HTTP,也没内置 socks 模块
控制台无日志输出?大概率是进程被拦截,不是代理配错了
按 Ctrl + ` 打开控制台,执行 Package Control: Install Package,如果什么都没输出,甚至命令面板里都搜不到这个命令,那问题根本不在代理,而在 Package Control 本身没加载或被系统拦了。
- 先确认
Installed Packages/目录下有Package Control.sublime-package文件(不是文件夹),且没被ignored_packages列表屏蔽 - Windows 下检查防火墙:进「允许应用通过防火墙」,勾选
sublime_text.exe的「专用」和「公用」网络权限 - 企业环境常见组策略或杀软(尤其深信服、奇安信)会劫持 SSL 连接,导致
ssl.CertificateError;此时加"ssl_verify": false只能绕过,但不解决拦截本身 - 时间误差超过 5 分钟也会触发证书校验失败,先同步系统时间再试
连 Package Control 本体都装不上,得改安装脚本带代理
如果你连 Package Control 都没装上,说明初始安装脚本也卡在下载环节。这时光改 Settings 没用,得让安装命令自己走代理。
ST4 推荐用这段带 ProxyHandler 的代码(粘贴到控制台执行):
import urllib.request,os,hashlib; h = '2915d1851351e5ee549c20394736b442' + '8bc59f460fa1548d1514676163dafc88'; pf = 'Package Control.sublime-package'; ipp = sublime.installed_packages_path(); urllib.request.install_opener(urllib.request.build_opener(urllib.request.ProxyHandler({'http': 'http://127.0.0.1:7890', 'https': 'http://127.0.0.1:7890'}))); by = urllib.request.urlopen('http://packagecontrol.io/' + pf.replace(' ', '%20')).read(); dh = hashlib.sha256(by).hexdigest(); print('Error validating download (got %s instead of %s), please try manual install' % (dh, h)) if dh != h else open(os.path.join(ipp, pf), 'wb').write(by)
- 注意替换其中的
http://127.0.0.1:7890为你实际的代理地址 - ST3 用户若用旧脚本(基于
urllib2),需对应改成urllib2.ProxyHandler,且 URL 必须是http://协议(http://sublime.wbond.net已不可用) - 最稳方案仍是手动下载:https://www.php.cn/link/2e5d5f65d3ef778b01366907d1f14445,扔进
Installed Packages/目录,重启即生效











