使用nft添加prerouting链时提示“No such file or directory”错误求助
问题排查与解决
核心原因:缺少NAT内核模块
Raspberry Pi OS 11.6默认可能未加载IPv4 NAT所需的内核模块nf_nat_ipv4,这会导致nftables无法创建nat链,触发"No such file or directory"错误。
解决步骤
- 检查模块是否已加载
lsmod | grep nf_nat_ipv4
若无任何输出,说明模块未加载。
- 手动加载模块
sudo modprobe nf_nat_ipv4
- 重新执行链创建命令
运行以下命令即可成功创建prerouting链:
sudo nft 'add chain ip nat prerouting { type nat hook prerouting priority -100; }'
额外配置建议
- 若需模块随系统启动自动加载,可将模块名写入配置文件:
echo "nf_nat_ipv4" | sudo tee -a /etc/modules-load.d/nftables.conf
- 如果你的需求是让内部设备访问外部网络,还需配置postrouting链及MASQUERADE规则:
sudo nft 'add chain ip nat postrouting { type nat hook postrouting priority 100; }' sudo nft 'add rule ip nat postrouting oifname "你的出口网卡" masquerade'
将命令中的你的出口网卡替换为实际的外网接口名称(如eth0)。
内容的提问来源于stack exchange,提问作者Holger
相关产品推荐
相关产品推荐

