Как перенаправить трафик на Raspberry с USB-модема WiFi на локальное приложение

Как перенаправить трафик на Raspberry с USB-модема WiFi на локальное приложение

Доброе утро, господа, мой 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

Связанный контент