本文目录导读:

Proxychains 是一个强制任何程序通过代理上网的工具,支持多种代理协议(HTTP、SOCKS4、SOCKS5)以及链式代理(多级代理串联)。
以下是配置代理链的详细步骤和常见用法:
安装
- Linux (Debian/Ubuntu):
sudo apt update && sudo apt install proxychains4
- Linux (CentOS/RHEL/Fedora):
sudo yum install proxychains-ng # 或 dnf install proxychains-ng
- macOS:
brew install proxychains-ng
查找并编辑配置文件
主配置文件通常位于 /etc/proxychains.conf 或 /etc/proxychains4.conf。
建议先备份原始文件:
sudo cp /etc/proxychains.conf /etc/proxychains.conf.bak sudo nano /etc/proxychains.conf
关键配置项说明
在配置文件中,你需要关注以下几个部分:
a. 动态链 vs 严格链 (Proxy Chain Type)
根据 /etc/proxychains.conf 中的说明,取消注释你需要的模式。
-
dynamic_chain (推荐):
- 按顺序使用代理列表中的代理。
- 如果某个代理连不上,会自动跳过,使用下一个。
- 优点:容错性强,适合有多个备用代理的情况下。
- 配置:取消
dynamic_chain的注释,注释掉strict_chain。
-
strict_chain:
- 严格按照列表顺序使用代理。
- 如果某个代理连不上,整个 chain 会报错停止。
- 优点:确保所有流量都经过指定的每一跳(多级代理必须打通)。
b. 随机链 (random_chain)
- 每次连接从列表里随机选一个代理(不是链式,而是单次随机)。
- 适合做 IP 轮换,通常用于爬虫,但不是“链式”功能。
c. 代理列表 (Proxy List)
配置文件最底部有一个 [ProxyList] 部分,在这里填写你的代理服务器地址。
格式如下:
[ProxyList]
# 格式: 协议 主机IP 端口 用户名 密码 (后两个可选)
socks5 127.0.0.1 1080
socks4 192.168.1.100 1080
http 192.168.1.200 3128
socks5 10.0.0.1 9050 username password # 需要认证的情况
注意:
- 配置链式代理:列表里的每一行代表一次跳转,程序会先连
socks5 127.0.0.1 1080,再接http 192.168.1.200 3128,最后访问目标。 - 注释:在行首加 可以禁用该代理。
基本用法
配置好后,在终端执行命令时,命令前面加上 proxychains4 或 proxychains(取决于系统安装版本)。
# 让 curl 通过代理链访问网页 proxychains4 curl http://ipinfo.io/ip # 让 nmap 扫描目标 proxychains4 nmap -sT target.com # 让 ssh 连接远程服务器 proxychains4 ssh user@target.com # 让 python 脚本走代理 proxychains4 python3 my_script.py
常见问题与解决方法
a. 无法连接?检查 DNS
默认情况下,proxychains 会尝试代理 DNS 请求。
-
问题:如果代理不支持 UDP DNS 或代理链路不通,DNS 解析会失败。
-
解决:在配置文件中找到
proxy_dns这一行,将其注释掉 (在行首加 )。# proxy_dns
这样 DNS 查询就使用本机网络解析,只有 TCP 流量走代理。
b. 显示 ERROR: ... Connection refused
- 检查你的代理服务器(如 Shadowsocks、HTTP 代理)是否正在本地运行?端口是否对得上?
- 如果使用严格链,确保所有代理都可用。
c. UDP 支持
Proxychains-ng 对 UDP 支持有限,一般只代理 TCP 流量,对于 UDP 应用(如某些游戏、DNS-over-UDP),可能无法正常工作。
d. 验证是否配置成功
让 curl 打印自己的公网 IP:
# 正常情况 curl ip.sb # 走代理后 proxychains4 curl ip.sb
如果输出的 IP 不同(变成代理服务器的 IP 或代理链出口的 IP),说明配置成功。
一个典型的配置示例
假设你本地运行了 SS/SSR/V2ray 等客户端,开启了 SOCKS5 代理在 0.0.1:1080,并且想通过它来转发所有流量:
-
编辑
/etc/proxychains.conf:- 取消
dynamic_chain前的注释。 - 注释掉
strict_chain。 - 注释掉
proxy_dns(如果遇到 DNS 问题)。
- 取消
-
编辑
[ProxyList]:[ProxyList] socks5 127.0.0.1 1080 -
使用:
proxychains4 firefox # 启动火狐(会走代理链) proxychains4 ping google.com # 注意 ping 走 ICMP 可能失败,可用 curl 测试
这样配置后,绝大部分命令行程序的网络请求都会变成: 程序 -> proxychains -> 本地 SOCKS5 代理 -> 远程代理服务器 -> 目标网站。
标签: 代理链配置