name: proxychains
自动使用代理解决网络问题 - 当遇到网络连接失败、超时或访问受限时,自动使用 proxychains4 强制走代理。
触发条件(自动应用):
Claude 应该:
proxychains4http://127.0.0.1:9910# ❌ 原命令失败
curl https://github.com/user/repo
# ✅ 使用代理重试
proxychains4 curl https://github.com/user/repo
场景 1: Git 操作失败
# 原命令
git clone https://github.com/user/repo.git
# 自动改为
proxychains4 git clone https://github.com/user/repo.git
场景 2: Python pip 安装失败
# 原命令
pip install requests
# 自动改为
proxychains4 pip install requests
场景 3: npm/yarn 安装失败
# 原命令
npm install package-name
# 自动改为
proxychains4 npm install package-name
场景 4: wget/curl 下载失败
# 原命令
wget https://example.com/file.tar.gz
# 自动改为
proxychains4 wget https://example.com/file.tar.gz
场景 5: Docker 拉取镜像失败
# 原命令
docker pull image:tag
# 自动改为
proxychains4 docker pull image:tag
场景 6: SSH 连接失败
# 原命令
ssh user@remote-host
# 自动改为
proxychains4 ssh user@remote-host
本地代理地址: http://127.0.0.1:9910
配置文件位置:
~/.proxychains/proxychains.conf (推荐)/etc/proxychains.conf (系统级)创建用户级配置(自动使用 127.0.0.1:9910):
mkdir -p ~/.proxychains
cat > ~/.proxychains/proxychains.conf << 'EOF'
# Proxychains configuration
strict_chain
proxy_dns
remote_dns_subnet 224
tcp_read_time_out 15000
tcp_connect_time_out 8000
[ProxyList]
http 127.0.0.1 9910
EOF
# 设置代理环境变量
export PROXYCHAINS_SOCKS5_HOST=127.0.0.1
export PROXYCHAINS_SOCKS5_PORT=9910
# 使用
proxychains4 curl https://github.com
Proxychains 通过 LD_PRELOAD 机制拦截程序的网络调用:
重要限制:
IF 命令返回网络相关错误(timeout, connection refused, DNS failure)
THEN 自动使用 proxychains4 重试该命令
IF 访问以下域名/服务:
- github.com
- raw.githubusercontent.com
- pypi.org
- npmjs.org
- registry.npmjs.org
- docker.io
- gcr.io
THEN 直接使用 proxychains4(不等待失败)
IF proxychains4 命令也失败
THEN 提示用户:
1. 检查代理服务是否运行(127.0.0.1:9910)
2. 检查 proxychains 配置文件
3. 尝试其他代理地址
# 测试代理是否可用
curl -x http://127.0.0.1:9910 https://www.google.com
# 检查端口是否监听
netstat -tunlp | grep 9910
# 或
ss -tunlp | grep 9910
# 测试配置是否正确
proxychains4 curl https://ipinfo.io/json
# 应该显示代理服务器的 IP,而不是本机 IP
错误 1: "proxychains: command not found"
# 安装 proxychains4
sudo apt install proxychains4 # Debian/Ubuntu
sudo yum install proxychains-ng # CentOS/RHEL
错误 2: "timeout"
# 检查代理地址配置是否正确
cat ~/.proxychains/proxychains.conf | grep -A 2 "\[ProxyList\]"
# 修改超时时间(在配置文件中)
tcp_connect_time_out 15000
tcp_read_time_out 30000
错误 3: "can't read configuration file"
# 创建配置文件
mkdir -p ~/.proxychains
cp /etc/proxychains.conf ~/.proxychains/proxychains.conf
# 然后编辑配置
# ~/.proxychains/proxychains.conf
strict_chain # 按顺序使用所有代理
[ProxyList]
http 127.0.0.1 9910
socks5 127.0.0.1 1080
dynamic_chain # 自动跳过死代理
[ProxyList]
http 127.0.0.1 9910
http 127.0.0.1 8080
socks5 127.0.0.1 1080
random_chain
chain_len = 2 # 随机选择 2 个代理
[ProxyList]
http 127.0.0.1 9910
socks5 127.0.0.1 1080
socks5 127.0.0.1 1081
# 使用自定义 DNS 通过代理解析
export PROXY_DNS_SERVER=8.8.8.8
proxychains4 curl https://example.com
references/proxychains.conf (完整示例)references/troubleshooting.mdreferences/quick-reference.md记住这些原则:
proxychains4proxychains4默认代理: http://127.0.0.1:9910
这个技能让 Claude 在遇到网络问题时自动使用代理,无需用户手动干预!