proxychains
Compare original and translation side by side
🇺🇸
Original
English🇨🇳
Translation
ChineseProxychains Network Proxy Skill
Proxychains 网络代理技能
自动使用代理解决网络问题 - 当遇到网络连接失败、超时或访问受限时,自动使用 proxychains4 强制走代理。
自动使用代理解决网络问题 - 当遇到网络连接失败、超时或访问受限时,自动使用 proxychains4 强制走代理。
When to Use This Skill
何时使用该技能
触发条件(自动应用):
- ❌ Connection timeout errors
- ❌ DNS resolution failures
- ❌ "Connection refused" errors
- ❌ HTTP 403/451 blocked access
- ❌ GitHub/PyPI/npm 等国外资源访问失败
- ❌ curl/wget/git/pip 等命令失败
Claude 应该:
- 检测到网络错误后,自动在命令前添加
proxychains4 - 使用默认代理配置:
http://127.0.0.1:9910 - 如果代理失败,提示用户检查代理服务状态
触发条件(自动应用):
- ❌ 连接超时错误
- ❌ DNS解析失败
- ❌ "连接被拒绝"错误
- ❌ HTTP 403/451访问被拦截
- ❌ GitHub/PyPI/npm 等国外资源访问失败
- ❌ curl/wget/git/pip 等命令失败
Claude 应该:
- 检测到网络错误后,自动在命令前添加
proxychains4 - 使用默认代理配置:
http://127.0.0.1:9910 - 如果代理失败,提示用户检查代理服务状态
Quick Reference
快速参考
基本用法模式
基本用法模式
bash
undefinedbash
undefined❌ 原命令失败
❌ 原命令失败
✅ 使用代理重试
✅ 使用代理重试
proxychains4 curl https://github.com/user/repo
undefinedproxychains4 curl https://github.com/user/repo
undefined常见场景自动应用
常见场景自动应用
场景 1: Git 操作失败
bash
undefined场景 1: Git 操作失败
bash
undefined原命令
原命令
git clone https://github.com/user/repo.git
git clone https://github.com/user/repo.git
自动改为
自动改为
proxychains4 git clone https://github.com/user/repo.git
**场景 2: Python pip 安装失败**
```bashproxychains4 git clone https://github.com/user/repo.git
**场景 2: Python pip 安装失败**
```bash原命令
原命令
pip install requests
pip install requests
自动改为
自动改为
proxychains4 pip install requests
**场景 3: npm/yarn 安装失败**
```bashproxychains4 pip install requests
**场景 3: npm/yarn 安装失败**
```bash原命令
原命令
npm install package-name
npm install package-name
自动改为
自动改为
proxychains4 npm install package-name
**场景 4: wget/curl 下载失败**
```bashproxychains4 npm install package-name
**场景 4: wget/curl 下载失败**
```bash原命令
原命令
自动改为
自动改为
proxychains4 wget https://example.com/file.tar.gz
**场景 5: Docker 拉取镜像失败**
```bashproxychains4 wget https://example.com/file.tar.gz
**场景 5: Docker 拉取镜像失败**
```bash原命令
原命令
docker pull image:tag
docker pull image:tag
自动改为
自动改为
proxychains4 docker pull image:tag
**场景 6: SSH 连接失败**
```bashproxychains4 docker pull image:tag
**场景 6: SSH 连接失败**
```bash原命令
原命令
ssh user@remote-host
ssh user@remote-host
自动改为
自动改为
proxychains4 ssh user@remote-host
undefinedproxychains4 ssh user@remote-host
undefined配置详情
配置详情
默认代理配置
默认代理配置
本地代理地址:
http://127.0.0.1:9910配置文件位置:
- (推荐)
~/.proxychains/proxychains.conf - (系统级)
/etc/proxychains.conf
本地代理地址:
http://127.0.0.1:9910配置文件位置:
- (推荐)
~/.proxychains/proxychains.conf - (系统级)
/etc/proxychains.conf
快速配置脚本
快速配置脚本
创建用户级配置(自动使用 127.0.0.1:9910):
bash
mkdir -p ~/.proxychains
cat > ~/.proxychains/proxychains.conf << 'EOF'创建用户级配置(自动使用 127.0.0.1:9910):
bash
mkdir -p ~/.proxychains
cat > ~/.proxychains/proxychains.conf << 'EOF'Proxychains configuration
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
undefinedstrict_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
undefined环境变量方式(临时使用)
环境变量方式(临时使用)
bash
undefinedbash
undefined设置代理环境变量
设置代理环境变量
export PROXYCHAINS_SOCKS5_HOST=127.0.0.1
export PROXYCHAINS_SOCKS5_PORT=9910
export PROXYCHAINS_SOCKS5_HOST=127.0.0.1
export PROXYCHAINS_SOCKS5_PORT=9910
使用
使用
proxychains4 curl https://github.com
undefinedproxychains4 curl https://github.com
undefined工作原理
工作原理
Proxychains 通过 LD_PRELOAD 机制拦截程序的网络调用:
- 拦截系统调用:Hook socket 相关的 libc 函数
- 重定向连接:将所有 TCP 连接重定向到代理服务器
- DNS 代理:通过代理服务器解析域名
- 透明代理:应用程序无需修改
重要限制:
- 只支持动态链接的程序(statically linked 程序不支持)
- 只支持 TCP 连接(UDP 不支持)
- 部分使用特殊网络库的程序可能不兼容
Proxychains 通过 LD_PRELOAD 机制拦截程序的网络调用:
- 拦截系统调用:Hook socket 相关的 libc 函数
- 重定向连接:将所有 TCP 连接重定向到代理服务器
- DNS 代理:通过代理服务器解析域名
- 透明代理:应用程序无需修改
重要限制:
- 只支持动态链接的程序(静态链接程序不支持)
- 只支持 TCP 连接(UDP 不支持)
- 部分使用特殊网络库的程序可能不兼容
Claude 自动化规则
Claude 自动化规则
规则 1: 网络错误自动重试
规则 1: 网络错误自动重试
IF 命令返回网络相关错误(timeout, connection refused, DNS failure)
THEN 自动使用 proxychains4 重试该命令IF 命令返回网络相关错误(超时、连接被拒绝、DNS解析失败)
THEN 自动使用 proxychains4 重试该命令规则 2: 已知慢速源强制代理
规则 2: 已知慢速源强制代理
IF 访问以下域名/服务:
- github.com
- raw.githubusercontent.com
- pypi.org
- npmjs.org
- registry.npmjs.org
- docker.io
- gcr.io
THEN 直接使用 proxychains4(不等待失败)IF 访问以下域名/服务:
- github.com
- raw.githubusercontent.com
- pypi.org
- npmjs.org
- registry.npmjs.org
- docker.io
- gcr.io
THEN 直接使用 proxychains4(不等待失败)规则 3: 失败提示
规则 3: 失败提示
IF proxychains4 命令也失败
THEN 提示用户:
1. 检查代理服务是否运行(127.0.0.1:9910)
2. 检查 proxychains 配置文件
3. 尝试其他代理地址IF proxychains4 命令也失败
THEN 提示用户:
1. 检查代理服务是否运行(127.0.0.1:9910)
2. 检查 proxychains 配置文件
3. 尝试其他代理地址故障排除
故障排除
检查代理服务状态
检查代理服务状态
bash
undefinedbash
undefined测试代理是否可用
测试代理是否可用
检查端口是否监听
检查端口是否监听
netstat -tunlp | grep 9910
netstat -tunlp | grep 9910
或
或
ss -tunlp | grep 9910
undefinedss -tunlp | grep 9910
undefined验证 proxychains 配置
验证 proxychains 配置
bash
undefinedbash
undefined测试配置是否正确
测试配置是否正确
proxychains4 curl https://ipinfo.io/json
proxychains4 curl https://ipinfo.io/json
应该显示代理服务器的 IP,而不是本机 IP
应该显示代理服务器的 IP,而不是本机 IP
undefinedundefined常见错误处理
常见错误处理
错误 1: "proxychains: command not found"
bash
undefined错误 1: "proxychains: command not found"
bash
undefined安装 proxychains4
安装 proxychains4
sudo apt install proxychains4 # Debian/Ubuntu
sudo yum install proxychains-ng # CentOS/RHEL
**错误 2: "timeout"**
```bashsudo apt install proxychains4 # Debian/Ubuntu
sudo yum install proxychains-ng # CentOS/RHEL
**错误 2: "timeout"**
```bash检查代理地址配置是否正确
检查代理地址配置是否正确
cat ~/.proxychains/proxychains.conf | grep -A 2 "[ProxyList]"
cat ~/.proxychains/proxychains.conf | grep -A 2 "[ProxyList]"
修改超时时间(在配置文件中)
修改超时时间(在配置文件中)
tcp_connect_time_out 15000
tcp_read_time_out 30000
**错误 3: "can't read configuration file"**
```bashtcp_connect_time_out 15000
tcp_read_time_out 30000
**错误 3: "无法读取配置文件"**
```bash创建配置文件
创建配置文件
mkdir -p ~/.proxychains
cp /etc/proxychains.conf ~/.proxychains/proxychains.conf
mkdir -p ~/.proxychains
cp /etc/proxychains.conf ~/.proxychains/proxychains.conf
然后编辑配置
然后编辑配置
undefinedundefined高级用法
高级用法
多代理链
多代理链
conf
undefinedconf
undefined~/.proxychains/proxychains.conf
~/.proxychains/proxychains.conf
strict_chain # 按顺序使用所有代理
[ProxyList]
http 127.0.0.1 9910
socks5 127.0.0.1 1080
undefinedstrict_chain # 按顺序使用所有代理
[ProxyList]
http 127.0.0.1 9910
socks5 127.0.0.1 1080
undefined动态代理链
动态代理链
conf
dynamic_chain # 自动跳过死代理
[ProxyList]
http 127.0.0.1 9910
http 127.0.0.1 8080
socks5 127.0.0.1 1080conf
dynamic_chain # 自动跳过死代理
[ProxyList]
http 127.0.0.1 9910
http 127.0.0.1 8080
socks5 127.0.0.1 1080随机代理链
随机代理链
conf
random_chain
chain_len = 2 # 随机选择 2 个代理
[ProxyList]
http 127.0.0.1 9910
socks5 127.0.0.1 1080
socks5 127.0.0.1 1081conf
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 服务器
自定义 DNS 服务器
bash
undefinedbash
undefined使用自定义 DNS 通过代理解析
使用自定义 DNS 通过代理解析
export PROXY_DNS_SERVER=8.8.8.8
proxychains4 curl https://example.com
undefinedexport PROXY_DNS_SERVER=8.8.8.8
proxychains4 curl https://example.com
undefined参考资源
参考资源
- 官方仓库: https://github.com/haad/proxychains
- 配置文件: (完整示例)
references/proxychains.conf - 故障排除:
references/troubleshooting.md - 命令速查:
references/quick-reference.md
- 官方仓库: https://github.com/haad/proxychains
- 配置文件: (完整示例)
references/proxychains.conf - 故障排除:
references/troubleshooting.md - 命令速查:
references/quick-reference.md
总结
总结
记住这些原则:
- ❌ 遇到网络错误 → ✅ 自动加上
proxychains4 - 🌐 访问国外资源 → ✅ 主动使用
proxychains4 - 🔧 代理也失败 → ✅ 提示用户检查代理服务
默认代理:
http://127.0.0.1:9910这个技能让 Claude 在遇到网络问题时自动使用代理,无需用户手动干预!
记住这些原则:
- ❌ 遇到网络错误 → ✅ 自动加上
proxychains4 - 🌐 访问国外资源 → ✅ 主动使用
proxychains4 - 🔧 代理也失败 → ✅ 提示用户检查代理服务
默认代理:
http://127.0.0.1:9910这个技能让 Claude 在遇到网络问题时自动使用代理,无需用户手动干预!