소스 정보
- 저장소
- QianJinGuo/wiki
- 최근 소스 활동
- 2026년 6월 15일 10:22
- 감지된 SKILL.md 언어
- 중국어
- 스타
- 1
- 포크
- 1
설치 방법
기본적으로 소스를 먼저 확인하는 Prompt가 선택됩니다. 직접 명령으로 전환하거나 로컬 사본을 다운로드할 수도 있습니다.
소스 파일 검토
설치 여부를 결정하기 전에 SKILL.md와 SkillsMP에 표시된 보조 파일을 읽어 보세요.
메뉴
기본적으로 소스를 먼저 확인하는 Prompt가 선택됩니다. 직접 명령으로 전환하거나 로컬 사본을 다운로드할 수도 있습니다.
설치 여부를 결정하기 전에 SKILL.md와 SkillsMP에 표시된 보조 파일을 읽어 보세요.
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
직접 명령은 검토 Prompt를 거치지 않습니다. 실행하기 전에 소스를 확인하세요.
npx skills add https://github.com/QianJinGuo/wiki --skill rclone-gdrive-auth-via-proxy명령은 한 줄로 유지됩니다. 복사하기 전에 가로로 스크롤해 전체 내용을 확인하세요.
로컬 사본을 원하시나요? SkillsMP에서 현재 제공할 수 있는 파일을 다운로드하세요.
SKILL.md 표시 중
| name | rclone-gdrive-auth-via-proxy |
| description | 在代理环境下通过 browser OAuth 完成 rclone Google Drive 授权 |
| triggers | ["rclone authorize drive 超时失败","Google OAuth i/o timeout","rclone sync 挂起无输出(token 过期/损坏)","rclone 命令 hang 住不返回"] |
在网络无法直连 Google OAuth 服务器的环境下,通过本地代理完成 rclone 的 browser OAuth 授权。
本地有代理工具运行(v2rayN、Clash 等),端口已知。
# 检查 v2rayN/xray 是否运行,以及它监听的 socks 端口
ps aux | grep -E 'v2ray|xray|clash' | grep -v grep
# 扫描常见代理端口
for port in 10808 10809 10810 7890 7891 8080 8118; do
nc -z -w1 127.0.0.1 $port 2>/dev/null && echo "OPEN: $port"
done
export HTTPS_PROXY=http://127.0.0.1:10808
export HTTP_PROXY=http://127.0.0.1:10808
curl -s --max-time 5 https://www.google.com | head -1 && echo "PROXY OK"
必须先杀掉旧的后台进程,否则多进程抢 port 会导致 token 写入混乱:
# 杀掉所有残留的 rclone authorize 进程
pkill -f "rclone authorize" 2>/dev/null
sleep 1
# 设置代理并后台运行
export HTTPS_PROXY=http://127.0.0.1:10808
export HTTP_PROXY=http://127.0.0.1:10808
/Users/jinguo/bin/rclone authorize drive 2>&1 &
echo "PID: $!"
命令行会输出本地监听地址,如:
http://127.0.0.1:53682/auth?state=xxx
手动在本机浏览器打开这个地址,用 Google 账号授权。授权成功后页面会显示 success。
授权后命令行输出包含完整 JSON token(有效期 1 小时,refresh_token 永久有效):
{"access_token":"ya29...","token_type":"Bearer","refresh_token":"1//0eH...","expiry":"...","expires_in":3599}
手动写入 ~/.config/rclone/rclone.conf:
[gdrive-wiki]
type = drive
scope = drive
token = {"access_token":"ya29...","token_type":"Bearer","refresh_token":"1//0eH...","expiry":"...","expires_in":3599}
/Users/jinguo/bin/rclone lsd gdrive-wiki:
dial tcp [2607:f8b0:400e:c1b::5f]:443: i/o timeoutHTTPS_PROXY/HTTP_PROXY 后 rclone 自动走 IPv4 代理refresh_token 是永久有效的,不需要重新授权rclone 命令 hang 住不返回,且无错误输出,通常是以下原因:
检查 ~/.config/rclone/rclone.conf 中 expiry 字段。如果已过期,rclone 无法刷新 token 会 hang 住。
token 字段包含 ... 等占位符(如 "ya29.a...0207"),说明之前复制时被截断。
rclone 解析 base64 失败会报 illegal base64 data,但有时也会 hang。
修复步骤:
# 先清空 token 字段,只保留 type 和 scope
cat > ~/.config/rclone/rclone.conf << 'EOF'
[gdrive-wiki]
type = drive
scope = drive
EOF
# 然后重新走授权流程
rclone 默认配置在 ~/.config/rclone/rclone.conf(不是 ~/.rclone.conf)。
如果找不到配置,用 find ~ -name "rclone.conf" 2>/dev/null 搜索。
# 确认 rclone 进程还在跑
ps aux | grep rclone | grep -v grep
# 检查日志
tail -20 ~/wiki/rclone-sync.log
# 测试连通性(需代理)
export HTTPS_PROXY=http://127.0.0.1:10808
curl -s --max-time 5 https://www.googleapis.com/oauth2/v1/certs | head -1
关键限制: rclone authorize drive 需要浏览器交互(打开本地监听地址并登录 Google 账号),在 headless cron 环境中无法完成。cron 任务中 rclone token 过期后只能报错,不能自动修复。
推荐方案:使用 Google Service Account 替代 OAuth token
Service Account 使用 JSON key 文件认证,无需浏览器交互,适合 cron 自动化:
~/.config/rclone/service-account.json(权限 600)[gdrive-wiki]
type = drive
scope = drive
service_account_file = /Users/jinguo/.config/rclone/service-account.json
诊断 token 是否过期:
# 检查 config 中是否有 token 字段
grep -A5 "\[gdrive-wiki\]" ~/.config/rclone/rclone.conf
# 如果只有 type/scope 没有 token 字段,说明 token 已完全丢失
# 如果有 token 但 expiry 已过期,rclone sync 会 hang 或报 "empty token found"
SOC 직업 분류 기준