如何使用iptables设置TCP/UDP透明代理

💡 原文英文,约1700词,阅读约需7分钟。
📝

内容提要

本文讲解如何在Linux上使用iptables的TPROXY功能实现透明代理TCP和UDP流量。首先,设置支持UDP Associate的SOCKS5代理服务器。接着,使用如redsocks或hev-socks5-tproxy等软件,将SOCKS5代理转换为支持TCP和UDP的透明代理。通过配置iptables和iproute2,可以代理来自其他设备或本地的流量。需要注意的是,ufw防火墙可能会阻止TPROXY数据包,需进行额外配置。此外,还可以通过uid-owner等选项为特定应用程序设置代理。

🎯

关键要点

  • 本文讲解如何在Linux上使用iptables的TPROXY功能实现透明代理TCP和UDP流量。
  • 首先,设置支持UDP Associate的SOCKS5代理服务器。
  • SOCKS5支持UDP Associate功能,可以代理UDP流量。
  • 透明代理软件包括redsocks和hev-socks5-tproxy。
  • 使用iptables和iproute2配置代理来自其他设备的流量。
  • ufw防火墙可能会阻止TPROXY数据包,需要额外配置。
  • 可以通过uid-owner等选项为特定应用程序设置代理。
  • TPROXY目标仅允许在mangle表的PREROUTING链中使用。
  • 需要小心避免创建死循环,通常通过过滤目标IP或使用iptables匹配来实现。
  • 可以为本地生成的流量分配私有IP并应用代理。
  • iptables支持通过uid-owner、gid-owner或cgroup匹配特定应用程序的流量。
➡️

继续阅读