Команды терминала, эквивалентные опции «Использовать как горячую точку» NetworkManager

10

Я делаю приложение графического интерфейса, которое будет управлять моим ноутбуком, чтобы он работал как точка доступа 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но этот метод не выглядит элегантным или расширяемым для других дистрибутивов.

Даниил
источник
Пожалуйста , не crosspost .
Mgorven
1
Попробуй Wicd . Он похож на NetworkManager, но имеет интерфейс текстового режима. Я не знаю, есть ли у него функция горячей точки.
Жиль "ТАК - перестать быть злым"
Спасибо за подсказку, Жиль, я собираюсь попробовать это прямо сейчас.
Даниэль
@ Жиль Я попробовал wicd, но, похоже, он обладает еще меньшей функциональностью, чем nmcli.
Даниэль

Ответы:

1

Смотрите мой ответ на «Создание точки беспроводного доступа и подключение к Интернету nmcli»

Я создал Hotspot с помощью сетевого менеджера GNOME. Проблема была в том, что я не могу настроить SSID и пароль в GUI. Если вы создаете точку доступа с графическим интерфейсом Network-Manager, он создает файл /etc/NetworkManager/system-connections/Hotspot. В этом файле можно редактировать SSID и пароль.

sudo vim /etc/NetworkManager/system-connections/Hotspot

Содержимое файла выглядит так:

[connection]
id=Hotspot
uuid=0bf627gd-8e34-48c6-865a-06f898b4y1hb
type=wifi
autoconnect=false
permissions=
secondaries=

[wifi]
hidden=false
mac-address=YOUR_WIFI_INTERFACE_MAC_ADDRESS
mac-address-blacklist=
mode=ap
seen-bssids=
ssid=SSID_NAME

[wifi-security]
group=ccmp;
key-mgmt=wpa-psk
pairwise=ccmp;
proto=rsn;
psk=YOUR_WIFI_AP_PASSWORD

[ipv4]
dns-search=
method=shared

[ipv6]
dns-search=
method=auto

Я только изменил ssidи pskсвойства в соответствии с моими потребностями. Затем я перезагрузил компьютер, потому что команда: sudo systemctl restart NetworkManagerдля перезагрузки сети, похоже, не работает правильно, потому что в графическом интерфейсе Network-Manager у меня больше нет настроек беспроводной сети, а также следующая команда работала не до перезагрузки. После перезагрузки вы можете использовать nmcliкоманду для запуска точки доступа.

nmcli con up Hotspot ifname YOUR_WIFI_INTERFACE

YOUR_WIFI_INTERFACEВы можете узнать с помощью команды iwconfig.

Базз-DEE
источник
1

Существует специальная опция в nmcli:

nmcli device wifi hotspot ifname wlan0 ssid toto password toto

Больше информации из Руководства :

wifi hotspot [ifname ifname] [con-name name] [ssid SSID] [ band { a | bg } ] [channel channel] [password password] 
ysdx
источник
0

DHCP-сервер был необходим для назначения IP-адресов для подключений Wi-Fi. Я использовал dnsmasqDNS и DHCP сервер.

Ниже приведены команды для запуска специальной точки доступа Wi-Fi:

# 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
# dnsmasq -C /dev/null >/dev/null 2>&1 --bind-interfaces --listen-address=10.42.0.1 --dhcp-range=10.42.0.10,10.42.0.200,12h
Даниил
источник