proxychains4 是一个强大的 Linux/UNIX 下的代理工具,可以将任何 TCP 连接(包括没有内置代理支持的程序)通过一个或多个代理服务器(SOCKS4、SOCKS5、HTTP CONNECT)进行转发,实现“全局代理”效果。
核心功能
- 代理类型支持:支持 SOCKS4、SOCKS5、HTTP CONNECT 代理,支持基本认证(用户名/密码)。
- 代理链(Proxy Chain):可将多个代理服务器串联,形成“代理链”,提升匿名性与绕过限制能力。
- 多种链路模式:
- dynamic_chain:按列表顺序使用代理,遇到不可用代理自动跳过,适合稳定性需求。
- strict_chain:严格按列表顺序使用代理,链中任意代理不可用则连接失败,适合需要确定链路的场景。
- random_chain:每次随机选择代理链,提高匿名性。
- round-robin_chain:轮询使用代理,实现负载均衡。
- DNS 代理:可将 DNS 请求通过代理链转发,防止 DNS 泄漏,提升隐私保护。
- 适用范围广:可“代理”任何 TCP 客户端程序,包括 telnet、curl、nmap、firefox 等,不依赖程序本身是否支持代理。
配置与使用
1. 安装
sudo apt install proxychains4
2. 配置文件
- 主要配置文件一般为
/etc/proxychains4.conf或/etc/proxychains.conf。 - 需要编辑该文件,添加代理服务器信息,并选择合适的链路模式。
3. 配置示例
# 选择链路模式(只保留一个未注释项)
dynamic_chain
#strict_chain
#random_chain
# 代理 DNS 请求
proxy_dns
# 代理服务器列表(支持 socks4、socks5、http)
[ProxyList]
socks5 127.0.0.1 1080
http 192.168.1.100 8080 user pass
socks4 10.0.0.2 1080
- 每一行格式为:
类型 IP 端口 [用户名 密码]。
4. 使用方法
- 只需在命令前加
proxychains4即可让该程序走代理:
proxychains4 curl ipinfo.io
proxychains4 firefox
proxychains4 nmap -sT -p 80 example.com
- 可通过
-f参数指定自定义配置文件:
proxychains4 -f /path/to/your.conf curl ipinfo.io
- 检查代理是否生效:先运行
curl ipinfo.io,再用proxychains4 curl ipinfo.io,对比 IP 是否变化。
进阶特性
- 混合代理类型:代理链中可混合不同类型的代理(如 socks5 → http → socks4)。
- 端口扫描:配合 nmap 等工具可实现匿名端口扫描。
- 自定义超时:可在配置文件中设置 TCP 连接和读取超时时间,提高稳定性。
- 支持服务器端程序:不仅支持客户端程序,也可用于 squid、sendmail 等服务器端程序。
注意事项
- 仅支持 TCP 流量,不支持 UDP。
- 运行某些 suid/sgid 程序(如 ssh)时,需以 root 权限运行 proxychains4。
- 代理链中任意一个代理失效,strict_chain 模式下会导致连接失败,dynamic_chain 模式下会自动跳过。
典型应用场景
- 提升依赖获取速度。
- 提升匿名性,隐藏真实 IP。
- 让不支持代理的程序也能通过代理访问外网。
- 多级代理转发,提升安全性。