当我尝试在 Arch 安装中使用默认内核的 iptables 时,我收到错误
iptables v1.6.2: can't initialize iptables table `filter': Table does not exist (do you need to insmod?)
Perhaps iptables or your kernel needs to be upgraded.
我不知道为什么模块无法安装,尽管我确实对 nftables 进行了一些实验,也许它替换了某些东西?此消息正确吗?如果正确,我该如何修复它?
编辑:pacman -Qii 的输出
Name : linux
Version : 4.17.2-1
Description : The Linux kernel and modules
Architecture : x86_64
URL : https://www.kernel.org/
Licenses : GPL2
Groups : base
Provides : None
Depends On : coreutils linux-firmware kmod mkinitcpio>=0.7
Optional Deps : crda: to set the correct wireless channels of your country
Required By : None
Optional For : None
Conflicts With : None
Replaces : None
Installed Size : 114.63 MiB
Packager : Jan Alexander Steffens (heftig) <[email protected]>
Build Date : Sat Jun 16 12:08:26 2018
Install Date : Wed Jun 20 05:02:18 2018
Install Reason : Explicitly installed
Install Script : Yes
Validated By : Signature
Backup Files :
UNMODIFIED /etc/mkinitcpio.d/linux.preset
答案1
您正在内核上运行4.16.12
,但您已将内核更新为4.17.2
。每次升级内核后,您都需要重新启动计算机。iptable
失败,因为它尝试加载模块iptable_filter
,但该文件/usr/lib/modules/4.16.12-1-ARCH/kernel/net/ipv4/netfilter/iptable_filter.ko.xz
不再存在,因为您已将内核更新为pacman -S linux
。要更改正在运行的内核,您需要重新启动计算机。重新启动后,如果报告的正在运行的内核与uname -a
安装的版本匹配pacman -Q linux
,则该iptables
命令应成功加载iptable_filter
模块。