Как получить пакеты, поставленные в очередь фильтром пакетов ядра?

Я сделал простой HTTP-прокси, который принимает подключения от клиентов на фиксированном порту; прокси-вилки для каждого входящего соединения, а разветвленный процесс связан с потоком пакетов в Интернет и из Интернета; реализован простой QOS, пакеты хранятся в трех разных очередях в соответствии с их уровнем приоритета (минимальным, средним, максимальным) и затем отправляются в порядке приоритета.

Пока все хорошо, но мой прокси-сервер не совсем там, где он должен быть: прокси-сервер находится на моем ноутбуке, а клиенты, которые должны подключаться к прокси-серверу, – это только мой ноутбук: так что прокси работает, но это не реальный случай (я не хочу прокси на локальном компьютере, я хочу, чтобы он был «снаружи»).

Теперь, когда этап тестирования завершен, я хочу перенести свой прокси-сервер на внешний объект, где (я предполагаю) это должно быть: например, моя малина Pi 2, но прежде чем сообщить мне о переносе этого вопроса, пожалуйста, узнайте о моей проблеме , Я читал вопросы в Rackberry Stack Exchange, и все они касаются датчиков, как подключить Pi к монитору или проблемы с Bluetooth.

Моя проблема связана с библиотеками в базовой ОС, Raspbian, операционной платформе Debian, поэтому я подумал, что этот Stack Exchange будет подходящим местом.

Я пробовал первый подход с libnetfilter_queue (всегда с прокси-сервером на моем ноутбуке) и с флагом iptables , NFQUEUE , у меня была очередь (-ы) пакетов (для копирования в моей очереди, DROP их и отправки их снова, когда время пришел с сырым сокетом): но мой RPi может быть мультиинтерфейсом (он может содержать до четырех ключей Wi-Fi, поскольку это точка доступа, а также кабель Ethernet, с которым он подключен к моему модему) и мой руководитель сказал, что libnetfilter_queue не подходит для моей цели, поскольку он не может иметь дело с более чем одним интерфейсом, и он имеет трудности при выборе того, какой интерфейс использовать для отправки пакетов.

В итоге: у меня есть прокси-сервер на моем ноутбуке, я бы хотел его перенести в свой RPi (так что помимо точки доступа он также должен предлагать QOS), но я не знаю, как перенаправить пакеты с один интерфейс wlan0 (или все четыре из них) для моего прокси, предназначенный для прослушивания порта, переданного main программе.

libnetfilter_queue (по-видимому) не является опцией, поэтому какую библиотеку / API я могу использовать?

Это часть моей диссертации, поэтому я предпочитаю использовать библиотеки и / или API для интеграции с моим кодом, а не для использования уже существующих программ.

Спасибо за вашу помощь.

Interesting Posts

Является ли AMD GPU FirePro достаточной для Linux Matlab и CUDA?

несколько путей библиотеки ffmpeg, как можно исключить устаревшие установки ffmpeg?

Как настроить режим масштабирования для внешних дисплеев на Intel GPU

Использование sed для вставки латексных команд вокруг заголовков документа

Ошибка преобразования функции bash в псевдоним csh

Как удалить последние n строк файла ascii с помощью команд оболочки?

Почему чтение из двух связанных pty вызывает бесконечный цикл?

Как настроить SSH на рабочем столе Ubuntu и связать с ним поддомен для удаленного доступа к внешней сети?

Как регистрировать нагрузку GPU?

Как сделать ключ симулировать другой ключ?

Пожалуйста, объясните этот вывод команды ps -ef?

Могу ли я узнать, какой ключ ssh использовался для доступа к учетной записи?

Удаление контрольных символов (включая коды / цвета консоли) из вывода скрипта

Почему wget не работает через туннель ssh? Что делает прокси-сервер для предотвращения использования ssh-client?

Будут ли эти команды возвращать один и тот же результат в разных дистрибутивах Linux?

Linux и Unix - лучшая ОС в мире.