Comandi del terminale equivalenti all'opzione "Usa come hotspot" di NetworkManager


10

Sto realizzando un'applicazione gui che controllerà il mio laptop per farlo funzionare come un hotspot wifi. Potrei cambiare le distribuzioni, quindi voglio trovare una soluzione che funzionerà generalmente per tutte le distribuzioni. Attualmente lo sto facendo su Fedora 17.

L'uso del pulsante "Usa come hotspot" di NetworkManager funziona molto bene per creare un hotspot ad hoc: inserisci qui la descrizione dell'immagine

Voglio ricreare questa funzionalità con i comandi del terminale.

Di seguito sono riportati due metodi che ho provato a ottenere questo risultato ma non ho ancora trovato una soluzione.


Metodo 1: iwconfig
Usando la ricerca dall'altra parte del web, ho provato il seguente comando:

# 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

dove si saved-hotspot-iptablestrova un file che ho generato con iptables-save > saved-hotspot-iptablesl'iptables impostato dalla funzione "Usa come hotspot".

Metodo 1 Problema I
dispositivi possono vedere l'SSID ma non sono in grado di connettersi. L'esecuzione ip arivela quanto segue su wlan0:

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

L'avviso NO-CARRIERè presente e lo stato è DORMANTinvece di UP.

L'esecuzione ifconfig wlan0mostra quanto segue:

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

Si noti che RUNNINGmanca come una delle bandiere.


Metodo 2: nmcli
Se il pulsante "Usa come hotspot" di NetworkManager viene premuto almeno una volta sul sistema, /etc/sysconfig/network-scripts/ifcfg-Hotspotviene creato e posso utilizzare il comando seguente per avviare un hotspot funzionante:

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

Metodo 2 Problema
Se l'utente non ha mai premuto prima "Usa come hotspot" su NetworkManager, nmcli con up id Hotspotnon funzionerà. Ho guardato nm-connection-editor --createma non sono riuscito a trovare molte informazioni. Ho anche cercato di creare manualmente, /etc/sysconfig/network-scripts/ifcfg-Hotspotma questo metodo non sembra elegante o estendibile ad altre distribuzioni.


Per favore, non fare il crosspost .
mgorven,

1
Prova Wicd . È simile a NetworkManager ma ha un'interfaccia in modalità testo. Non so se ha una funzione hotspot.
Gilles 'SO- smetti di essere malvagio' il

Grazie per il suggerimento Gilles, lo proverò subito.
Daniel,

@Gilles Ho provato wicd ma sembra avere ancora meno funzionalità di nmcli.
Daniel,

Risposte:


1

Vedi la mia risposta al "Crea punto di accesso wireless e condividi la connessione Internet con nmcli"

Ho creato un hotspot con GNOME Network-Manager. Il problema era che non riesco a configurare SSID e password nella GUI. Se si crea l'hotspot con la GUI di Network-Manager, crea il file /etc/NetworkManager/system-connections/Hotspot. In quel file è possibile modificare l'SSID e la password.

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

Il contenuto del file è simile al seguente:

[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

Ho modificato solo ssidle pskproprietà e le mie esigenze. Quindi ho riavviato il mio computer perché il comando: sudo systemctl restart NetworkManagerper il riavvio della rete sembra non funzionare correttamente, perché nella GUI di Network Manager non ho più impostazioni di rete wireless e anche il comando seguente non ha funzionato prima del riavvio. Dopo il riavvio è possibile utilizzare il nmclicomando per avviare il punto di accesso.

nmcli con up Hotspot ifname YOUR_WIFI_INTERFACE

YOUR_WIFI_INTERFACEpuoi scoprirlo con il comando iwconfig.


1

C'è un'opzione dedicata in nmcli:

nmcli device wifi hotspot ifname wlan0 ssid toto password toto

Maggiori informazioni dal manuale :

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

0

Era necessario un server DHCP per assegnare gli indirizzi IP alle connessioni wifi. Ho usato dnsmasqun server DNS e DHCP.

I seguenti sono i comandi per avviare un hotspot wifi 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
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.