Skip to content

安装依赖

zfl9 edited this page Aug 9, 2024 · 5 revisions

并不是这里列出的所有依赖都要安装,具体需要哪些依赖取决于 ss-tproxy.conf 配置,在 README 中也有说明。

bash

ss-tproxy 使用了 bash 的一些语法特性,比如 shell 数组,因此必须用 bash 解释器执行。

大多数发行版已经自带了 bash;如果没有,请先安装一个 bash,比如那些基于 busybox 的系统。

如果可以通过包管理器安装 bash,那最好;如果不行,可以看看上面两个链接,取出里面的 bash 二进制文件。

curl

请检查 curl 是否支持 HTTPS 协议,使用 curl --version 可查看(Protocols)

# CentOS
yum -y install curl

# ArchLinux
pacman -S curl

ipset

# CentOS
yum -y install ipset

# ArchLinux
pacman -S 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 xt_TPROXY

iproute2

大部分发行版都自带了 iproute2,可以运行一下 ip addr 命令,如果成功打印了网络接口的 ip,那就是已安装。

# CentOS
yum -y install iproute

# ArchLinux
pacman -S iproute2

dnsmasq

ss-tproxy v4.8+ 不再需要此依赖。

对于 global/gfwlist 模式,需要确保该 dnsmasq 支持 --ipset 选项。

# CentOS
yum -y install dnsmasq

# ArchLinux
pacman -S dnsmasq

chinadns-ng

chinadns-ng 是用 C 语言编写的另一个 chinadns,修复若干问题,优化了性能。

如果不想编译,可以直接在 releases 页面下载编译好的二进制文件。

git clone https://github.com/zfl9/chinadns-ng
cd chinadns-ng
#
# 老版本
# make && sudo make install
#
# 新版本
# 不建议自己编译,请前往 releases 页面下载预编译的可执行文件
# 如果确实愿意折腾,请查看 chinadns-ng README 中的编译说明

dns2tcp

ss-tproxy v4.8+ 不再需要此依赖。

dns2tcp 是用 C 语言写的小工具,专做 dns udp2tcp 转换。

如果不想编译,可以直接在 releases 页面下载编译好的二进制文件。

git clone https://github.com/zfl9/dns2tcp
cd dns2tcp
make && sudo make install

ipt2socks

ipt2socks 是用 C 语言写的小工具,专做 iptables-to-socks5 转换。

如果不想编译,可以直接在 releases 页面下载编译好的二进制文件。

git clone https://github.com/zfl9/ipt2socks
cd ipt2socks
make && sudo make install
Clone this wiki locally