#!/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 }