在PVE里通过KVM方式安装ImmortalWrt虚拟机,设置为旁路由的正确方法(单网口)

旁路由 192.168.5.6 开 NAT(备忘)

症状

客户端网关指向 5.6 时,国内网站时通时断,www.163.com 白屏/超时;
5.6 上 conntrack 里相关连接全是 [UNREPLIED],抓包显示 TCP 握手成功后就没数据了。

原因

5.6 只转发、不做 NAT。

  • 去程:源 IP 还是客户端,源 MAC 变成 5.6
  • 回程:被主路由 5.1 直接发回客户端,绕开 5.6

链路不对称,主路由把包丢了。开 NAT 后源 IP 变成 5.6,回程自然回 5.6,就通了。

改法(WebUI)

  1. 网络 → 防火墙 → 通用设置
    确认「启用 FullCone NAT」不勾。
    (勾着它 fw4 不会生成伪装规则,也不报错,勾了伪装也白搭)
  2. 同页 区域 表格:lan 那一行右侧的 「IP 动态伪装」勾上
  3. 点 保存并应用

等价命令

uci set firewall.@zone[0].masq='1'
uci set firewall.@zone[0].mtu_fix='1'
uci set firewall.@defaults[0].fullcone='0'
uci commit firewall && /etc/init.d/firewall reload

验证

5.6 上执行:

nft list chain inet fw4 srcnat_lan

必须看到这一行(只有注释没有 masquerade 就是没生效):

meta nfproto ipv4 masquerade comment "!fw4: Masquerade IPv4 lan traffic"

回滚

把 lan 的「IP 动态伪装」取消勾选,保存并应用即可。

备注

  • 192.168.5.0/24 是直连网段,局域网互访不经过 5.6,这条 NAT 只影响走 5.6 出网的流量,不会影响内网。
  • 客户端:网关填 192.168.5.6;用 honk 的话 DNS 也填 192.168.5.6(否则解析被污染,youtube 会拿到假 IP)。
  • 可选:通用设置里「流量卸载类型」如果是「硬件流量卸载」,虚拟机(virtio 网卡)场景建议改成「无」或「软件流量卸载」,偶发丢包少一些。

20261102231149.png

留下评论

您的电子邮箱地址不会被公开。 必填项已用 * 标注

1 + = 2