段落1、需求说明
配置透明代理,可根据IP地域,进行路由定向。
本教程,对初学者有相当的难度,需要对iptables规则熟练于心,有差错,整个网络可能出现你无法预料的故障。
GeoIP CN的目标地址,直连
Local,本地地址,保留地址,直连
Node Server,直连
其他,走 socks5://127.0.0.1:10808
段落2、基础设施
系统环境 Ubuntu 20.04 LTS
GeoIP CN的IP CIDR地址清单
ipset 工具集
node server 1枚
段落3、iptables基础知识
略
段落4、配置方式
# 创建自定义的chain链 iptables -t nat -N V2FLY # 在NAT表创建链 iptables -t mangle -N V2FLY # 在MANAGE表创建链 # 让你的V2FLY服务器IP走直连direct iptables -t nat -A V2FLY -d AA.BB.CC.DD -j RETURN # 这里指定NodeServer地址,return 继续执行自定义的动作 # 让你的局域网IP及其他本地及保留地址走direct # Ignore LANs and any other addresses you'd like to bypass the proxy # See Wikipedia and RFC5735 for full list of reserved networks. # See ashi009/bestroutetb for a highly optimized CHN route list. iptables -t nat -A V2FLY -d 0.0.0.0/8 -j RETURN iptables -t nat -A V2FLY -d 10.0.0.0/8 -j RETURN iptables -t nat -A V2FLY -d 127.0.0.0/8 -j RETURN iptables -t nat -A V2FLY -d 169.254.0.0/16 -j RETURN iptables -t nat -A V2FLY -d 172.16.0.0/12 -j RETURN iptables -t nat -A V2FLY -d 192.168.0.0/16 -j RETURN iptables -t nat -A V2FLY -d 224.0.0.0/4 -j RETURN iptables -t nat -A V2FLY -d 240.0.0.0/4 -j RETURN # 其他流量都重定向到你的本地的V2FLY-CLIENT本地端口 iptables -t nat -A V2FLY -p tcp -j REDIRECT --to-ports 10808 # 其他一些DNS流量 # Add any UDP rules ip route add local default dev lo table 100 ip rule add fwmark 1 lookup 100 iptables -t mangle -A V2FLY -p udp --dport 53 -j TPROXY --on-port 10808 --tproxy-mark 0x01/0x01 # 应用规则,将自定义的链加入到传统的链中 iptables -t nat -A PREROUTING -p tcp -j V2FLY iptables -t mangle -A PREROUTING -j V2FLY # 启动客户端 V2FLY-CLIENT 进程常驻 /usr/bin/v2ray/v2ray -config /etc/config/V2FLY.json
iptables -t nat -I PREROUTING -p tcp -m set --match-set redrock dst -j REDIRECT --to-ports 8848 iptables -t nat -I OUTPUT -p tcp -m set --match-set redrock dst -j REDIRECT --to-ports 8848