一、什么是 proxychains4?
proxychains4 是一个代理工具,可以强制任何程序通过代理访问网络,即使该程序本身不支持代理设置。
核心原理
程序 → proxychains4 拦截 → 代理服务器 → 目标网站
二、安装
# Ubuntu/Debian
apt update
apt install proxychains4 -y
# CentOS/RHEL
yum install proxychains4 -y
# macOS
brew install proxychains-ng
三、配置
1. 配置文件位置
/etc/proxychains4.conf # 系统级配置
~/.proxychains/proxychains.conf # 用户级配置
2. 基础配置示例
# 编辑配置文件
vim /etc/proxychains4.conf
# 找到 [ProxyList] 部分,添加你的代理:
[ProxyList]
socks5 127.0.0.1 1080 # SOCKS5 代理
# http 127.0.0.1 8118 # HTTP 代理
# socks4 127.0.0.1 9050 # SOCKS4 代理
3. 常用配置选项
# 动态链(默认)- 代理按顺序使用,失败则跳过
dynamic_chain
# 严格链 - 必须按顺序全部通过
# strict_chain
# 随机链 - 随机选择代理
# random_chain
# DNS 代理(解决 DNS 污染)
proxy_dns
四、基本使用
命令格式
proxychains4 <你的命令>
# 或
proxychains4 <你的命令>
实际示例
1. 测试代理是否工作
# 查看当前 IP(应该显示代理服务器 IP)
proxychains4 curl https://ip.sb
proxychains4 curl https://httpbin.org/ip
2. Docker 拉取镜像
# 启动 SSH 代理
ssh -D 1080 -N -f user@your-server.com
# 通过代理拉取镜像
proxychains4 docker pull nginx:latest
proxychains4 docker pull ubuntu:22.04
3. Git 操作
# 克隆 GitHub 仓库
proxychains4 git clone https://github.com/xxx/xxx.git
# 推送代码
proxychains4 git push origin main
4. wget/curl 下载
# 下载文件
proxychains4 wget https://example.com/file.zip
proxychains4 curl -O https://example.com/file.zip
5. apt 包管理
# 更新软件源
proxychains4 apt update
# 安装软件
proxychains4 apt install htop -y
五、实战场景
场景1:通过跳板机拉取 Docker 镜像
# 1. 建立 SSH 隧道
ssh -D 1080 -N -f ubuntu@43.130.44.47
# 2. 测试连接
proxychains4 curl https://registry-1.docker.io/v2/
# 3. 拉取镜像
proxychains4 docker pull weishaw/sub2api:latest
# 4. 正常启动(不走代理)
docker compose up -d
场景2:访问内网资源
# 通过跳板机访问内网服务
ssh -D 1080 -N -f user@jump-server.com
proxychains4 curl http://10.0.0.100:8080/api
场景3:科学上网
# 配合 SS/SSR/V2Ray 使用
# 配置本地代理端口 1080
proxychains4 firefox # 让浏览器走代理
proxychains4 telegram # 让 Telegram 走代理
六、高级技巧
1. 代理链(多级代理)
# 配置多个代理
[ProxyList]
socks5 127.0.0.1 1080
http 192.168.1.100 3128
socks4 10.0.0.1 9050
2. 排除特定 IP
# 在配置文件中添加
localnet 127.0.0.0/255.0.0.0
localnet 192.168.0.0/255.255.0.0
3. 使用别名简化命令
# 添加到 ~/.bashrc
alias pc='proxychains4'
alias docker-pull='proxychains4 docker pull'
# 使用
pc curl https://google.com
docker-pull ubuntu:latest
七、常见问题解决
问题1:DNS 解析失败
# 启用 proxy_dns
vim /etc/proxychains4.conf
# 取消注释:proxy_dns
问题2:某些程序不走代理
# 使用完整路径
proxychains4 /usr/bin/docker pull nginx
# 或检查程序是否被编译为静态链接
ldd /usr/bin/docker
问题3:代理连接超时
# 增加超时时间
vim /etc/proxychains4.conf
# 修改:tcp_read_time_out 15000
# tcp_connect_time_out 8000
八、对比其他方案
| 方案 | 优点 | 缺点 |
|---|---|---|
| proxychains4 | 强制代理、无需改程序配置 | 性能略有损失 |
| 环境变量 | 简单快速 | 只支持 HTTP/HTTPS 代理 |
| Docker 配置 | 永久生效 | 需要重启 Docker |
| 系统代理 | 全局生效 | 影响所有程序 |
九、快速参考卡片
# 安装
apt install proxychains4 -y
# 配置(添加代理)
echo "socks5 127.0.0.1 1080" >> /etc/proxychains4.conf
# 测试
proxychains4 curl ip.sb
# 常用命令
proxychains4 docker pull <镜像>
proxychains4 git clone <仓库>
proxychains4 curl <网址>
proxychains4 wget <文件>
# 启动 SSH 代理配合使用
ssh -D 1080 -N -f user@server
总结
proxychains4 的核心价值:
- ✅ 通用性:任何程序都能用
- ✅ 无侵入:不需要修改程序配置
- ✅ 灵活性:支持多种代理协议
- ✅ 按需使用:只在需要时启用
一句话记住: 想让不支持代理的程序走代理,就用 proxychains4 你的命令。
本文由 小马哥 创作,采用 知识共享署名4.0 国际许可协议进行许可
本站文章除注明转载/出处外,均为本站原创或翻译,转载前请务必署名
最后编辑时间为:
2026/04/16 01:21