ipv6透明代理

因爲我本地沒有ipv6的地址,所以我的ipv6走的v2ray。

1. ipset 設置

添加保留地址

ipset -N reservedip6 nethash family inet6
ipset add reservedip6 ::/128 
ipset add reservedip6 ::1/128 
ipset add reservedip6 ::ffff:0:0/96 
ipset add reservedip6 100::/64 
ipset add reservedip6 64:ff9b::/96 
ipset add reservedip6 2001::/32
ipset add reservedip6 2001:10::/28 
ipset add reservedip6 2001:20::/28 
ipset add reservedip6 2001:db8::/32 
ipset add reservedip6 2002::/16 
ipset add reservedip6 fc00::/7
ipset add reservedip6 fe80::/10 
ipset add reservedip6 ff00::/8 

添加服務器地址(因爲我的流量全部走的ipv4,所以不用設置)

ipset -N noproxy6 nethash family inet6
ipset add noproxy6 服務器ipv6地址 

2. iptables設置

ip -6 rule add fwmark 1 table 100
ip -6 route add local ::/0 dev lo table 100

ip6tables -t mangle -N V2RAY
ip6tables -t mangle -A V2RAY -j RETURN -m mark --mark 2
ip6tables -t mangle -A V2RAY -m set --match-set reservedip6 dst  -j RETURN
ip6tables -t mangle -A V2RAY -m set --match-set noproxy6 dst    -j RETURN
ip6tables -t mangle -A V2RAY -p udp -j TPROXY --on-port 12345 --tproxy-mark 0x01/0x01 
ip6tables -t mangle -A V2RAY -p tcp -j TPROXY --on-port 12345 --tproxy-mark 0x01/0x01 
ip6tables -t mangle -N V2RAY_MARK
ip6tables -t mangle -A V2RAY_MARK -m set  --match-set reservedip6 dst -j RETURN
ip6tables -t mangle -A V2RAY_MARK -m set  --match-set noproxy6 dst -j RETURN
ip6tables -t mangle -A V2RAY_MARK -m mark --mark 2 -j RETURN 
ip6tables -t mangle -A V2RAY_MARK -p udp -j MARK --set-mark 1
ip6tables -t mangle -A V2RAY_MARK -p tcp -j MARK --set-mark 1
ip6tables -t mangle -A PREROUTING -j V2RAY
ip6tables -t mangle -A OUTPUT -j V2RAY_MARK

最後使用 v2ray 的 Dokodemo-door 監聽 12345 端口即可。

Comments