VSCode 及 Google Colab 登录受阻?教你搞定分流规则
最近在折腾开发环境的时候,发现不少朋友都在反馈一个让人头秃的问题:VS Code 里的插件没法登录,尤其是 Google 账号,导致连 Google Colab 都打不开。楼主提到的“分流规则没弄好”,确实是这事儿的核心症结所在。
很多时候,咱们以为开了代理就能走遍天下,但像 VS Code 这种 Electron 架构的应用,它的网络请求常常“我行我素”,不走系统代理,或者被某些规则莫名其妙地拦截了。今天就来聊聊怎么把 VS Code 和 Google Colab 的网络给“捋顺”了。
为什么会出现这个问题?
首先得明白,VS Code 的主进程和插件进程有时候网络行为不太一致。如果你在 Git 操作、或者插件里调用 Google API 时失败,大概率是因为代理软件的规则库里没收录 VS Code 相关的域名,或者把它当成了直连处理。
而对于 Google Colab,由于它涉及到复杂的 Google 认证流程和内部域名跳转,只要其中一个环节的域名走直连(尤其是中国大陆网络环境下),整个登录流程就会卡死,一直转圈圈。
解决方案一:VS Code 端的硬核配置
既然默认情况下 VS Code 可能不老实走代理,那我们就强制它走。
- 修改 VS Code 设置
打开 VS Code 的
settings.json文件(快捷键Ctrl + Shift + P,输入Open Settings (JSON)),添加以下配置:
"http.proxy": "http://127.0.0.1:你的代理端口",
"https.proxy": "http://127.0.0.1:你的代理端口"
```
*注意:记得把 `你的代理端口` 换成你当前代理软件实际的监听端口(比如 7890, 1080 等)。*
2. **处理代理认证**
如果你的代理软件开了需要账号密码验证,那光配地址是不够的。VS Code 目前的版本对带有鉴权的代理支持不算完美。推荐做法是允许“来自局域网的连接”,并把不经过认证的 `127.0.0.1` 加进白名单,这样 VS Code 就能免密连接了。
### 解决方案二:代理软件的分流规则补全
如果不想每个软件都单独配代理,那就在代理软件的“规则”上下功夫。无论你用的是 Clash 系还是 Surge 系列,都需要确保相关域名被正确分流。
**核心关键词(Domain/Keyword):**
* `google.com`
* `gstatic.com`
* `googleapis.com` (这是很多插件和 Colab 调用的关键)
* `googleusercontent.com`
* `vscode.dev` (如果你用 Web 版)
* `github.com` (虽然楼主没提,但搞开发的肯定离不开)
**操作建议:**
在你的自定义规则集里,添加如下逻辑:
1. 将上述域名后缀(Suffix)或者关键词(Keyword)加入到 `PROXY` (代理)列表。
2. 将它们放在 `GEOIP` 或者 `MATCH` 规则的**前面**。规则的匹配是自上而下的,一旦上面命中了,下面就不会执行了。如果你的代理规则把 Google 相关的列在了最后,可能就被前面的直连规则给“截胡”了。
### 针对 Google Colab 的特别说明
Colab 有时候不仅仅是访问 `colab.research.google.com` 这么简单,它还会调用 `.appspot.com` 等一系列 Google 云端服务的域名。如果你发现自己能打开 Colab 页面,但点击“连接”时一直报错或连不上 Runtime,通常就是上述提到的 `googleapis.com` 或 `googleusercontent.com` 没走代理导致的。
### 实操中的几个坑点
1. **TUN 模式 vs 规则模式**:如果你用的是支持 TUN 模式的软件(如 Clash Verge、Surge 等),开启 TUN 模式通常能解决大部分软件不走系统代理的问题。开启 TUN 后,相当于接管了系统的所有流量虚拟网卡,不需要在 VS Code 里单独配置 HTTP 代理了,前提是规则要写对。
2. **DNS 污染**:有时候规则是对的,但 DNS 解析被污染了,解析到了错误的 IP 地址,自然也连不上。建议在代理软件里开启“Remote DNS”(远程 DNS),让域名解析请求也走代理通道发出。
3. **进程代理**:部分高级客户端支持针对特定进程(比如 `Code.exe`)强制走代理,这也是一个一劳永逸的办法,不用去纠结具体哪些域名漏掉了。
**总结一下:**
遇到 VS Code 或 Colab 登录不上,先别慌。第一步尝试在 VS Code 里强制指定 HTTP 代理;如果还不行,就去检查代理软件的规则列表,确保 Google 全家桶域名统统被放进了“代理”组并且优先级够高。搞定这些,你的开发之路就能顺畅不少啦!
评论已关闭