1

Доброе утро, господа, мой RPi 2 - это рабочая точка доступа с двумя ключами WiFi (каждый со своим диапазоном IP-адресов); RPi также подключен через кабель LAN к моему модему.

Он предлагает самую базовую услугу точки доступа / прокси: он принимает входящие соединения на обоих интерфейсах WiFi и отправляет данные на мой модем через кабель локальной сети, во внешний Интернет.

Пока все хорошо: теперь я хочу сделать свой RPi менеджером QOS: он не только будет отправлять и получать данные, но и будет отдавать приоритет некоторым конкретным типам соединений (например, потоковая передача по SMTP).

Моя программа будет делать это, но я протестировал ее только на своем ноутбуке, и теперь я помещу свою программу в мой RPi. Моя программа принимает входящие соединения через фиксированный порт (8000): на моем ноутбуке я установил плагин в браузере, который перенаправляет трафик на порт 8000, и, похоже, все работает нормально.

Сейчас я собираюсь поставить его на RPi, но я не знаю, как перенаправить трафик с обоих ключей WiFi в мою программу на порту 8000.

У меня нет знаний о маршрутизации, но я думаю, что это можно сделать с помощью двух правил iptables , например:

iptables -t nat -A PREROUTING -i wlan0 -p tcp -j REDIRECT --to-port 8000
iptables -t nat -A PREROUTING -i wlan1 -p tcp -j REDIRECT --to-port 8000

Тем не менее, эти два правила, кажется, не применяются: запуск моей программы на моем RPi с двумя правилами iptables не показывает вывод, поэтому соединения не перенаправляются на порт 8000, который моя программа фактически прослушивает.

Я видел несколько примеров, когда для перенаправления тоже нужен флаг --dport , но я не знаю, каким будет этот порт.

Это мои текущие правила iptables для RPi:

-P INPUT ACCEPT
-P FORWARD ACCEPT
-P OUTPUT ACCEPT
-A FORWARD -i eth0 -o wlan0 -m state --state RELATED,ESTABLISHED -j ACCEPT
-A FORWARD -i wlan0 -o eth0 -j ACCEPT
-A FORWARD -i eth0 -o wlan1 -m state --state RELATED,ESTABLISHED -j ACCEPT
-A FORWARD -i wlan1 -o eth0 -j ACCEPT

0