在 menuconfig 里,似乎已经没有 iptables 能选了,openwrt 的 nftable 不知道是版本精简还是我自己语法问题..
root@openwrt:~# nft add table trouter
root@openwrt:~#
root@openwrt:~#
root@openwrt:~#
root@openwrt:~# nft add chain trouter icmp_filter { type filter hook input priority 0 \; }
root@openwrt:~# nft add rule trouter icmp_filter iifname "eth0" icmp type echo-request drop
root@openwrt:~#
root@openwrt:~#
root@openwrt:~# nft add rule trouter icmp_filter iifname "br-lan" icmp type echo-request drop
root@openwrt:~#
root@openwrt:~#
root@openwrt:~# nft add rule trouter input iifname { "eth0", "br-lan" } icmp type echo-request counter jump icmp_filter
Error: Could not process rule: No such file or directory
add rule trouter input iifname { eth0, br-lan } icmp type echo-request counter jump icmp_filter
^^^^^
root@openwrt:~#
root@openwrt:~# nft add rule trouter input iifname eth0,br-lan icmp type echo-request counter jump icmp_filter
Error: Basetype of type network interface name is not bitmask
add rule trouter input iifname eth0,br-lan icmp type echo-request counter jump icmp_filter
^^^^
root@openwrt:~#
root@openwrt:~# nft add rule trouter input iifname { eth0, br-lan } icmp type echo-request counter jump icmp_filter
Error: Could not process rule: No such file or directory
add rule trouter input iifname { eth0, br-lan } icmp type echo-request counter jump icmp_filter
^^^^^
root@openwrt:~#
root@openwrt:~#
要是 iptables ,这事情早结束了。。。。
1
qazwsxkevin OP 这些语句都是看文档,问 chatgpt 拼装出来,debian 这样 linux 里能完整输入命令
|
2
wuruxu 173 天前 1
```
----------------------------------------------------- OpenWrt SNAPSHOT, r26907-62891c749d ----------------------------------------------------- root@jdc128G:~# cat /etc/nftables.d/20-mangle-wgset.nft chain mangle_prerouting_wgset { type filter hook prerouting priority mangle; policy accept; ip daddr @wgset meta mark set 0x00003c25 counter accept ip6 daddr @wgset6 meta mark set 0x00003c26 counter accept } chain mangle_output_wgset { type route hook output priority mangle; policy accept; ip daddr @wgset meta mark set 0x00003c25 counter accept ip6 daddr @wgset6 meta mark set 0x00003c26 counter accept } ``` 可以把 nft 的 rule 添加到 /etc/nftables.d/ 这个目录下 |
3
Earsum 172 天前 1
这个是 22.03 版的官方文档提供的方式,不知道 23 版是否仍然适用,而且这些工具集不是卸载 fw3 更换 fw4 ,而是提供兼容层?
“iptables 工具集不再默认在固件中安装。若有需要,你可以通过 opkg 或者 ImageBuilder 来安装。iptables-nft, arptables-nft, ebtables-nft 和 xtables-nft 软件包可以在使用 nftables 的情况下,提供与之前的工具相同的命令接口。 ” by https://openwrt.org/zh/releases/22.03/notes-22.03.0 |
4
junjiego2 171 天前 1
最近从 lean 的 lede 换到 immortalwrt 23.05 ,从 iptables 换到 nftables 真的很不习惯,特别是没有了那个自定义规则
|
5
szdosar 171 天前 1
我不确定的是不是用的官方的 openwrt 源码。
如果是的话,你要在配置选单里,降级 firewall 版本: 1.导航到 Base system ---> 2.取消 firewall4 3.勾选 firewall 如果你用的是 lede 源码,应该没有这个困扰。 如果你用其他源码,没办法完成以上操作,你可能需要执行这条命令后才能进行以上修改: sed -i 's/+uci-firewall/+firewall/g' feeds/luci/applications/luci-app-firewall/Makefile ##文件 feeds/luci/applications/luci-app-firewall/Makefile 中所有的 +uci-firewall 都会被替换为 +firewall 。 |
6
qazwsxkevin OP 这个问题已解决,正如 3 楼给的 22.03 news 里面提到,在 23.05menuconfig 选上 iptables-nft, arptables-nft, ebtables-nft 和 xtables-nft ,构建好的固件,iptables 1.8 ,又回来了,与 nftables 也是共存的,事情解决,我不想用 nftables ,虽然这个是以后的趋势态度吧,以后再说了...
@wuruxu #2 ,试过写了一些 nftables 的语句,没能正确起效,已经逃了 @Earsum #3 ,感谢~ @junjiego2 #4 ,已解决,23.05 也能用 iptables 了. @szdosar #5 ,thanks~ |