为什么需要WIREGUARD-MWAN3负载均衡
wireguard添加多个peer不会自动负载均衡,而是只使用一个。
采用这种模式,利用多播的mwan3进行负载均衡。
mwan3
1. MWAN 支持最多 252 个物理或逻辑接口
2. MWAN 要求所有接口必须在 /etc/config/network 中设定唯一的网关跃点
3. 名称必须与 /etc/config/network 中的接口名称匹配
4. 名称允许包括 A-Z、a-z、0-9、_ 但是不能有空格
5. 接口不应该与成员、策略、规则中的任意一个设置项使用相同的名称
安装软件
安装dnsmasq-full,已经是full版的可以忽略
opkg update
opkg remove dnsmasq
rm /etc/config/dhcp
opkg install dnsmasq-full
其他必要软件
opkg update && opkg install iptables ipset ca-bundle curl coreutils-base64 bash libustream-openssl luci-i18n-mwan3-zh-cn luci-i18n-wireguard-zh-cn
搜索安装wireguard中文
生成白名单
gfwlist2dnsmasq
curl https://raw.githubusercontent.com/cokebar/gfwlist2dnsmasq/master/gfwlist2dnsmasq.sh -o /tmp/gfwlist2dnsmasq.sh && chmod u+x /tmp/gfwlist2dnsmasq.sh
/tmp/gfwlist2dnsmasq.sh -d 8.8.8.8 -p 53 -s gfwlist -o /tmp/dnsmasq.d/dnsmasq_gfwlist_ipset.conf \
&& ipset create gfwlist hash:ip
/etc/init.d/dnsmasq restart
配置wireguard和mwan3
1. 配置wireguard,注意接口跃点
2. 配置mwan3
如果这一步不会,请参考以前的文章《Openwrt配置wireguard》、《Openwrt配置mwan3》
iptables
# wg1
# iptables -I FORWARD -o wg1 -j ACCEPT
# iptables -t nat -I POSTROUTING -o wg1 -j MASQUERADE
# wg2
# iptables -I FORWARD -o wg2 -j ACCEPT
# iptables -t nat -I POSTROUTING -o wg2 -j MASQUERADE
# wg3…以此类推
# 精简代码
for wginterface in $(wg | grep interface | cut -d ” ” -f2); do
iptables -I FORWARD -o $wginterface -j ACCEPT
iptables -t nat -I POSTROUTING -o $wginterface -j MASQUERADE
done