20241213:修订ipt2socks 需要很多文件描述符,需要增加文件描述符数量,linux默认是1024,导致并发性能很差。
TPROXY 是一个 Linux 内核模块,在 Linux 2.6.28 后进入官方内核。
1 安装 tproxy 相关依赖
参考ss-tproxy 的安装依赖。
- bash
ss-tproxy 使用了 bash 的一些语法特性,比如 shell 数组,因此必须用 bash 解释器执行。大多数发行版已经自带了 bash;如果没有,请先安装一个 bash,比如那些基于 busybox 的系统。如果可以通过包管理器安装 bash,那最好;如果不行,可以看看上面两个链接,取出里面的 bash 二进制文件。
https://github.com/robxu9/bash-static
https://packages.debian.org/sid/bash-static
- curl
请检查 curl 是否支持 HTTPS 协议,使用 curl --version 可查看(Protocols)
apt -y install curl
- ipset
apt -y install ipset
- TPROXY
TPROXY 是一个 Linux 内核模块,在 Linux 2.6.28 后进入官方内核。一般正常的发行版都没有裁剪 TPROXY 模块,TPROXY 模块缺失问题主要出现在无线路由固件上(某些精简型发行版也会去掉 TPROXY 模块,比如 Alpine)。使用以下方法可以检测当前内核是否包含 TPROXY 模块。
# 查找 TPROXY 模块
find /lib/modules/$(uname -r) -type f -name 'xt_TPROXY.ko*'
# 正常情况下的输出
/lib/modules/4.16.8-1-ARCH/kernel/net/netfilter/xt_TPROXY.ko.xz
# 尝试手动加载模块
modprobe