Polecenia terminalowe równoważne opcji „Użyj jako hotspot” NetworkManager

10

Tworzę aplikację GUI, która będzie kontrolować mój laptop, aby działał jak hotspot Wi-Fi. Mogę zmienić dystrybucje, więc chcę znaleźć rozwiązanie, które będzie działać ogólnie dla wszystkich dystrybucji. Obecnie robię to na Fedorze 17.

Użycie przycisku „Użyj jako hotspot” NetworkManagera działa bardzo dobrze, aby utworzyć hotspot ad-hoc: wprowadź opis zdjęcia tutaj

Chcę odtworzyć tę funkcję za pomocą poleceń terminalu.

Poniżej znajdują się dwie metody, które starałem się osiągnąć, ale nie znalazłem jeszcze rozwiązania.


Metoda 1: iwconfig
Korzystając z badań z całej sieci, wypróbowałem następujące polecenie:

# 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

gdzie saved-hotspot-iptablesjest plik, który wygenerowałem za iptables-save > saved-hotspot-iptablespomocą iptables ustawionych przez funkcję „Użyj jako hotspot”.

Metoda 1 Problem
Urządzenia widzą SSID, ale nie mogą się połączyć. Uruchomienie ip aujawnia następujące informacje o wlan0:

...
3: wlan0: <NO-CARRIER,BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state DORMANT qlen 1000
...

Zawiadomienie NO-CARRIERjest obecne, a stan jest DORMANTzamiast UP.

Uruchomienie ifconfig wlan0pokazuje:

...
wlan0: flags=4099<UP,BROADCAST,MULTICAST>  mtu 1500
...

Zauważ, że RUNNINGbrakuje jej jako jednej z flag.


Metoda 2: nmcli
Jeśli przycisk „Użyj jako hotspot” NetworkManagera zostanie naciśnięty co najmniej raz w systemie, /etc/sysconfig/network-scripts/ifcfg-Hotspotzostanie utworzony i mogę użyć następującego polecenia, aby uruchomić działający hotspot:

# ifconfig wlan0 up
# nmcli con up id Hotspot
# iwconfig wlan0 essid my-lappy key 0123456789

Metoda 2 Problem
Jeśli użytkownik nigdy wcześniej nie nacisnął „Użyj jako hotspot” w NetworkManager, nmcli con up id Hotspotnie będzie działać. Patrzyłem, nm-connection-editor --createale nie mogłem znaleźć wielu informacji. Zajrzałem także do ręcznego tworzenia, /etc/sysconfig/network-scripts/ifcfg-Hotspotale ta metoda nie wydaje się elegancka ani rozszerzalna na inne dystrybucje.

Daniel
źródło
Proszę nie krzyżować .
mgorven
1
Spróbuj wicd . Jest podobny do NetworkManager, ale ma interfejs trybu tekstowego. Nie wiem, czy ma funkcję hotspotu.
Gilles 'SO - przestań być zły'
Dzięki za wskazówkę Gilles, wypróbuję to od razu.
Daniel
@Gilles Próbowałem wicd, ale wydaje się, że ma jeszcze mniejszą funkcjonalność niż nmcli.
Daniel

Odpowiedzi:

1

Zobacz moją odpowiedź na temat „Utwórz bezprzewodowy punkt dostępowy i udostępnij połączenie internetowe nmcli

Utworzyłem Hotspot za pomocą GNOME Network-Manager. Problem polegał na tym, że nie mogę skonfigurować SSID i hasła w GUI. Jeśli utworzysz punkt aktywny za pomocą interfejsu GUI menedżera sieci, plik zostanie utworzony /etc/NetworkManager/system-connections/Hotspot. W tym pliku można edytować identyfikator SSID i hasło.

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

Zawartość pliku wygląda następująco:

[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

Zmieniłem tylko ssidi pskwłaściwości do moich potrzeb. Następnie zrestartowałem komputer, ponieważ polecenie: sudo systemctl restart NetworkManagerdla restartu sieci wydaje się nie działać poprawnie, ponieważ w graficznym interfejsie menedżera sieci nie mam już żadnych ustawień sieci bezprzewodowej, a także następujące polecenie nie zadziałało przed restartem. Po ponownym uruchomieniu możesz użyć nmclipolecenia, aby uruchomić punkt dostępu.

nmcli con up Hotspot ifname YOUR_WIFI_INTERFACE

YOUR_WIFI_INTERFACEmożesz dowiedzieć się za pomocą polecenia iwconfig.

BuZZ-dEE
źródło
1

Istnieje dedykowana opcja w nmcli:

nmcli device wifi hotspot ifname wlan0 ssid toto password toto

Więcej informacji z instrukcji :

wifi hotspot [ifname ifname] [con-name name] [ssid SSID] [ band { a | bg } ] [channel channel] [password password] 
ysdx
źródło
0

Serwer DHCP był potrzebny do przypisania adresów IP połączeniom Wi-Fi. Użyłem dnsmasqserwera DNS i DHCP.

Oto polecenia, aby uruchomić hotspot Wi-Fi ad-hoc:

# 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
Daniel
źródło