做企业网站设计方案,jsp网站设计教学做一体化教程,wordpress安全设置,wordpress回帖可见TPROXY 是一个 Linux 内核模块#xff0c;在 Linux 2.6.28 后进入官方内核。
1 安装 tproxy 相关依赖
参考ss-tproxy 的安装依赖。
bash
ss-tproxy 使用了 bash 的一些语法特性#xff0c;比如 shell 数组#xff0c;因此必须用 bash 解释器执行。大多数发行版已经自带了…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-statichttps://packages.debian.org/sid/bash-staticcurl
请检查 curl 是否支持 HTTPS 协议使用 curl --version 可查看Protocols
apt -y install curlipset
apt -y install ipsetTPROXY
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_TPROXYiproute2
大部分发行版都自带了 iproute2可以运行一下 ip addr 命令如果成功打印了网络接口的 ip那就是已安装。
apt -y install iproute2dnsmasq
apt -y install dnsmasqchinadns-ng
chinadns-ng 是用 C 语言编写的另一个 chinadns修复若干问题优化了性能。
可以直接在 releases 页面下载编译好的二进制文件。然后复制到/usr/local/bin参考命令 cp -af xxx /usr/local/bin/xxx
https://github.com/zfl9/chinadns-ngdns2tcp
dns2tcp 是用 C 语言写的小工具专做 dns udp2tcp 转换。
可以直接在 releases 页面下载编译好的二进制文件。然后复制到/usr/local/bin参考命令 cp -af xxx /usr/local/bin/xxxhttps://github.com/zfl9/dns2tcpipt2socks
ipt2socks 是用 C 语言写的小工具专做 iptables-to-socks5 转换。
可以直接在 releases 页面下载编译好的二进制文件。然后复制到/usr/local/bin参考命令 cp -af ipt2socks /usr/local/bin/ipt2socks
https://github.com/zfl9/ipt2socks用systemd运行Trojan服务trojan.service /etc/systemd/system/trojan.service
[Unit]
Descriptiontrojan-service[Service]
ExecStart/usr/bin/trojan /etc/trojan/config.json
Restarton-failure
RestartSec60
SyslogIdentifiertrojan-service
Userroot[Install]
WantedBymulti-user.target
2 配置SOCKS5 服务
可以采用一些工具如果你有云服务器可以在云服务部署SOCKS5通过云服务器达到保护隐私的目的。例如采用这个软件: https://p4gefau1t.github.io/trojan-go更详细我就不说了免得文章被屏蔽
3 用ss-TPROXY 普通代理client 实现的是 http、socks5 传入协议。透明代理client 实现的是 透明代理 传入协议。如果 client 端只支持 socks5 传入不支持透明代理传入还能实现透明代理吗当然可以我们可以运行 ipt2socks实现TCP 支持 TPROXY/REDIRECT 传入UDP 支持 TPROXY 传入。ipt2socks 是【https://github.com/zfl9】编写的一个简单 C 程序
搭配 TPROXY支持 TCP 和 UDP 协议的透明代理。
我采用了工具ss-tproxy
获取
git clone https://github.com/zfl9/ss-tproxy
cd ss-tproxy
chmod x ss-tproxy安装
cp -af ss-tproxy /usr/local/bin
mkdir -p /etc/ss-tproxy
cp -af *.conf *.txt *.ext /etc/ss-tproxy
cp -af ss-tproxy.service /etc/systemd/system # 可选安装 service 文件卸载
# 停止脚本 (v4.7版本开始)
ss-tproxy stop
ss-tproxy flush-stoprule
# 删除文件
rm -fr /usr/local/bin/ss-tproxy # 删除脚本
rm -fr /etc/ss-tproxy # 删除配置(做好备份)
rm -fr /etc/systemd/system/ss-tproxy.service # service文件脚本开机自启
将 ss-tproxy.service 文件放到 /etc/systemd/system/ss-tproxy.service执行
systemctl daemon-reload
systemctl enable ss-tproxy配置文件
首先是 第二节的 2 配置SOCKS5 服务 更详细我就不说了免得文章被屏蔽 其次 ss-TPROXY 的配置参考 https://github.com/zfl9/ss-tproxy 的代理软件配置说实话难度比较大需要具备看懂shell脚本的能力。
我备份一下我的配置在 https://gitee.com/hiyanyx/study-transparent-proxy-v1-bash 。其实整体的难度偏大初学者就不要看了。
异常情况1内网主机无法访问白名单
ss-tproxy 主机上都正常但其他主机上黑名单正常白名单不正常如百度无法访问。请将 ipts_set_snatIPv4、ipts_set_snat6IPv6设为 true。并检查 ss-tproxy 主机的 iptables 规则有些系统会将 FORWARD 链的默认策略设为 DROP如果有这种情况请进行合理的调整如果不知道怎么设置可以参照下面的步骤配置 pre_start 钩子函数。
代理异常时应留意系统是否预设了某些 iptables 规则、是否与 ss-tproxy 冲突
比如你可以通过 pre_start 钩子函数在 start 之前将已有的 iptables 规则清空并将默认策略设为 ACCEPT。编辑 ss-tproxy.conf添加如下内容这些命令会在 ss-tproxy start 之前执行
reset_ipt() {local table_chains(raw PREROUTING OUTPUTmangle PREROUTING INPUT FORWARD OUTPUT POSTROUTINGnat PREROUTING INPUT OUTPUT POSTROUTINGfilter INPUT FORWARD OUTPUT)for ((i 0; i ${#table_chains[]}; i 2)); dolocal table${table_chains[i]}local chains${table_chains[i 1]}$1 -t $table -F$1 -t $table -Xfor chain in $chains; do$1 -t $table -P $chain ACCEPTdonedone
}pre_start() {is_true $ipv4 reset_ipt iptablesis_true $ipv6 reset_ipt ip6tables
}资源
https://gitee.com/hiyanyx/study-transparent-proxy-v1-bash