透明代理,iptables技术 2022-5-27

段落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

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注