Настройка фиксированной IP wifi точки доступа (без интернета) с DHCP и DNS с использованием dnsmasq

Вопрос или проблема

У меня возникли проблемы с настройкой моего компьютера (на базе Ubuntu 18.04) в качестве точки доступа с вручную установленным IP. Я хочу, чтобы устройства могли подключаться к нему по WiFi и иметь доступ к моему веб-сайту, размещенному на компьютере на порту 80.

Я хотел установить фиксированный IP моего компьютера как 192.168.10.1, поэтому я настроил точку доступа следующим образом:

INTERFACE=wlan0 # Интерфейс моей wifi карты
CONNECTION_NAME=testhotspot
MY_IP="192.168.10.1"

sudo nmcli con add type wifi ifname $INTERFACE con-name $CONNECTION_NAME autoconnect yes ssid $CONNECTION_NAME
sudo nmcli con modify $CONNECTION_NAME 802-11-wireless.mode ap ipv4.method manual ipv4.addresses $MY_IP/24 ipv4.gateway $MY_IP
sudo nmcli con modify $CONNECTION_NAME wifi-sec.key-mgmt wpa-psk 
sudo nmcli con modify $CONNECTION_NAME wifi-sec.psk "somepassword"
# Нужно ли устанавливать ipv4.dns?

Затем я настроил dnsmasq (в /etc/dnsmasq) следующим образом:

address=/#/127.0.0.1
interface=wlan0
except-interface=lo
listen-address=::1,127.0.0.1,192.168.10.1

# Настройка DHCP
dhcp-range=192.168.10.100,192.168.10.200,12h # выполнять аренду 192.168.10.100-200
dhcp-option=option:router,192.168.10.1
dhcp-option=option:dns-server,192.168.10.1
dhcp-option=option:netmask,255.255.255.0
dhcp-leasefile=/var/lib/misc/dnsmasq.leases
dhcp-authoritative

Запустите dnsmasq и точку доступа:

sudo nmcli con up testhotspot
sudo systemctl restart dnsmasq.service

С этой настройкой я обнаружил, что при подключении к WiFi-точке доступа на другом компьютере с Ubuntu (назовем его компьютер B), я мог успешно пинговать 192.168.1.10 и получить доступ к моему веб-сайту на 192.168.10.1:80.

Однако у меня были проблемы с подключением к ней с помощью Android телефона, при этом соединение постоянно обрывалось. Мне пришлось изменить настройки WiFi на моем Android устройстве на “Статический”, вместо “DHCP”, и указать DNS на 192.168.10.1, чтобы я смог успешно пинговать 192.168.10.1. Таким образом, я предположил, что я не “объявил” клиентам о моем DNS/DHCP сервере должным образом? Я попытался изменить настройки точки доступа на nmcli con modify testhotspot ipv4.dns 192.168.10.1. Однако это не решило проблемы на моем Android устройстве (соединение с WiFi перестало обрываться, но я по-прежнему не мог пинговать 192.168.10.1?).

Я также заметил, что на компьютере B, будучи подключенным как к WiFi моей точки доступа, так и к маршрутизатору, предоставляющему интернет, некоторые публичные сайты (такие как сайт askubuntu) были недоступны, пока я не отключил WiFi-соединение с сервером точки доступа. Что я сделал неправильно в вышеуказанной настройке?

Я понял свою ошибку – мне на самом деле не нужен DNS, поэтому я переключился на использование isc-dhcp-server с dhcpd.conf как

default-lease-time 600;
max-lease-time 7200;
authoritative;
 
subnet 192.168.10.0 netmask 255.255.255.0 {
 range 192.168.10.100 192.168.10.200;
 option routers 192.168.10.1;
}

и интерфейс, указанный в /etc/default/isc-dhcp-server.

Правка:
Я решил вернуться к использованию dnsmasq – этот dnsmasq.conf работает для меня:

no-resolv
bind-interfaces
interface=wlan0 # Мой интерфейс точки доступа
listen-address=192.168.10.1

dhcp-range=192.168.10.100,192.168.10.200,255.255.255.0,12h
dhcp-option=option:router,192.168.10.1
dhcp-leasefile=/var/lib/misc/dnsmasq.leases
dhcp-authoritative

Ответ или решение

Настройка фиксированного IP WiFi точки доступа (без доступа в интернет) с использованием DHCP и DNS через dnsmasq может показаться трудоемким процессом, но с правильными шагами это становится относительно простым. Вы правильно начали, используя Ubuntu 18.04 и инструменты вроде nmcli для создания точки доступа. Давайте рассмотрим весь процесс более детально, чтобы вы могли успешно настроить вашу WiFi точку доступа.

Шаг 1: Подготовка интерфейса

Убедитесь, что ваш Wi-Fi интерфейс (например, wlan0) работает и не подключен к другой сети. Для этого отключите другие соединения:

sudo nmcli device disconnect <имя_интерфейса>

Шаг 2: Настройка точки доступа

Создание WiFi точки доступа требует конфигурации с использованием nmcli. Вы уже сделали это, но давайте убедимся, что всё прописано верно:

INTERFACE=wlan0
CONNECTION_NAME=testhotspot
MY_IP="192.168.10.1"

sudo nmcli con add type wifi ifname $INTERFACE con-name $CONNECTION_NAME autoconnect yes ssid $CONNECTION_NAME
sudo nmcli con modify $CONNECTION_NAME 802-11-wireless.mode ap ipv4.method manual ipv4.addresses $MY_IP/24 ipv4.gateway $MY_IP
sudo nmcli con modify $CONNECTION_NAME wifi-sec.key-mgmt wpa-psk 
sudo nmcli con modify $CONNECTION_NAME wifi-sec.psk "somepassword"

Шаг 3: Настройка dnsmasq

Ваша конфигурация dnsmasq должна быть адаптирована, чтобы избежать конфликтов с другими настройками. Вот пример рабочей конфигурации:

no-resolv
bind-interfaces
interface=wlan0
listen-address=192.168.10.1

# DHCP настройки
dhcp-range=192.168.10.100,192.168.10.200,255.255.255.0,12h
dhcp-option=option:router,192.168.10.1
dhcp-leasefile=/var/lib/misc/dnsmasq.leases
dhcp-authoritative

Объяснение конфигурации:

  • no-resolv: Отключает чтение /etc/resolv.conf, что предотвращает использование внешних DNS-серверов.
  • bind-interfaces: Гарантирует, что dnsmasq связывается только с указанным интерфейсом.
  • dhcp-range: Определяет диапазон IP-адресов, который будет раздаваться клиентам.
  • dhcp-option: Конфигурирует ваши сетевые параметры для клиентов, включая маршрут и параметры DNS.

Шаг 4: Запуск dnsmasq и точки доступа

Запустите вашу точку доступа и dnsmasq:

sudo nmcli con up testhotspot
sudo systemctl restart dnsmasq

Шаг 5: Проверка подключения

На другом компьютере и мобильных устройствах подключитесь к вашей WiFi сети.

  1. Убедитесь, что DHCP работает правильно на клиенте (для Android это может быть нужно вручную задать IP адрес, если DHCP не работает корректно).
  2. Проверьте, что вы можете получить доступ к вашему серверу по адресу http://192.168.10.1:80.

Шаг 6: Устранение неисправностей

Если вы сталкиваетесь с проблемами подключения:

  1. Проверьте, нет ли проблем с аутентификацией, особенно на мобильных устройствах. Используйте простой пароль и убедитесь, что используете правильный тип шифрования.
  2. Если устройства продолжают отключаться, попробуйте изменить настройки WiFi: используйте канал, который менее загружен, или смените режим (например, на 802.11g вместо 802.11n).
  3. Если Android устройства не могут получить IP адрес автоматически, возможно, вам придется вручную назначить IP-адрес и DNS, как вы уже это делали.

Заключение

Следуя этим шагам, вы сможете эффективно настроить вашу WiFi точку доступа на Ubuntu 18.04 с фиксированным IP и использовать dnsmasq для DHCP. Также обращайте внимание на корректную работу вашего сервера, чтобы устройства могли получать доступ к веб-сайту. Если будут возникать дополнительные проблемы или вопросы, пожалуйста, не стесняйтесь обращаться за поддержкой.

Оцените материал
Добавить комментарий

Капча загружается...