{"repo":"zfl9/ipt2socks","free":true,"listed":false,"github":"https://github.com/zfl9/ipt2socks","clone":"git clone https://github.com/zfl9/ipt2socks.git","description":"将 iptables/nftables 传入的透明代理流量转为 socks5 流量的实用工具","language":"C","stars":511,"topics":["iptables","redirect","tproxy","socks5","redsocks","nftables","linux","proxy","transparent-proxy","relay"],"license":"AGPL-3.0","category":"networking-infra","readme_excerpt":"ipt2socks(libev) 类似 redsocks、redsocks2 的实用工具，将 iptables/nftables (REDIRECT/TPROXY) 传入的流量转为 socks5(tcp/udp) 流量，除此之外不提供任何不必要的功能。 用例 1：配合透明代理使用（如 ss-tproxy），为那些只支持 socks5 传入协议的“代理进程”提供 iptables/nftables 透明代理 传入协议的支持，比如 ss/ssr 的 ss-local/ssr-local、v2ray 的 socks5 传入协议、trojan 的 socks5 客户端等等。 用例 2：将透明代理主机上的“代理进程”分离出来，因为“代理”通常涉及加解密等耗性能的操作，如果透明代理主机性能比较弱，最好将“代理进程”放到另外一个性能更强的局域网主机去运行（提供 socks5 传入），然后在透明代理主机上运行 ipt2socks 来对接这个“代理”。ipt2socks 在设计和编码上特意考虑了性能，尽可能实现零拷贝，降低开销。 简要说明 - 使用 splice() 系统调用，理想情况下可实现零拷贝。 - IPv4 和 IPv6 双栈支持，支持 纯 TPROXY 透明代理模式。 - TCP 透明代理提供 REDIRECT、TPROXY 两种方式，UDP 透明代理为 TPROXY 方式。 - UDP 透明代理支持 Full Cone NAT，前提是后端的 socks5 服务器支持 Full Cone NAT。 - 多线程 + SO REUSEPORT 端口重用，每个线程运行各自独立的事件循环，性能提升显著。 如何编译 为了方便使用，releases 页面发布了 linux 下常见架构的 musl 静态链接二进制。 ipt2socks 默认安装到 /usr/local/bin/ipt2socks ，可安装到其它目录，如 make install DESTDIR=/opt/local/bin 。 交叉编译时只需指定 CC 变量，如 make CC=aarch64-linux-gnu-gcc （若报错或异常，请执行 make clean ，再试）。 如何运行 ipt2socks 启动后，配置相应 iptables/nftables 规则即可，关于 iptables 规则，可以看看： - https://github.com/zfl9/ss-tproxy - https://gist.github.com/zfl9/d52482118f38ce2c16195583dffc44d2 全部参数 - -s 选项：socks5 服务器的 IP 地址，默认为 127.0.0.1。 - -p 选项：socks5 服务器的监听端口，默认为 1080。 - -a 选项：socks5 代理认证的用户（若需要认证）。 - -k 选项：socks5 代理认证的密码（若需要认证）。 - -b 选项：本地 IPv4 监听地址，默认为 127.0.0.1。 - -B 选项：本地 IPv6 监听地址，默认为 ::1。 - -l 选项：本地 IPv4/6 监听端口，默认为 60080。 - -S 选项：与 socks5 服务器建立 TCP 连接的超时参数。 - -c 选项：UDP 上下文的最大数量，默认为 256 个。 - -o 选项：UDP 上下文的超时时间，默认为 60 秒。 - -j 选项：需要启动的工作线程数量，默认为单个线程。 - -n 选项：设置 ipt2socks 进程可打开的文件描述符限制","default_branch":null,"files":null,"tree":[],"storefront":"/r/zfl9","claimed":false,"request_supported":{"post":"https://gitbuyer.com/r/zfl9/ipt2socks/request-supported","requests":0},"note":"indexed from public GitHub; nothing is for sale on this page. Clone it from GitHub. Paid listings live at /search."}