添加学习笔记:Markdown演进与rclone代理配置问题总结

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-05-07 15:32:42 +08:00
parent 826c5e7c64
commit 8b88d55bd2
2 changed files with 197 additions and 0 deletions
@@ -0,0 +1,117 @@
# rclone 同步代理配置问题总结
## 问题描述
rclone bisync 在同步时无法连接到 Google API 服务器(googleapis.com),
导致同步失败,错误信息如下:
```
CRITICAL: Failed to create file system for destination "gdrive:学习笔记":
couldn't find root directory ID: dial tcp 142.250.204.42:443: i/o timeout
```
系统使用 Clash Verge 作为代理工具,代理端口为 7897,但 rclone 无法通过
代理访问 googleapis.com。
---
## 根本原因
rclone 访问 Google Drive 依赖 `googleapis.com` 这个域名,但该域名在
Clash 的规则配置中没有被正确路由到代理节点,导致走了直连并超时。
同时,同步脚本中的网络检测函数 `check_network` 也在检测 googleapis.com
所以网络检测始终失败,触发重试逻辑,最终放弃同步。
---
## 尝试过但未成功的方法
### 方法一:直接用 curl 测试代理端口
```bash
curl -sf --max-time 10 --proxy http://127.0.0.1:7897 https://www.googleapis.com
```
**结果**:不可用
**原因**Clash 规则模式下 googleapis.com 没有匹配到代理规则,走了直连。
---
### 方法二:在 Clash Verge 全局扩展覆写配置(Merge)中添加规则,策略组写为 PROXY
```yaml
prepend-rules:
- DOMAIN-SUFFIX,googleapis.com,PROXY
```
**结果**:不可用
**原因**:配置里不存在叫 `PROXY` 的策略组,实际策略组名称是 `OK CLOUD`
规则匹配后找不到对应出口,流量仍然直连。
---
### 方法三:将策略组改为 `OK CLOUD` 后重新加载
```yaml
prepend-rules:
- DOMAIN-SUFFIX,googleapis.com,OK CLOUD
```
**结果**:不可用
**原因**googleapis.com 这个域名通过代理节点也无法访问,是域名层面的限制。
而 google.com 和 drive.google.com 可以正常访问,说明节点对该域名有特殊限制。
---
### 方法四:设置环境变量让 rclone 走系统代理,但未修改检测函数
```bash
export HTTPS_PROXY=http://127.0.0.1:7897
~/gdrive_sync.sh
```
**结果**:不可用
**原因**:脚本中 `check_network` 函数仍检测 `googleapis.com`
该域名不可达导致网络检测失败,脚本在进入 rclone 同步之前就已放弃。
---
## 最终解决方案
修改同步脚本,做两处调整:
**1. 在配置区加入代理环境变量:**
```bash
export HTTPS_PROXY="http://127.0.0.1:7897"
export HTTP_PROXY="http://127.0.0.1:7897"
```
**2. 将 `check_network` 的检测目标改为 `drive.google.com`**
```bash
curl -sf --max-time 10 --proxy "$HTTPS_PROXY" https://drive.google.com > /dev/null 2>&1
```
**原因**`drive.google.com` 可以通过代理正常访问,用它作为网络检测目标更可靠。
rclone 通过代理访问 Google Drive API 也能成功,说明 googleapis.com
仅在直接 curl 测试时不可达,rclone 内部的请求路径略有不同。
---
## 关键教训
| 问题 | 教训 |
|------|------|
| 策略组名称写错 | Clash 规则中策略组名称必须与配置完全一致,不能用通用名如 `PROXY` |
| 网络检测域名选择不当 | 检测域名应选择实际可达且与业务相关的域名,而非 API 端点 |
| googleapis.com 不可直接访问 | 应以 drive.google.com 等用户端域名作为连通性判断依据 |
---
*记录日期:2026-05-07*