This commit is contained in:
zhongluofeng
2026-08-21 18:28:33 +08:00
commit 9e478f1591
76 changed files with 27707 additions and 0 deletions
@@ -0,0 +1,49 @@
#!/bin/sh /etc/rc.common
# 5G(rmnet_mhi0.1) 作为 eth1/192.168.200.x 的出口 (2026-08-19)
# 让主路由 wan2 的流量经 eth1 -> 5G 上网; eth0 管理流量走宽带
# 依赖: S95modem5g 先拨号, rmnet_mhi0.1 有 IP
START=96
STOP=14
setup() {
# 确保路由表定义
grep -q "wan5g" /etc/iproute2/rt_tables 2>/dev/null || echo "200 wan5g" >> /etc/iproute2/rt_tables
# 确保 ip_forward
sysctl -w net.ipv4.ip_forward=1 >/dev/null 2>&1
# 等待 rmnet_mhi0.1 有 IP (拨号需完成)
local i=0
local rmnet_ip=""
while [ $i -lt 60 ]; do
rmnet_ip=$(ip -4 addr show rmnet_mhi0.1 2>/dev/null | sed -n "s/.*inet \([0-9.]*\)\/.*/\1/p" | head -1)
[ -n "$rmnet_ip" ] && break
sleep 2
i=$((i+1))
done
[ -z "$rmnet_ip" ] && { echo "wan5g-route: rmnet_mhi0.1 无IP, 5G未拨号"; return 1; }
echo "wan5g-route: rmnet_mhi0.1 = $rmnet_ip"
# 策略规则 (幂等)
ip rule del from 192.168.200.0/24 lookup wan5g 2>/dev/null
ip rule add from 192.168.200.0/24 lookup wan5g pref 100 2>/dev/null
# 5G 默认路由填入表200
ip route replace default dev rmnet_mhi0.1 table 200 2>/dev/null
# NAT: 200网段 -> 5G出口
iptables -t nat -C POSTROUTING -s 192.168.200.0/24 -o rmnet_mhi0.1 -j MASQUERADE 2>/dev/null || \
iptables -t nat -A POSTROUTING -s 192.168.200.0/24 -o rmnet_mhi0.1 -j MASQUERADE
echo "wan5g-route: 策略路由+NAT 就绪"
}
start() { setup; }
reload() { setup; }
restart() { setup; }
stop() {
ip rule del from 192.168.200.0/24 lookup wan5g 2>/dev/null
ip route del default table 200 2>/dev/null
iptables -t nat -D POSTROUTING -s 192.168.200.0/24 -o rmnet_mhi0.1 -j MASQUERADE 2>/dev/null
return 0
}