Вопрос или проблема
У меня возникли проблемы с настройкой моего компьютера (на базе 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 сети.
- Убедитесь, что DHCP работает правильно на клиенте (для Android это может быть нужно вручную задать IP адрес, если DHCP не работает корректно).
- Проверьте, что вы можете получить доступ к вашему серверу по адресу http://192.168.10.1:80.
Шаг 6: Устранение неисправностей
Если вы сталкиваетесь с проблемами подключения:
- Проверьте, нет ли проблем с аутентификацией, особенно на мобильных устройствах. Используйте простой пароль и убедитесь, что используете правильный тип шифрования.
- Если устройства продолжают отключаться, попробуйте изменить настройки WiFi: используйте канал, который менее загружен, или смените режим (например, на 802.11g вместо 802.11n).
- Если Android устройства не могут получить IP адрес автоматически, возможно, вам придется вручную назначить IP-адрес и DNS, как вы уже это делали.
Заключение
Следуя этим шагам, вы сможете эффективно настроить вашу WiFi точку доступа на Ubuntu 18.04 с фиксированным IP и использовать dnsmasq для DHCP. Также обращайте внимание на корректную работу вашего сервера, чтобы устройства могли получать доступ к веб-сайту. Если будут возникать дополнительные проблемы или вопросы, пожалуйста, не стесняйтесь обращаться за поддержкой.