TRANSLATED CONTENT:
# 更新包列表
sudo apt update
# 安装 proxychains4
sudo apt install proxychains4
# 验证安装
proxychains4 --version
# 安装 EPEL 仓库
sudo yum install epel-release
# 安装 proxychains-ng
sudo yum install proxychains-ng
# 验证安装
proxychains4 --version
# 安装 proxychains-ng
sudo dnf install proxychains-ng
# 验证安装
proxychains4 --version
# 安装 proxychains-ng
sudo pacman -S proxychains-ng
# 验证安装
proxychains4 --version
# 安装依赖
sudo apt install build-essential git # Debian/Ubuntu
# 或
sudo yum install gcc git make # CentOS/RHEL
# 克隆仓库
git clone https://github.com/haad/proxychains.git
cd proxychains
# 编译安装
./configure --prefix=/usr --sysconfdir=/etc
make
sudo make install
sudo make install-config # 安装默认配置文件
# 验证安装
proxychains4 --version
# 使用 Homebrew 安装
brew install proxychains-ng
# 验证安装
proxychains4 --version
# 在 WSL 中安装(使用 Ubuntu 示例)
sudo apt update
sudo apt install proxychains4
# 验证安装
proxychains4 --version
Proxychains 按以下顺序查找配置文件:
${PROXYCHAINS_CONF_FILE} 环境变量指定的路径-f 参数指定的路径./proxychains.conf (当前目录)~/.proxychains/proxychains.conf (用户主目录) 推荐/etc/proxychains.conf (系统级)# 创建配置目录
mkdir -p ~/.proxychains
# 创建配置文件(针对 127.0.0.1:9910)
cat > ~/.proxychains/proxychains.conf << 'EOF'
# Proxychains 配置文件
# 代理地址:127.0.0.1:9910
# 代理链模式
strict_chain
# 代理 DNS 请求
proxy_dns
# DNS 设置
remote_dns_subnet 224
# 超时设置(毫秒)
tcp_read_time_out 15000
tcp_connect_time_out 8000
# 代理列表
[ProxyList]
http 127.0.0.1 9910
EOF
# 设置权限
chmod 644 ~/.proxychains/proxychains.conf
# 需要 root 权限
sudo cat > /etc/proxychains.conf << 'EOF'
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
# 设置权限
sudo chmod 644 /etc/proxychains.conf
在配置文件中只能选择一种模式:
# 严格按顺序使用所有代理
# 所有代理必须在线,任何一个失败则整个链失败
strict_chain
适用场景:
# 自动跳过离线代理
# 至少需要一个可用代理
dynamic_chain
适用场景:
# 从列表中随机选择代理
random_chain
chain_len = 2 # 随机链长度(可选)
适用场景:
# 通过代理服务器解析 DNS
proxy_dns
# DNS 解析使用的虚拟子网(1-255)
remote_dns_subnet 224
# 可选:自定义 DNS 服务器(通过环境变量)
# export PROXY_DNS_SERVER=8.8.8.8
# TCP 读取超时(毫秒)
tcp_read_time_out 15000 # 15秒
# TCP 连接超时(毫秒)
tcp_connect_time_out 8000 # 8秒
调优建议:
# 静默模式(不输出代理链信息)
quiet_mode
注意: 调试时应注释掉此选项以查看详细输出。
[ProxyList]
# 格式:type host port [username password]
# 不需要认证
http 127.0.0.1 9910
# 需要认证
http 127.0.0.1 8080 username password
# 不需要认证
socks4 127.0.0.1 1080
# SOCKS4 不支持用户认证
# 不需要认证
socks5 127.0.0.1 1080
# 需要认证
socks5 127.0.0.1 1080 username password
[ProxyList]
# 主代理
http 127.0.0.1 9910
# 备用代理(strict_chain 模式下会按顺序使用)
# 取消注释以启用
#http 127.0.0.1 8080
#socks5 127.0.0.1 1080
# 多级代理(流量经过多个代理)
strict_chain
[ProxyList]
http 127.0.0.1 9910
socks5 proxy2.example.com 1080
http proxy3.example.com 8080
# SOCKS5 代理(简化配置)
export PROXYCHAINS_SOCKS5_HOST=127.0.0.1
export PROXYCHAINS_SOCKS5_PORT=9910
proxychains4 curl https://github.com
# 指定配置文件
export PROXYCHAINS_CONF_FILE=~/.proxychains/custom.conf
proxychains4 command
# 自定义 DNS 服务器
export PROXY_DNS_SERVER=8.8.8.8
proxychains4 curl https://example.com
# 为不同场景创建不同配置文件
mkdir -p ~/.proxychains
# 国内代理配置
cat > ~/.proxychains/cn.conf << 'EOF'
strict_chain
proxy_dns
[ProxyList]
http 127.0.0.1 9910
EOF
# 国外代理配置
cat > ~/.proxychains/intl.conf << 'EOF'
strict_chain
proxy_dns
[ProxyList]
socks5 proxy.example.com 1080
EOF
# 使用特定配置
proxychains4 -f ~/.proxychains/cn.conf curl https://github.com
proxychains4 -f ~/.proxychains/intl.conf curl https://google.com
# 添加到 ~/.bashrc 或 ~/.zshrc
cat >> ~/.bashrc << 'EOF'
# Proxychains 别名
alias pc='proxychains4'
alias pccn='proxychains4 -f ~/.proxychains/cn.conf'
alias pcintl='proxychains4 -f ~/.proxychains/intl.conf'
# 常用命令别名
alias pcgit='proxychains4 git'
alias pcpip='proxychains4 pip'
alias pcnpm='proxychains4 npm'
alias pccurl='proxychains4 curl'
alias pcwget='proxychains4 wget'
alias pcssh='proxychains4 ssh'
EOF
# 重新加载配置
source ~/.bashrc
# 测试 proxychains 是否工作
proxychains4 curl https://ipinfo.io/json
# 应该显示代理服务器的 IP 地址,而不是本机 IP
# 不使用代理的 IP
curl https://ipinfo.io/json
# 使用代理的 IP(应该不同)
proxychains4 curl https://ipinfo.io/json
# 测试 DNS 解析
proxychains4 nslookup google.com
proxychains4 dig github.com
# 使用 proxyresolv 工具
proxyresolv google.com
# HTTP 请求
proxychains4 curl -I https://github.com
# HTTPS 请求
proxychains4 curl https://www.google.com
# SSH 连接(如果有测试服务器)
proxychains4 ssh user@example.com
# Git 克隆
proxychains4 git clone https://github.com/haad/proxychains.git /tmp/test-repo
# 假设 V2Ray HTTP 代理端口是 10809
# 更新 proxychains 配置
cat > ~/.proxychains/proxychains.conf << 'EOF'
strict_chain
proxy_dns
[ProxyList]
http 127.0.0.1 10809
EOF
# 假设 Clash HTTP 代理端口是 7890
# 更新 proxychains 配置
cat > ~/.proxychains/proxychains.conf << 'EOF'
strict_chain
proxy_dns
[ProxyList]
http 127.0.0.1 7890
EOF
# 假设 Shadowsocks SOCKS5 端口是 1080
# 更新 proxychains 配置
cat > ~/.proxychains/proxychains.conf << 'EOF'
strict_chain
proxy_dns
[ProxyList]
socks5 127.0.0.1 1080
EOF
# 创建 SSH 动态端口转发(SOCKS5)
ssh -fN -D 1080 user@remote-server
# 配置 proxychains 使用 SSH 隧道
cat > ~/.proxychains/proxychains.conf << 'EOF'
strict_chain
proxy_dns
[ProxyList]
socks5 127.0.0.1 1080
EOF
# 使用
proxychains4 curl https://example.com
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
strict_chain
proxy_dns
remote_dns_subnet 224
tcp_read_time_out 15000
tcp_connect_time_out 8000
[ProxyList]
socks5 127.0.0.1 1080
dynamic_chain
proxy_dns
remote_dns_subnet 224
tcp_read_time_out 15000
tcp_connect_time_out 8000
[ProxyList]
http 127.0.0.1 9910
http 127.0.0.1 8080
socks5 127.0.0.1 1080
strict_chain
proxy_dns
remote_dns_subnet 224
tcp_read_time_out 10000
tcp_connect_time_out 5000
quiet_mode
[ProxyList]
http 127.0.0.1 9910
不推荐全局使用,仅对特定用户/命令使用
# 创建启动脚本(示例)
cat > ~/start-with-proxy.sh << 'EOF'
#!/bin/bash
proxychains4 bash
EOF
chmod +x ~/start-with-proxy.sh
# Git 包装脚本
cat > ~/bin/git-proxy << 'EOF'
#!/bin/bash
proxychains4 git "$@"
EOF
chmod +x ~/bin/git-proxy
# 使用
git-proxy clone https://github.com/user/repo.git
如果遇到问题,使用此配置进行调试:
# 调试配置
strict_chain
proxy_dns
remote_dns_subnet 224
tcp_read_time_out 30000
tcp_connect_time_out 15000
# 注释掉 quiet_mode 以查看详细输出
[ProxyList]
http 127.0.0.1 9910
配置文件权限
chmod 644 ~/.proxychains/proxychains.conf
不要在配置文件中明文存储密码
定期更新 proxychains
sudo apt update && sudo apt upgrade proxychains4
验证代理服务器可信度
配置完成后:
quick-reference.md 了解常用命令troubleshooting.md 了解问题解决提示: 配置文件修改后立即生效,无需重启服务。