#!/bin/sh #路由器地址:192.168.123.1 #创建一张IPV4路由表,表名:"100" 添加一条规则 ip rule add fwmark 1 table 100 ip route add local 0.0.0.0/0 dev lo table 100 # 创建一张IPV6路由表,表名:"106" 添加一条规则 删除:ip -6 ru del table 106 查看:ip -6 ru list #ip -6 rule add fwmark 1 table 106 #ip -6 route add local ::/0 dev lo table 106 ip route flush cache # 代理IPV4局域网设备 iptables -t mangle -N XRAY iptables -t mangle -A XRAY -d 127.0.0.1/32 -j RETURN iptables -t mangle -A XRAY -d 224.0.0.0/4 -j RETURN iptables -t mangle -A XRAY -d 255.255.255.255/32 -j RETURN iptables -t mangle -A XRAY -d 192.168.123.1/24 -p tcp -j RETURN iptables -t mangle -A XRAY -d 192.168.123.1/24 -p udp ! --dport 53 -j RETURN iptables -t mangle -A XRAY -j RETURN -m mark --mark 0xff iptables -t mangle -A XRAY -p tcp -j TPROXY --on-ip 127.0.0.1 --on-port 12345 --tproxy-mark 1 iptables -t mangle -A XRAY -p udp -j TPROXY --on-ip 127.0.0.1 --on-port 12345 --tproxy-mark 1 # 代理IPV4网关本机 iptables -t mangle -N XRAY_MASK iptables -t mangle -A XRAY_MASK -d 224.0.0.0/4 -j RETURN iptables -t mangle -A XRAY_MASK -d 255.255.255.255/32 -j RETURN iptables -t mangle -A XRAY_MASK -d 192.168.123.1/24 -p tcp -j RETURN iptables -t mangle -A XRAY_MASK -d 192.168.123.1/24 -p udp ! --dport 53 -j RETURN iptables -t mangle -A XRAY_MASK -m mark --mark 0xff -j RETURN iptables -t mangle -A XRAY_MASK -p tcp -j MARK --set-mark 1 iptables -t mangle -A XRAY_MASK -p udp -j MARK --set-mark 1 # 代理IPV6局域网设备 #ip6tables -t mangle -N XRAY6 #ip6tables -t mangle -A XRAY6 -d ::1/128 -j RETURN #ip6tables -t mangle -A XRAY6 -d fd07:22f2:2eb9::1/60 -p tcp -j RETURN #ip6tables -t mangle -A XRAY6 -d fd07:22f2:2eb9::1/60 -p udp ! --dport 53 -j RETURN #ip6tables -t mangle -A XRAY6 -j RETURN -m mark --mark 0xff #ip6tables -t mangle -A XRAY6 -p tcp -j TPROXY --on-ip ::1 --on-port 12345 --tproxy-mark 1 #ip6tables -t mangle -A XRAY6 -p udp -j TPROXY --on-ip ::1 --on-port 12345 --tproxy-mark 1 # 新建 DIVERT 规则,避免已有连接的包二次通过 TPROXY,理论上有一定的性能提升 iptables -t mangle -N DIVERT iptables -t mangle -A DIVERT -j MARK --set-mark 1 iptables -t mangle -A DIVERT -j ACCEPT # 代理IPV6网关本机 #ip6tables -t mangle -N XRAY6_MASK #ip6tables -t mangle -A XRAY6_MASK -d fd07:22f2:2eb9::1/60 -p tcp -j RETURN #ip6tables -t mangle -A XRAY6_MASK -d fd07:22f2:2eb9::1/60 -p udp ! --dport 53 -j RETURN #ip6tables -t mangle -A XRAY6_MASK -m mark --mark 0xff -j RETURN #ip6tables -t mangle -A XRAY6_MASK -p tcp -j MARK --set-mark 1 #ip6tables -t mangle -A XRAY6_MASK -p udp -j MARK --set-mark 1 # 新建 DIVERT6 规则,避免已有连接的包二次通过 TPROXY,理论上有一定的性能提升 #ip6tables -t mangle -N DIVERT6 #ip6tables -t mangle -A DIVERT6 -j MARK --set-mark 1 #ip6tables -t mangle -A DIVERT6 -j ACCEPT # 应用IPV4规则 iptables -t mangle -A PREROUTING -j XRAY iptables -t mangle -I PREROUTING -p tcp -m socket -j DIVERT iptables -t mangle -A OUTPUT -j XRAY_MASK iptables -t mangle -I XRAY -m mark --mark 0xff -j RETURN # 应用IPV6规则 #ip6tables -t mangle -A PREROUTING -j XRAY6 #ip6tables -t mangle -I PREROUTING -p tcp -m socket -j DIVERT6 #ip6tables -t mangle -A OUTPUT -p tcp -j XRAY6_MASK #ip6tables -t mangle -I XRAY6 -m mark --mark 0xff -j RETURN