iptables: nat bảng không tồn tại


8

Tôi đang cố gắng thực hiện một số NAT trên Raspi 2 chạy Raspbian của tôi. Nhưng khi tôi cố gắng làm bất cứ điều gì với natbảng trong iptables, tôi gặp lỗi sau:

iptables v1.4.21: can't initialize iptables table `nat': Table does not exist (do you need to insmod?)
Perhaps iptables or your kernel needs to be upgraded.

Và khi tôi thử modprobe:

pi@raspberrypi:~ $ sudo modprobe iptables
modprobe: ERROR: ../libkmod/libkmod.c:557 kmod_search_moddep() could not open moddep file '/lib/modules/4.4.11-v7+/modules.dep.bin'

Thông tin phiên bản:

pi@raspberrypi:~ $ uname -a
Linux raspberrypi 4.4.11-v7+ #888 SMP Mon May 23 20:10:33 BST 2016 armv7l GNU/Linux

Câu trả lời:


11

Đoán nhanh: Bạn đã nâng cấp HĐH và hệ thống đã hoạt động được một thời gian rất dài hoặc quản lý để nâng cấp nó mà không thay thế kernel, vì các 4.4.11-v7+mô-đun đã bị xóa khỏi Raspbian.

Nếu không có thư mục như /lib/modules/4.4.11-v7+(nhìn), bạn nên chạy sudo apt updatesau đó sudo apt upgradeđể đảm bảo kernel đã được thay thế, sau đó khởi động lại và kiểm tra uname -r; nó sẽ cung cấp một phiên bản với một thư mục tương ứng /lib/modules/tồn tại. Hạt nhân pi có thể khởi động mà không cần bất kỳ, tuy nhiên, để kiểm tra, hãy thử lsmod; nếu không có gì, có gì đó không ổn Nếu có, bạn có thể lọc cái đó lsmod | grep -P "ip|nf"để xem những cái có liên quan đến iptables / netfilter (và bất cứ thứ gì khác trùng hợp có chứa các kết hợp chữ cái đó).

Các mô-đun cơ sở là thực sự ip_tables, nhưng nó nên được tải tự động. Mô-đun cơ sở cho NAT là nf_natnhưng cũng nên được tải tự động.


2
Dự đoán của bạn là chính xác đáng kinh ngạc! Tôi đã thực hiện nâng cấp dist gần đây, khi tôi cập nhật kernel mà không cần khởi động lại. Tôi đã cố gắng để khởi động lại và mọi thứ hoạt động tốt bây giờ!
Cnly

Họ thực sự nên có một cơ chế để không khiến mọi người rơi vào tình trạng này, ví dụ, bằng cách kiểm tra nhanh phiên bản kernel đang chạy trước khi xóa các mô-đun của nó! Vấn đề trên pi theo mặc định là nó tải một kernel được đặt tên một cách mơ hồ kernel.img(hoặc kernel7.img) trừ khi bạn thêm một dòng vào config.txt. Khi họ cập nhật kernel, họ làm điều đó bằng cách xóa / ghi đè lên cái cũ (thay config.txtvào đó thay đổi có thể tạo ra rắc rối cho một số người, nhưng nói chung có lẽ sẽ là một cách tiếp cận sạch hơn).
goldilocks
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.