光猫开启桥接模式后,Openwrt作为默认网关进行拨号与 NAT,导致路由下客户端设备无法获取与光猫相同网段的 IP 地址,进而也就无法登陆光猫的后台管理界面。虽然在日常使用的过程中,光猫的配置几乎是一次性的,其后台管理界面的使用频率很低,但是每次登陆光猫后台都要通过有线或无线(若有)的方式将设备直接与光猫相连也着实麻烦。因此需要通过一些简单的配置,实现桥接模式下,连接软路由的同时可以随时访问光猫后台。
1.查询Wan接口
登录Openwrt管理后台,进入网络-接口处,查看Wan接口的物理接口名称。例如这里是eth4
。
2.设置防火墙自定义规则
进入网络-防火墙-自定义防火墙规则,添加以下规则,添加规则后点击重启防火墙启用规则,即可直接在浏览器访问光猫后台,并且和路由器拨号上网都不影响。
# Modem
# MODEMIP设置为光猫管理IP
MODEMIP=192.168.1.1
MODEM_NET=`echo $MODEMIP | cut -d "." -f 1-3`
# ROUTER_WAN_PORT_IP设置为光猫管理IP同网段的其他未占用的IP
ROUTER_WAN_PORT_IP=192.168.1.100
# WAN_PORT为上步查询的WAN接口名称
WAN_PORT=eth4
ifconfig $WAN_PORT $ROUTER_WAN_PORT_IP netmask 255.255.255.0 broadcast $MODEM_NET.255
iptables -A forwarding_rule -d $MODEMIP -j ACCEPT
iptables -t nat -A postrouting_rule -d $MODEMIP -o $WAN_PORT -j MASQUERADE
3.防火墙规则解释
定义光猫IP变量:
MODEMIP=192.168.1.1
MODEMIP
是光猫的 IP 地址,假设是192.168.1.1
。
MODEM_NET=`echo $MODEMIP | cut -d "." -f 1-3`
MODEM_NET
提取了光猫IP 地址的前三段,即192.168.1
,这是它所在的子网。
ROUTER_WAN_PORT_IP=192.168.1.100
ROUTER_WAN_PORT_IP
是Openwrt的 WAN 接口 IP 地址,设为192.168.1.100
。
WAN_PORT=eth4
WAN_PORT
是指定Openwrt上连接到光猫的网络接口,这里是eth4
。
配置 WAN 端口 IP:
ifconfig $WAN_PORT $ROUTER_WAN_PORT_IP netmask 255.255.255.0 broadcast $MODEM_NET.255
- 使用
ifconfig
配置 WAN 接口eth4
的 IP 地址为192.168.1.100
,子网掩码为255.255.255.0
,广播地址为192.168.1.255
。
防火墙规则:
-
允许转发到调制解调器的流量:
iptables -A forwarding_rule -d $MODEMIP -j ACCEPT
- 这条规则将目标地址为光猫 IP (
192.168.1.1
) 的所有流量放行,确保Openwrt可以转发流量到光猫。
- 这条规则将目标地址为光猫 IP (
-
NAT 伪装:
iptables -t nat -A postrouting_rule -d $MODEMIP -o $WAN_PORT -j MASQUERADE
- 这条 NAT 规则确保从Openwrt发往光猫的数据包会经过伪装(
MASQUERADE
),将源地址修改为路由器 WAN 接口的 IP 地址(192.168.1.100
),让光猫认为所有流量都来自Openwrt。
- 这条 NAT 规则确保从Openwrt发往光猫的数据包会经过伪装(
原创文章,作者:VAY冬冬,如若转载,请注明出处:https://blog.vay1314.top/archives/543