Модуль ядра Iptables в наличии Arch

415
stmfunk

При попытке использовать iptables при установке Arch с ядром по умолчанию я получаю сообщение об ошибке

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) <jan.steffens@gmail.com> 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 
0
Какая у вас версия ядра? Какую команду вы используете? Вы запускаете это как root? Вы перезагрузили компьютер после обновления ядра? У меня установлен `linux 4.16.8-1`, и в моей системе присутствует модуль` iptable_filter`. Kamil Cuk 5 лет назад 0
@KamilCuk `4.16.12-12-1-ARCH` Я использовал` sudo iptables -S` и `sudo iptables -L`. Я использовал `modprobe iptables; modprobe iptables_filter; modprobe iptables-filter; modprobe ip_tables` все безрезультатно. stmfunk 5 лет назад 0
Это `iptable_filter` (без 's'). Какие папки у вас есть в / usr / lib / modules, т.е. что выводит `ls / usr / lib / modules`? Можете ли вы искать iptable_filter в / usr / lib / modules, т.е. опубликовать вывод `find / usr / lib / modules / -name 'iptable_filter.ko.xz'`? Kamil Cuk 5 лет назад 0
Подождите, почему у вас есть двойной `12` в версии ядра, т.е. `4.16.12-12-1-ARCH`? Разве это не должно быть `4.16.12-1-ARCH`? Вы должны иметь /usr/lib/modules/*/kernel/net/ipv4/netfilter/iptable_filter.ko.xz, он находится в списке пакетов. Вы пробовали переустановить пакет core / linux, т.е. `pacman -S linux`? У вас ядро ​​установлено из репозитория ядра? Можете ли вы опубликовать вывод `pacman -Qii linux`? Kamil Cuk 5 лет назад 0
@KamilCuk извините, это опечатка. Поиск вернул `/ usr / lib / modules / 4.17.2-1-ARCH / kernel / net / ipv4 / netfilter / iptable_filter.ko.xz`. Я управлял командой Qii. Я отредактирую это в основной вопрос. Я могу попробовать установить, однако я не на моем столе до понедельника. stmfunk 5 лет назад 0

1 ответ на вопрос

2
Kamil Cuk

Вы работаете на ядре 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модуль.

Ах, у меня есть задача systemd, которая обновляется в 5 утра, она должна была обновить ядро ​​без моего ведома. Спасибо! stmfunk 5 лет назад 0

Похожие вопросы