У меня есть устройство NanoPi M1 Plus с операционной системой Ubuntu, которое я использую в качестве маршрутизатора. Устройство получает Интернет через кабель Ethernet (интерфейс eth0), а точка доступа WiFi предоставляется через интерфейс wlan0.

Я написал правила iptables, но, похоже, это не работает. И IP_FORWARDING был включен.

Кроме того, при выполнении команды iptables-restore > /etc/iptables.ipv4.nat она просто зависает, и на терминал не выводятся выходные данные.

iptables.ipv4.nat

*filter
:INPUT ACCEPT [186:14306]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [131:13477]
-A FORWARD -i eth0 -o wlan0 -m state --state RELATED,ESTABLISHED -j ACCEPT
-A FORWARD -i wlan0 -o eth0 -j ACCEPT
COMMIT

*nat
:PREROUTING ACCEPT [142:11472]
:INPUT ACCEPT [27:2092]
:OUTPUT ACCEPT [28:2049]
:POSTROUTING ACCEPT [0:0]
-A POSTROUTING -o eth0 -j MASQUERADE
COMMIT

В чем здесь проблема?

1 ответ1

2

Кроме того, при выполнении команды iptables-restore > /etc/iptables.ipv4.nat она просто зависает, и на терминал не выводятся выходные данные.

Он ждет ввода. Цель iptables-restore - прочитать набор правил из файла, но вы использовали неправильный оператор перенаправления и сказали оболочке записать в этот файл. Правильный оператор с этой командой - < .

Обратите внимание, что использование > немедленно очистило предыдущее содержимое файла, поэтому обязательно попробуйте снова заполнить его правилами, прежде чем пытаться снова.

Помимо этого, у набора правил нет никаких очевидных проблем. У вас могут быть проблемы в других местах, особенно с функцией фильтрации uRPF, которая отказывается принимать пакеты от "неправильного" интерфейса. Обязательно отключите его с помощью sysctl, установив для net.ipv4.conf.all.rp_filter значение 0 для "выкл" (или 2 для "рыхлый").

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .