修改 LAN 地址并重新进入后台:新旧网段、DHCP 与恢复
完成后你能确认什么
Section titled “完成后你能确认什么”- 改 LAN 前先选一个不与 WAN/上游/VPN 冲突的网段;
- 旧地址为什么会立刻失效,新地址怎么进;
- 客户端/管理机要怎么切到新网段;
- DHCP 范围、网关和 DNS 怎么一起改;
- 改错后怎么用新地址、控制台或备份回滚。
- 用 RFC1918 私网:
192.168.10.0/24、10.10.0.0/24等; - 不要和 WAN 上游、VPN、其他 LAN/VLAN 重叠;
- 不要用
192.168.1.0/24如果上游光猫/主路由已经用它; - 新网关:
192.168.10.1;DHCP 池:192.168.10.100–199; - 记录旧地址、旧网关和旧 DHCP 范围。
本页示例:192.168.1.1/24 → 192.168.10.1/24。
uci show network.lanuci show dhcp.lanip -4 addr show br-lancp /etc/config/network /etc/config/network.bak.$(date +%F)cp /etc/config/dhcp /etc/config/dhcp.bak.$(date +%F)确认你能进 LuCI/SSH,最好也有串口/控制台或 PVE 控制台;不要只留一个正在改的网页会话。
预期出问题时能恢复旧地址和 DHCP 范围。
修改 LAN
Section titled “修改 LAN”进入 Network → Interfaces → LAN → Edit:
- Protocol 保持
Static address; - IPv4 address 改成
192.168.10.1/24; - IPv4 gateway 留空(LAN 不是 WAN 网关);
- 到 DHCP Server 标签,Start
100、Limit100、Lease time12h; - Save & Apply。

预期LAN 的 IPv4 地址变成新网段,DHCP 范围同步。
uci set network.lan.ipaddr='192.168.10.1/24'uci commit network
uci set dhcp.lan.start='100'uci set dhcp.lan.limit='100'uci set dhcp.lan.leasetime='12h'uci commit dhcp
/etc/init.d/network reload/etc/init.d/dnsmasq restartnetwork reload 会让旧地址上的 SSH/网页会话立刻断开,这是预期行为;命令可能以超时/连接断开结束,不代表没生效。
本实验第一次只做 reload + dnsmasq restart 时,DHCP 客户端没有拿到租约;重启 OpenWrt 后同一客户端拿到 192.168.10.191/24。如果客户端 DHCP 不租约,先安排一次重启窗口,不要只反复重启 dnsmasq。
预期uci 里 network.lan 和 dhcp.lan 都是新网段。
- 给管理机临时静态地址
192.168.10.2/24,网关192.168.10.1; - 或释放/续租 DHCP,让客户端拿到
192.168.10.x; - 访问
http://192.168.10.1/; - 旧地址
192.168.1.1应该超时,而不是继续打开旧页面。
curl -I http://192.168.10.1/如果旧地址还能打开,可能是浏览器缓存、另一个设备仍占着旧 IP,或你改的不是当前 LAN。
预期新地址能打开 LuCI/SSH,旧地址不再响应。
ip -4 addr show br-lanuci show network.lanuci show dhcp.lanubus call network.interface.lan status | head -20grep -R "dhcp-range" /var/etc/dnsmasq.conf* /tmp/etc/dnsmasq.conf* 2>/dev/nulldhcp-range 应该出现 192.168.10.100,192.168.10.199 和 /24。
预期br-lan 是新地址,dhcp-range 也是新网段。
ip addr showip routecat /etc/resolv.confping 192.168.10.1客户端要释放旧租约/重新连接;如果仍拿到 192.168.1.x,先查 DHCP 范围、是否有第二个 DHCP、客户端是否还连在旧网段。
本次 E2 的 DHCP 验证分两步:只
network reload+dnsmasq restart时 netns 客户端没有租约;reboot后同一 netns 客户端拿到192.168.10.191/24、网关192.168.10.1。所以页面把“重启后再测 DHCP”写成必要步骤,而不是假设 reload 一定足够。
预期客户端拿到 192.168.10.x、网关/DNS 是 192.168.10.1。
ip -4 addr show eth1ping -c 3 192.168.50.1nslookup openwrt.org 192.168.10.1只改 LAN 时,WAN 的 DHCP/PPPoE 不应被重置;如果你同时改了 WAN,按 007 单独验证。
预期WAN 仍能上网,LAN 改地址不影响 WAN。
uci set network.lan.ipaddr='192.168.1.1/24'uci commit network/etc/init.d/network reload/etc/init.d/dnsmasq restart管理机会再次断线;把客户端切回 192.168.1.x 或恢复 DHCP,确认旧地址可用。
预期旧地址恢复,新地址超时。
- 用串口/HDMI/PVE 控制台登录;
- 看
uci show network.lan、ip -4 addr show br-lan; - 改回旧地址或改成一个你确定能访问的网段;
- 如果配置已经乱了,恢复
/etc/config/network.bak.*和/etc/config/dhcp.bak.*; - 最后才考虑 failsafe/恢复出厂;恢复出厂会清空配置。
预期不恢复出厂也能回到可用地址。
旧地址还能打开
Section titled “旧地址还能打开”浏览器缓存、旧标签页、另一个设备占着旧 IP,或客户端还连在旧网段。用无痕窗口/新终端,确认 curl 打到的是新 IP。
新地址打不开
Section titled “新地址打不开”- 客户端不在
192.168.10.0/24; - 静态地址/网关写错;
- 管理机还缓存旧 ARP:
ip neigh flush dev <iface>; - 防火墙把 LAN 管理口挡了;
- 你改的是 WAN 或另一个接口。
DHCP 不工作
Section titled “DHCP 不工作”dhcp.lan.start/limit不在新网段;dnsmasq没重启,或/var/etc/dnsmasq.conf*还是旧 range;- 只做
network reload后客户端仍无租约:重启 OpenWrt 再测(本实验重启后恢复正常); - 还有第二个 DHCP(另一个路由器/VM);
- 客户端没释放旧租约;
logread | grep dnsmasq看no address range/接口错误。
和上游光猫、VPN、其他 LAN/VLAN 冲突会导致路由/解析异常;换一个网段,不要硬用。
E2 实测记录(2026-10-20)
Section titled “E2 实测记录(2026-10-20)”- 环境:PVE 9.2.2;OpenWrt 25.12.6 x86 VM 200;LAN
192.168.1.1/24→192.168.10.1/24;DHCP100–199。 - 改后:旧
192.168.1.1ping 100% loss;新192.168.10.1ping/HTTP 200;LuCI/SSH 正常。 - 回滚:改回
192.168.1.1后旧地址 HTTP 200;新地址超时。 - DHCP:仅 reload 时 netns 未拿到租约;重启后 netns 客户端获得
192.168.10.191/24、网关192.168.10.1。 - 未验证:真实物理客户端、IPv6、上游冲突场景。
- 截图:
src/assets/screenshots/luci/lan-edit-192-168-10.webp(MAC/IPv6 已打码)。
- 本页是 E2:地址切换、旧地址失效、重启后 DHCP 租约、回滚均已实测;真实物理客户端、IPv6 和上游冲突未验证。
- 复现配方:
tests/recipes/lan-address-change-25.12.md。 - 没有第二评审人;关键结论只限本次 VM 环境,不外推到所有固件。