平台:树莓派3B+
系统:Ubuntu Mate18.04
详细操作见最后的参考链接
Part 1 安装tproxy所需依赖(根据运行提示安装)
ipset
sudo apt install ipset
chinadns
wget https://github.com/shadowsocks/ChinaDNS/releases/download/1.3.2/chinadns-1.3.2.tar.gz
tar xf chinadns-1.3.2.tar.gz
cd chinadns-1.3.2/
./configure
make && make install
Part2 安装tproxy
git clone https://github.com/zfl9/ss-tproxy
cd ss-tproxy
cp -af ss-tproxy /usr/local/bin
chmod 0755 /usr/local/bin/ss-tproxy
chown root:root /usr/local/bin/ss-tproxy
mkdir -m 0755 -p /etc/ss-tproxy
cp -af ss-tproxy.conf gfwlist.* chnroute.* /etc/ss-tproxy
chmod 0644 /etc/ss-tproxy/* && chown -R root:root /etc/ss-tproxy
Part3 修改配置文件
文件地址/etc/ss-tproxy/ss-tproxy.conf
model模式最简单修改为global
根据实际情况修改proxy配置段中代理软件的相关信息
proxy_server 用来填写服务器的地址(外网vps的地址)
proxy_dports 用来填写要放行的服务器端口
proxy_runcmd 是用来启动代理软件的命令,此命令不可以占用前台(意思是说这个命令必须能够立即返回),否则 ss-tproxy start 将被阻塞;proxy_kilcmd 是用来停止代理软件的命令。proxy_runcmd 和 proxy_kilcmd 的常见的写法有:
# ss-libev 透明代理
# 假设服务器信息如下:
# 服务器地址: ss.net
# 服务器端口: 8080
# 加密方式: aes-128-gcm
# 用户密码: passwd.ss.net
# 监听地址: 0.0.0.0
# 监听端口: 60080
# proxy_runcmd 如下:
(ss-redir -s ss.net -p 8080 -m aes-128-gcm -k passwd.ss.net -b 0.0.0.0 -l 60080 -u --reuse-port --no-delay --fast-open </dev/null &>>/var/log/ss-redir.log &)
# proxy_kilcmd 如下:
kill -9 $(pidof ss-redir)
PS:即将括号内的命令补全后代替(cmd…)
特别注意,ss-redir、ssr-redir 的监听地址必须要设置为 0.0.0.0(即 -b 0.0.0.0),不能为 127.0.0.1,也不能省略
ipts_non_snat 设为 true
Part 3 启动
ss-tproxy start
内网其他主机修改配置取消自动配置,手动添加ipv4 地址,前缀为255.255.255.0,网关和dns为树莓派地址例如192.168.8.170
参考链接:
https://www.zfl9.com/ss-redir.html