Я использую функцию точки доступа Wi-Fi в Ubuntu 18.04, чтобы создать точку доступа для мои устройства. Мне нужно запретить различным устройствам в сети контактируя друг с другом.
Точнее, у меня в сети два телефона, я бы хотел их не иметь возможности отправлять друг другу пакеты. Прямо сейчас если телефон 1 использует IP-адрес 10.42.0.172, а телефон 2 использует 10.42.0.59, я могу используйте телефон 1 для пинга 10.42.0.59.
Я хотел бы отключить соединения между разными хостами на сеть, созданная точкой доступа. Я пробовал несколько вещей, в том числе использование iptables для сброса локального трафика. Однако похоже, что iptables не влияет на локальные пакеты. Мне интересно, местные ли пакеты пересылаются напрямую, минуя сеть ядра куча. Хотя я вижу локальные пакеты на wirehark.
Под капотом точка доступа использует wpa_supplicant для настройки доступа к Wi-Fi. точка. Поэтому я попытался включить изоляцию клиента (ap_isolate), чтобы устройства в сети точки доступа не могут отправлять пакеты друг другу. Так как только точка доступа настроена, я делаю следующее:
$sudo wpa_cli -i wlan0
#set ap_isolate 1
OK
#get ap_isolate
1
Итак, я вижу, что изоляция точки доступа включена. Однако я все еще могу отправлять пакеты с одного устройства на другое в сети точки доступа.Это почему? Я чего-то не хватает? Есть ли способ изолировать точку доступа WiFI?
Выходит, wpa_cli
неправильно устанавливает ap_isolate
(сообщено здесь).
Поэтому мне пришлось создать точку доступа с помощью hostapd
и dnsmasq
. Я следовал приведенным здесь инструкциям и установил ap_isolate=1
в конфигурационном файле hostapd
: https://www.shellvoide.com/wifi/setup-wireless-access-point-hostapd-dnsmasq-linux/