github.com/ipfans/trojan-go@v0.11.0/docs/content/advance/nat.md (about) 1 --- 2 title: "透明代理" 3 draft: false 4 weight: 11 5 --- 6 7 ### 注意,Trojan不完全支持这个特性(UDP) 8 9 Trojan-Go支持基于tproxy的透明TCP/UDP代理。 10 11 要开启透明代理模式,将一份正确的客户端配置(配置方式参见基本配置部分)其中的```run_type```修改为```nat```,并按照需求修改本地监听端口即可。 12 13 之后需要添加iptables规则。这里假定你的网关具有两个网卡,下面这份配置将其中一个网卡(局域网)的入站包转交给Trojan-Go,由Trojan-Go通过隧道,通过另一个网卡(互联网)发送到远端Trojan-Go服务器。你需要将下面的```$SERVER_IP```,```$TROJAN_GO_PORT```,```$INTERFACE```替换为自己的配置。 14 15 ```shell 16 # 新建TROJAN_GO链 17 iptables -t mangle -N TROJAN_GO 18 19 # 绕过Trojan-Go服务器地址 20 iptables -t mangle -A TROJAN_GO -d $SERVER_IP -j RETURN 21 22 # 绕过私有地址 23 iptables -t mangle -A TROJAN_GO -d 0.0.0.0/8 -j RETURN 24 iptables -t mangle -A TROJAN_GO -d 10.0.0.0/8 -j RETURN 25 iptables -t mangle -A TROJAN_GO -d 127.0.0.0/8 -j RETURN 26 iptables -t mangle -A TROJAN_GO -d 169.254.0.0/16 -j RETURN 27 iptables -t mangle -A TROJAN_GO -d 172.16.0.0/12 -j RETURN 28 iptables -t mangle -A TROJAN_GO -d 192.168.0.0/16 -j RETURN 29 iptables -t mangle -A TROJAN_GO -d 224.0.0.0/4 -j RETURN 30 iptables -t mangle -A TROJAN_GO -d 240.0.0.0/4 -j RETURN 31 32 # 未命中上文的规则的包,打上标记 33 iptables -t mangle -A TROJAN_GO -j TPROXY -p tcp --on-port $TROJAN_GO_PORT --tproxy-mark 0x01/0x01 34 iptables -t mangle -A TROJAN_GO -j TPROXY -p udp --on-port $TROJAN_GO_PORT --tproxy-mark 0x01/0x01 35 36 # 从$INTERFACE网卡流入的所有TCP/UDP包,跳转TROJAN_GO链 37 iptables -t mangle -A PREROUTING -p tcp -i $INTERFACE -j TROJAN_GO 38 iptables -t mangle -A PREROUTING -p udp -i $INTERFACE -j TROJAN_GO 39 40 # 添加路由,打上标记的包重新进入本地回环 41 ip route add local default dev lo table 100 42 ip rule add fwmark 1 lookup 100 43 ``` 44 45 配置完成后**以root权限启动**Trojan-Go客户端: 46 47 ```shell 48 sudo trojan-go 49 ```