Pytanie:
iptables: tabela nat nie istnieje
Cnly
2016-07-15 20:22:26 UTC
view on stackexchange narkive permalink

Próbuję wykonać NAT na moim Raspi 2 z Raspbianem. Ale kiedy próbuję cokolwiek zrobić z tabelą nat w iptables, pojawia się następujący błąd:

  iptables v1.4.21: nie można zainicjować tabeli iptables `nat ': Tabela nie istnieje (czy musisz insmod?) Być może iptables lub twoje jądro wymaga aktualizacji.  

A kiedy spróbuję modprobe :

  pi @ raspberrypi: ~ $ sudo modprobe iptablesmodprobe: BŁĄD: ../libkmod/libkmod.c:557 kmod_search_moddep () nie może otworzyć pliku moddep '/lib/modules/4.4.11-v7+/ modules.dep.bin ' 

Informacje o wersji:

  pi @ raspberrypi: ~ $ uname -aLinux raspberrypi 4.4.11-v7 + # 888 SMP Pon Maj 23 20:10:33 BST 2016 armv7l GNU / Linux  
Jeden odpowiedź:
goldilocks
2016-07-15 20:59:49 UTC
view on stackexchange narkive permalink

Szybkie przypuszczenie: zaktualizowałeś system operacyjny i system działał przez bardzo długi czas lub udało Ci się go zaktualizować bez wymiany jądra, ponieważ moduły 4.4.11-v7 + mają już usunięto z Raspbian.

Jeśli nie ma takiego katalogu jak /lib/modules/4.4.11-v7+ (patrz), należy uruchomić sudo apt update , a następnie sudo apt upgrade , aby upewnić się, że jądro zostało wymienione, a następnie uruchom ponownie komputer i zaznacz opcję uname -r ; powinien podać wersję z odpowiednim katalogiem / lib / modules / , który istnieje. Jądro pi może jednak ładować się bez żadnego, więc aby to sprawdzić, spróbuj lsmod ; jeśli nie ma nic, coś jest nie tak. Jeśli tak, możesz odfiltrować to lsmod | grep -P "ip | nf" , aby zobaczyć te, które są powiązane z iptables / netfilter (i wszystko inne, co przypadkowo zawiera te kombinacje liter).

Podstawowym modułem jest w rzeczywistości ip_tables , ale powinien zostać załadowany automatycznie. Podstawowym modułem dla NAT jest nf_nat , ale powinien on również zostać załadowany automatycznie.

Twoje przypuszczenie jest niezwykle dokładne! Niedawno dokonałem aktualizacji dystrybucji, podczas której zaktualizowałem jądro, bez restartu. Próbowałem zrestartować komputer i teraz wszystko działa dobrze!
Naprawdę powinny mieć mechanizm, który nie pozostawia ludzi w takiej sytuacji, np. Poprzez szybkie sprawdzenie działającej wersji jądra przed usunięciem jego modułów! Problem z pi polega na tym, że domyślnie ładuje jądro o niejednoznacznej nazwie `kernel.img` (lub` kernel7.img`), chyba że dodasz linię do `config.txt`. Kiedy aktualizują jądro, robią to przez usunięcie / nadpisanie starego (zamiast tego zmiana `config.txt` może sprawić kłopoty niektórym osobom, ale generalnie prawdopodobnie będzie to czystsze podejście).


To pytanie i odpowiedź zostało automatycznie przetłumaczone z języka angielskiego.Oryginalna treść jest dostępna na stackexchange, za co dziękujemy za licencję cc by-sa 3.0, w ramach której jest rozpowszechniana.
Loading...