Я делаю приложение графического интерфейса, которое будет управлять моим ноутбуком, чтобы он работал как точка доступа Wi-Fi. Я могу изменить дистрибутивы, поэтому я хочу найти решение, которое будет работать в основном для всех дистрибутивов. В настоящее время я делаю это на Fedora 17.
Использование кнопки «Использовать как горячую точку» в NetworkManager очень хорошо работает для создания специальной горячей точки:
Я хочу воссоздать эту функциональность с помощью терминальных команд.
Ниже приведены два метода, которые я пытался выполнить, но пока не нашел решения.
Метод 1: iwconfig
Используя исследования из Интернета, я попробовал следующую команду:
# ifconfig wlan0 10.42.0.1 netmask 255.555.255.0 broadcast 10.42.0.255 up
# iwconfig wlan0 essid my-lappy mode ad-hoc key 0123456789
# iptables-restore < saved-hotspot-iptables
# echo 1 > /proc/sys/net/ipv4/ip_forward
# dhclient wlan0
где saved-hotspot-iptables
файл, который я сгенерировал с iptables-save > saved-hotspot-iptables
помощью iptables, установленного функцией «Использовать как горячую точку».
Способ 1 Проблема
Устройства могут видеть SSID, но не могут подключиться. Запуск ip a
показывает следующее о wlan0:
...
3: wlan0: <NO-CARRIER,BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state DORMANT qlen 1000
...
Уведомление NO-CARRIER
присутствует, а состояние DORMANT
вместо UP
.
Запуск ifconfig wlan0
показывает следующее:
...
wlan0: flags=4099<UP,BROADCAST,MULTICAST> mtu 1500
...
Обратите внимание, что RUNNING
отсутствует как один из флагов.
Способ 2: nmcli
Если кнопка «Использовать как горячую точку» в NetworkManager нажата хотя бы один раз в системе, /etc/sysconfig/network-scripts/ifcfg-Hotspot
создается, и я могу использовать следующую команду для запуска рабочей точки доступа:
# ifconfig wlan0 up
# nmcli con up id Hotspot
# iwconfig wlan0 essid my-lappy key 0123456789
Способ 2 Проблема
Если пользователь никогда ранее не нажимал «Использовать как горячую точку» в NetworkManager, nmcli con up id Hotspot
он не будет работать. Я посмотрел, nm-connection-editor --create
но не смог найти много информации. Я также изучал создание вручную, /etc/sysconfig/network-scripts/ifcfg-Hotspot
но этот метод не выглядит элегантным или расширяемым для других дистрибутивов.