proxychains 是一个用来强制通过代理服务器(如 SOCKS 或 HTTP)来发送所有应用程序流量的工具。它可以让你将任何没有内建代理支持的应用程序通过代理进行连接,从而实现匿名访问或绕过网络限制。

安装 proxychains

在基于 Debian 或 Ubuntu 的系统中,使用以下命令安装:

sudo apt update
sudo apt install proxychains

对于基于 RedHat 的系统(如 CentOS 或 Fedora),可以使用:

sudo yum install proxychains

或者,使用 dnf(对于 Fedora):

sudo dnf install proxychains

配置 proxychains

proxychains 的配置文件位于 /etc/proxychains.conf。你可以根据需求修改这个文件来设置代理类型和地址。配置文件中包含了几个重要的部分,以下是常见的配置方法。

1. 打开配置文件

编辑 /etc/proxychains.conf

sudo nano /etc/proxychains.conf

2. 配置代理

找到类似下面的部分,配置你要使用的代理类型和地址。

# ProxyList format:
#    type  host  port [user pass]
#    example:
#    socks5  127.0.0.1  9050
#    http    192.168.1.1 8080

你可以配置 SOCKS5 或 HTTP 代理。常见的代理配置如下:

  • SOCKS5 代理socks5 127.0.0.1 1080
  • HTTP 代理http 192.168.1.1 8080

3. 修改代理链方式(可选)

proxychains 支持两种代理链模式:

  • 动态链模式(dynamic_chain):代理会按顺序尝试,直到一个代理不可用时会跳到下一个代理。
  • 严格链模式(strict_chain):代理链中的所有代理必须正常工作,否则连接会失败。

配置文件中可以通过修改以下行来选择:

# dynamic_chain
# strict_chain

4. 使用代理

配置好 proxychains 后,可以通过以下命令使用代理运行一个程序:

proxychains <command>

例如,要通过代理使用 curl 获取网站内容:

proxychains curl http://example.com

如果你想通过代理运行一个图形化程序,可以像这样运行:

proxychains firefox

高级配置选项

  1. 自定义日志文件:你可以设置代理链的日志输出到指定文件。配置文件中有如下行: # Uncomment this to log all connections made through proxychains # proxy_dns
  2. 代理 DNS 解析:默认情况下,DNS 请求不会通过代理。如果希望 DNS 解析也通过代理,你可以在配置文件中启用 proxy_dns 选项: proxy_dns

示例

假设你有以下两个代理:

  • SOCKS5 代理:127.0.0.1:1080
  • HTTP 代理:192.168.1.1:8080

你的配置文件应如下:

strict_chain
proxy_dns

[ProxyList]
# 使用 SOCKS5 代理
socks5 127.0.0.1 1080
# 使用 HTTP 代理
http 192.168.1.1 8080

这样,proxychains 会按顺序使用这些代理。

注意事项

  • 使用代理可能会影响网络性能,因此请根据网络环境选择合适的代理类型(SOCKS5 比 HTTP 更加灵活和匿名)。
  • proxychains 会将所有流量通过代理,包括 DNS 查询,因此可以更好地实现隐私保护。
  • 请确保你使用的代理服务器是安全和可靠的,以避免泄露隐私信息。

proxychains 是一个强大的工具,适用于需要隐藏身份或绕过防火墙的场景。