- Вопрос или проблема
- Я выполнил следующие шаги:
- 1. Создал виртуальный WiFi интерфейс
- 2. Добавил новый виртуальный интерфейс в игнорируемые для NetworkManager
- 3. Настроил hostapd
- 4. Настроил DHCP сервер
- isc-dhcp-server конфигурация
- 5. Назначил статический IP адрес для созданного виртуального интерфейса
- Вышеописанные части работают, и я могу подключиться к AP.
- Список ifconfig:
- Проблема:
- Ответ или решение
- Шаг 1: Проверка конфигурации интерфейсов
- Шаг 2: Настройка маршрутизации
- Шаг 3: Проверка DHCP-сервера
- Шаг 4: Проверка маршрутизации и правил брандмауэра
- Шаг 5: Взаимодействие с устройствами
- Заключение
Вопрос или проблема
Моя задача: Настроить и запустить Точка доступа (AP) на планшете (x86) с Linux mint с доступом с устройств, подключенных к созданной AP.
Контекст как дополнительная информация (но это не тема вопроса, реальный вопрос в конце описания):
- Некоторые измерительные устройства должны подключаться к этому планшету через AP и отправлять данные через TCP-сокет.
Я выполнил следующие шаги:
1. Создал виртуальный WiFi интерфейс
- созданный интерфейс работает изолированно (не в мостовом режиме, как роутер)
Все скрипты предоставлены для физического WiFi интерфейса wlp1s0
Я создал виртуальный интерфейс с именем wlp1s0_ap
- Создан юнит (сервис) файл как
/lib/systemd/system/[email protected]
[Unit]
Description=Создание виртуального беспроводного интерфейса
Requires=sys-subsystem-net-devices-wlp1s0.device
#After=network.target
After=sys-subsystem-net-devices-wlp1s0.device
[Service]
Type=oneshot
#ExecStart=/usr/sbin/iw dev wlp1s0 interface add %I type __ap addr "00:0c:e3:6f:78:ee"
ExecStart=/usr/sbin/iw dev wlp1s0 interface add %I type managed addr "00:0c:e3:6f:78:ee"
#ExecStart=/usr/bin/iw dev wlan0 interface add wlp1s0_ap type __ap addr "00:0c:e3:6f:78:ee"
[Install]
WantedBy=multi-user.target
-
Затем выполните
systemctl enable wireless-device@wlp1s0_ap.service
-
Перезагрузите компьютер
2. Добавил новый виртуальный интерфейс в игнорируемые для NetworkManager
редактировать:
sudo nano /etc/NetworkManager/NetworkManager.conf
добавив wlp1s0_ap созданный интерфейс в раздел unmanaged-devices (Внимание! добавьте к существующим)
[keyfile]
unmanaged-devices=interface-name:wlp1s0_ap
выполните
sudo nmcli general reload
3. Настроил hostapd
Я назвал AP как EVT
с паролем ******
. Дополнительные детали ниже.
- установите
hostapd
sudo apt install hostapd
- отредактируйте файл
sudo nano /etc/default/hostapd
- текущая версия ниже
DAEMON_CONF="/etc/hostapd/hostapd.conf"
- отредактируйте конфигурационный файл (ниже текущий вариант):
sudo nano /etc/hostapd/hostapd.conf
interface=wlp1s0_ap
driver=nl80211
country_code=EE
ssid=EVT
wpa_passphrase=****
hw_mode=g
channel=10
wpa=2
wpa_key_mgmt=WPA-PSK
wpa_pairwise=TKIP
rsn_pairwise=CCMP
auth_algs=1
macaddr_acl=0
ieee80211n=1
- демон запускается как
sudo systemctl start hostapd
4. Настроил DHCP сервер
Выбран DHCP сервер isc-dhcp-server
.
isc-dhcp-server конфигурация
- установите:
sudo apt install isc-dhcp-server
- отредактируйте файл
sudo nano /etc/dhcp/dhcpd.conf
, (ниже текущий вариант):
# dhcpd.conf
#INTERFACES="wlp1s0_ap"
option domain-name "etv.org";
option domain-name-servers 192.168.1.2, 192.168.1.3;
default-lease-time 86400;
max-lease-time 604800;
ddns-update-style none;
authoritative;
subnet 192.168.1.0 netmask 255.255.255.0 {
interface wlp1s0_ap;
## начало и конец диапазона IP ##
range 192.168.1.100 192.168.1.200;
option subnet-mask 255.255.255.0; ## подсеть
option broadcast-address 192.168.1.255; ## широковещательный адрес
option routers 192.168.1.254; ## IP роутера
}
Демон запускается как
service isc-dhcp-server start
5. Назначил статический IP адрес для созданного виртуального интерфейса
Я изменил файл, чтобы назначить IP 192.168.1.111
интерфейсу wlp1s0_ap
:
sudo nano /etc/network/interfaces
содержимое файла /etc/network/interfaces
следующее
auto lo
iface lo inet loopback
auto wlp1s0_ap
iface wlp1s0_ap inet static
address 192.168.1.111
netmask 255.255.255.0
gateway 192.168.1.0
broadcast 192.168.1.255
dns-nameservers 192.168.1.2,192.168.1.3
Вышеописанные части работают, и я могу подключиться к AP.
Список ifconfig
:
lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
inet6 ::1 prefixlen 128 scopeid 0x10<host>
loop txqueuelen 1000 (Локальный петлевой интерфейс)
RX packets 1386 bytes 149889 (149.8 KB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 1386 bytes 149889 (149.8 KB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
wlp1s0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 172.20.92.22 netmask 255.255.255.0 broadcast 172.20.92.255
inet6 fe80::9ea9:58d3:aa31:b7e9 prefixlen 64 scopeid 0x20<link>
ether 00:0c:e3:6f:78:ed txqueuelen 1000 (Ethernet)
RX packets 1111808 bytes 125498550 (125.4 MB)
RX errors 0 dropped 7507 overruns 0 frame 0
TX packets 23673 bytes 3070974 (3.0 MB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
wlp1s0_ap: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.1.111 netmask 255.255.255.0 broadcast 192.168.1.255
inet6 fe80::20c:e3ff:fe6f:78ee prefixlen 64 scopeid 0x20<link>
ether 00:0c:e3:6f:78:ee txqueuelen 1000 (Ethernet)
RX packets 808 bytes 124999 (124.9 KB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 893 bytes 155057 (155.0 KB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
Проблема:
Тем не менее, я не могу установить связь с этим планшетом
Например, ping
на назначенный IP ping 192.168.1.111
дает следующий ответ:
PING 192.168.1.111 (192.168.1.111) 56(84) bytes of data.
От 192.168.1.101 icmp_seq=1 Хост назначения недоступен
От 192.168.1.101 icmp_seq=2 Хост назначения недоступен
От 192.168.1.101 icmp_seq=3 Хост назначения недоступен
От 192.168.1.101 icmp_seq=4 Хост назначения недоступен
^C
--- 192.168.1.111 ping statistics ---
5 пакетов отправлено, 0 получено, +4 ошибок, 100% потеря пакетов, время 4065 мс
telnet вывод:
~$ telnet 192.168.1.111
Попытка 192.168.1.111...
telnet: Не удалось подключиться к удаленному хосту: Нет маршрута к хосту
Вопросы:
- Что я пропустил?
- Как настроить доступ к планшету, на котором работают
hostapd + DHCP
?
Ответ или решение
Для успешного доступа к конфигурации IP и порту вашего планшета с установленным Linux Mint, на котором работает Hostapd и DHCP, важно учесть несколько аспектов. Давайте поэтапно разберёмся, что могло быть упущено и как предоставить доступ к вашему планшету.
Шаг 1: Проверка конфигурации интерфейсов
Вы уже создали виртуальный интерфейс wlp1s0_ap
с заданным статическим IP адресом 192.168.1.111
и настроили его в файле /etc/network/interfaces
. Чтобы удостовериться, что конфигурация работает, выполните следующие команды:
ifconfig
Результат этой команды покажет, что интерфейс wlp1s0_ap
активен и имеет присвоенный IP-адрес. Вы также можете убедиться, что у интерфейса не ошибочная конфигурация.
Шаг 2: Настройка маршрутизации
Убедитесь, что на вашем устройстве (например, на клиентских устройствах) правильно настроены маршруты. Ваше устройство должно использовать wlp1s0_ap
как маршрут по умолчанию для сети 192.168.1.0/24
. Проверьте, находится ли ваше клиентское устройство в той же подсети. Например, IP-адрес устройства должен быть в диапазоне 192.168.1.100 - 192.168.1.200
, который вы задали в конфигурации DHCP.
Шаг 3: Проверка DHCP-сервера
Обратите внимание, что конфигурация DHCP-сервера должна быть активной. Убедитесь, что служба ISC DHCP работает правильно и что в логах нет ошибок:
sudo systemctl status isc-dhcp-server
Если DHCP-сервер не работает, возможно, что запрашиваемый диапазон IP-адресов недоступен.
Шаг 4: Проверка маршрутизации и правил брандмауэра
Проверка настройки брандмауэра должна быть выполнена, так как часто он блокирует сетевой трафик. Убедитесь, что правила IPTables не блокируют доступ к вашему интерфейсу:
sudo iptables -L
Если правила блокируют доступ, добавьте необходимые разрешения:
sudo iptables -A INPUT -i wlp1s0_ap -j ACCEPT
sudo iptables -A OUTPUT -o wlp1s0_ap -j ACCEPT
Шаг 5: Взаимодействие с устройствами
Теперь, если все вышеуказанные проверки пройдены, вы должны иметь возможность взаимодействовать с вашим планшетом. Для этого выполните следующие команды с клиентского устройства (например, другого компьютера или мобильного устройства):
-
Пинг:
ping 192.168.1.111
-
Telnet для проверки доступа к порту:
telnet 192.168.1.111 [номер_порта]
Если клиентские устройства все еще не могут взаимодействовать с вашим планшетом, возможно, стоит перезагрузить интерфейс и проверить, что все службы запущены правильно:
sudo systemctl restart hostapd
sudo systemctl restart isc-dhcp-server
Заключение
Подводя итоги, важно следить за тем, чтобы все конфигурации между вашим доступом к AP и DHCP были правильно настроены. После выполнения указанных шагов вы должны получить возможность взаимодействовать с планшетом по IP-адресу 192.168.1.111
. Если возникнут дальнейшие проблемы, не стесняйтесь проверять логи системных сообщений для получения дополнительной информации о возникающих ошибках.