You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

OpenWrt 22.03下iptables 1:1 NAT规则迁移至nftables求助

迁移OpenVPN站点到站点VPN的NAT规则至nftables

原有iptables规则解析

两条规则实现网段映射(NETMAP),用于OpenVPN隧道(tun+接口)两端的网段转换:

  • 对从tun接口进来、目标为10.2.1.0/24的流量,将目标网段映射为192.168.1.0/24
  • 对从本地192.168.1.0/24发往tun接口的流量,将源网段映射为10.2.1.0/24

正确的nftables配置

你的配置存在三个核心问题:链类型错误、缺少接口匹配、NETMAP语法不正确。以下是修正后的配置:

table ip nat {
    chain prerouting {
        type nat hook prerouting priority -100; policy accept;
        iifname "tun+" ip daddr 10.2.1.0/24 dnat to net 192.168.1.0/24
    }

    chain postrouting {
        type nat hook postrouting priority 100; policy accept;
        oifname "tun+" ip saddr 192.168.1.0/24 snat to net 10.2.1.0/24
    }
}

关键修改说明

  • 链类型修正:nat表的prerouting和postrouting链必须设置为type nat,而非type filter
  • 接口匹配:添加iifname "tun+"(匹配入站tun接口)和oifname "tun+"(匹配出站tun接口),对应原iptables的-i tun+/-o tun+规则
  • NETMAP语法:nftables中实现网段映射需要用dnat to net和snat to net,而非直接指定网段

配置生效方法

在OpenWrt中,将上述内容保存为/etc/nftables.d/99-vpn-nat.conf,然后执行以下命令生效:

nft -f /etc/nftables.d/99-vpn-nat.conf

或重启nftables服务:

/etc/init.d/nftables restart

内容的提问来源于stack exchange,提问作者dex.404

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.01 13:36:04