Terminalbefehle, die der Option "Als Hotspot verwenden" von NetworkManager entsprechen


10

Ich mache eine GUI-Anwendung, die meinen Laptop steuert, damit er als WLAN-Hotspot fungiert. Ich kann Verteilungen ändern, um eine Lösung zu finden, die im Allgemeinen für alle Verteilungen funktioniert. Ich mache das gerade auf Fedora 17.

Die Verwendung der Schaltfläche "Als Hotspot verwenden" von NetworkManager eignet sich sehr gut zum Erstellen eines Ad-hoc-Hotspots: Geben Sie hier die Bildbeschreibung ein

Ich möchte diese Funktionalität mit Terminalbefehlen neu erstellen.

Im Folgenden sind zwei Methoden aufgeführt, mit denen ich versucht habe, dies zu erreichen, aber ich habe noch keine Lösung gefunden.


Methode 1: iwconfig
Unter Verwendung von Recherchen aus dem Internet habe ich den folgenden Befehl ausprobiert:

# 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

Wo saved-hotspot-iptablesist eine Datei, die ich iptables-save > saved-hotspot-iptablesmit den von der Funktion "Als Hotspot verwenden" festgelegten iptables generiert habe ?

Methode 1 Problem
Geräte können die SSID sehen, aber keine Verbindung herstellen. Beim Laufen wird ip aFolgendes über wlan0 angezeigt:

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

Hinweis NO-CARRIERist vorhanden, und der Zustand ist DORMANTstatt UP.

Laufen ifconfig wlan0zeigt folgendes:

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

Beachten Sie, dass RUNNINGals eines der Flags fehlt.


Methode 2: nmcli
Wenn die Schaltfläche "Als Hotspot verwenden" von NetworkManager mindestens einmal auf dem System gedrückt wird, /etc/sysconfig/network-scripts/ifcfg-Hotspotwird sie erstellt und ich kann den folgenden Befehl verwenden, um einen funktionierenden Hotspot zu starten:

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

Methode 2 Problem
Wenn der Benutzer im NetworkManager noch nie auf "Als Hotspot verwenden" geklickt hat, nmcli con up id Hotspotfunktioniert dies nicht. Ich habe nachgesehen nm-connection-editor --create, konnte aber nicht viele Informationen finden. Ich habe mich auch mit dem manuellen Erstellen befasst, /etc/sysconfig/network-scripts/ifcfg-Hotspotaber diese Methode scheint nicht elegant oder auf andere Distributionen erweiterbar zu sein.


Bitte nicht überqueren .
mgorven

1
Versuchen Sie es mit wicd . Es ähnelt NetworkManager, verfügt jedoch über eine Textmodus-Oberfläche. Ich weiß nicht, ob es eine Hotspot-Funktion hat.
Gilles 'SO - hör auf böse zu sein'

Danke für den Tipp Gilles, ich werde es gleich ausprobieren.
Daniel

@ Gilles Ich habe wicd ausprobiert, aber es scheint noch weniger Funktionalität zu haben als nmcli.
Daniel

Antworten:


1

Siehe meine Antwort auf "Erstellen Sie einen drahtlosen Zugangspunkt und teilen Sie die Internetverbindung mit nmcli"

Ich habe mit dem GNOME Network-Manager einen Hotspot erstellt. Das Problem war, dass ich die SSID und das Passwort in der GUI nicht konfigurieren kann. Wenn Sie den Hotspot mit der Network-Manager-GUI erstellen, wird die Datei erstellt /etc/NetworkManager/system-connections/Hotspot. In dieser Datei können die SSID und das Passwort bearbeitet werden.

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

Der Inhalt der Datei sieht folgendermaßen aus:

[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

Ich habe nur die ssidund die pskEigenschaften an meine Bedürfnisse angepasst. Dann habe ich meinen Computer neu gestartet, weil der Befehl: sudo systemctl restart NetworkManagerfür den Netzwerkneustart nicht richtig zu funktionieren scheint, weil ich in der Network-Manager-GUI keine drahtlosen Netzwerkeinstellungen mehr habe und auch der folgende Befehl nicht vor dem Neustart funktioniert hat. Nach dem Neustart können Sie mit dem nmcliBefehl , um den Access Point zu starten.

nmcli con up Hotspot ifname YOUR_WIFI_INTERFACE

YOUR_WIFI_INTERFACESie können mit dem Befehl herausfinden iwconfig.


1

Es gibt eine spezielle Option in nmcli:

nmcli device wifi hotspot ifname wlan0 ssid toto password toto

Weitere Infos aus dem Handbuch :

wifi hotspot [ifname ifname] [con-name name] [ssid SSID] [ band { a | bg } ] [channel channel] [password password] 

0

Ein DHCP-Server wurde benötigt, um WLAN-Verbindungen IP-Adressen zuzuweisen. Ich habe dnsmasqeinen DNS- und DHCP-Server verwendet.

Mit den folgenden Befehlen können Sie einen Ad-hoc-WLAN-Hotspot starten:

# 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
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.