Команди терміналів, еквівалентні опції "Використовувати як точку доступу" NetworkManager


10

Я роблю додаток gui, яке керуватиме моїм ноутбуком, щоб змусити його діяти як точку доступу до wifi. Я можу змінити дистрибутиви, тому хочу знайти рішення, яке буде працювати загалом для всіх дистрибутивів. Зараз я це роблю на 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але цей метод не видається елегантним або розповсюджуваним на інші дистрибутиви.


Будь ласка, не перехрещуйтесь .
mgorven

1
Спробуйте wicd . Він схожий на NetworkManager, але має інтерфейс текстового режиму. Я не знаю, чи є у нього точка доступу.
Жил "ТАК - перестань бути злим"

Дякую за підказку Жилле, я зараз спробую це спробувати.
Даніель

@Gilles Я спробував wicd, але, схоже, він має ще меншу функціональність, ніж nmcli.
Даніель

Відповіді:


1

Дивіться мою відповідь на "Створення точки бездротового доступу та спільного доступу до Інтернету з nmcli"

Я створив точку доступу з Менеджером мережі 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для перезавантаження мережі, здається, не працює належним чином, оскільки в GUI Network-Manager більше немає налаштувань бездротової мережі, а також наступна команда працювала не перед перезавантаженням. Після перезапуску ви можете скористатися nmcliкомандою для запуску точки доступу.

nmcli con up Hotspot ifname YOUR_WIFI_INTERFACE

YOUR_WIFI_INTERFACEви можете дізнатися за допомогою команди iwconfig.


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] 

0

DHCP-сервер був потрібний, щоб призначити IP-адреси для з'єднання Wi-Fi. Я використовував dnsmasq, DNS і DHCP-сервер.

Нижче наведено команди для запуску спеціальної точки доступу до wifi:

# 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
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.