This commit is contained in:
starry
2025-12-31 06:02:09 +08:00
committed by GitHub
parent 82a700508e
commit a9fdfbb08c
9 changed files with 15 additions and 6259 deletions

View File

@@ -19,7 +19,6 @@ GOOS=linux GOARCH=amd64 CGO_ENABLED=0 go build -ldflags="-s -w" -o l2tp
$env:GOOS="linux"; $env:GOARCH="amd64"; $env:CGO_ENABLED="0"; go build -ldflags="-s -w" -o l2tp
```
### 卸载
```
# 停止服务
@@ -41,65 +40,4 @@ ps aux | egrep 'xl2tpd|strongswan|pptpd' | grep -v grep
3x-ui则使用`tunnel`入站,打开`Follow Redirect`,打开`Sockopt`中的`TProxy`然后同样的使用源IP路由到指定出站。
**然后使用`iptables`在系统层面拦截`10.10.10.0/24`网段访问公网的流量,交给 Sing-box 处理,按照以下步骤配置**
1配置 Linux 内核策略路由,将打标流量重定向到本地。
```
# 配置策略路由:凡是防火墙标记 (fwmark) 为 1 的流量,查路由表 100
/bin/ip rule add fwmark 1 table 100
# 配置路由表 100将所有流量重定向到本地回环接口
/bin/ip route add local 0.0.0.0/0 dev lo table 100
```
2新建一个链 SINGBOX
```
iptables -t mangle -N SINGBOX
```
3绕过局域网和私有地址不代理内部通信
```
iptables -t mangle -A SINGBOX -d 0.0.0.0/8 -j RETURN
iptables -t mangle -A SINGBOX -d 10.0.0.0/8 -j RETURN
iptables -t mangle -A SINGBOX -d 127.0.0.0/8 -j RETURN
iptables -t mangle -A SINGBOX -d 169.254.0.0/16 -j RETURN
iptables -t mangle -A SINGBOX -d 172.16.0.0/12 -j RETURN
iptables -t mangle -A SINGBOX -d 192.168.0.0/16 -j RETURN
iptables -t mangle -A SINGBOX -d 224.0.0.0/4 -j RETURN
iptables -t mangle -A SINGBOX -d 240.0.0.0/4 -j RETURN
```
4核心拦截规则仅拦截来自 L2TP 网段`10.10.10.0/24`的流量TProxy 端口为`12345`
```
iptables -t mangle -A SINGBOX -s 10.10.10.0/24 -p tcp -j TPROXY --on-port 12345 --tproxy-mark 1
iptables -t mangle -A SINGBOX -s 10.10.10.0/24 -p udp -j TPROXY --on-port 12345 --tproxy-mark 1
```
5应用到 PREROUTING 链
```
iptables -t mangle -A PREROUTING -j SINGBOX
```
6不允许公网访问透明代理端口
```
iptables -I INPUT -p tcp --dport 12345 -j DROP
iptables -I INPUT -p udp --dport 12345 -j DROP
```
#### 清理流量规则(按顺序执行)
```
# 清理 iptables 规则
iptables -t mangle -D PREROUTING -j SINGBOX
iptables -t mangle -F SINGBOX
iptables -t mangle -X SINGBOX
```
```
# 清理策略路由和路由表
/bin/ip route del local 0.0.0.0/0 dev lo table 100
/bin/ip rule del fwmark 1 table 100
```
```
# 放行透明代理端口
iptables -D INPUT -p tcp --dport 12345 -j DROP
iptables -D INPUT -p udp --dport 12345 -j DROP
```
然后使用`iptables`在系统层面拦截`10.10.10.0/24`网段访问公网的流量,交给 Sing-box 处理