Linux · 2024-03-25

iptables 转发全局流量到Socks5

要将 iptables 配置为将全局流量转发到 Socks5,可以按照以下步骤进行操作。

  1. 首先确保已经安装了 iptables 工具。如果没有安装,可以使用以下命令来安装:
sudo apt-get install iptables
  1. 创建一个新的 iptables 规则集并设置默认动作为 ACCEPT(接受)所有传入连接:
sudo iptables -F INPUT
sudo iptables -P INPUT ACCEPT
  1. 添加一条规则,将所有传入连接重定向到本地的 Socks5 服务器上:
sudo iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-ports <socks5_server_port>

其中 <socks5_server_port> 需要替换成你的 Socks5 服务器正在运行的端口号。

  1. 最后,保存这些规则并应用更改:
    sudo sh -c "echo 'net.ipv4.ip_forward=1' >> /etc/sysctl.conf"
    sudo sysctl -p

    现在,当有任何 TCP 数据包通过网络时,都会被重定向到指定的 Socks5 服务器上。

方法2

  1. 同上, 安装iptables
  2. 创建iptables_forward文件
    vim /etc/network/if-up.d/iptables_forward
    输入以下内容

    #!/bin/sh
    echo "1" > /proc/sys/net/ipv4/ip_forward
    iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to <socks5_server>:80
    iptables -t nat -A PREROUTING -p udp --dport 80 -j REDIRECT --to <socks5_server>:80
    iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
  3. 设置文件可执行权限
    chmod +x /etc/network/if-up.d/iptables_forward
  4. 最后,重新加载网络配置以应用更改
    sudo service networking restart

现在,所有从 Debian 主机传出的 TCP 或 UDP 连接都会被自动转发到指定的 Socks5 服务器。