Commandes de terminal équivalentes à l'option «Utiliser comme point d'accès» de NetworkManager


10

Je fais une application graphique qui contrôlera mon ordinateur portable afin de le faire agir comme un hotspot wifi. Je peux changer les distributions, donc je veux trouver une solution qui fonctionnera généralement pour toutes les distributions. Je fais actuellement cela sur Fedora 17.

L'utilisation du bouton "Utiliser comme point d'accès" de NetworkManager fonctionne très bien pour créer un point d'accès ad-hoc: entrez la description de l'image ici

Je veux recréer cette fonctionnalité avec des commandes de terminal.

Voici deux méthodes que j'ai essayé d'accomplir, mais je n'ai pas encore trouvé de solution.


Méthode 1: iwconfig
En utilisant la recherche à travers le Web, j'ai essayé la commande suivante:

# 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-iptablesest un fichier que j'ai généré avec iptables-save > saved-hotspot-iptablesles iptables définis par la fonction "Use as Hotspot".

Méthode 1 Problème Les
périphériques peuvent voir le SSID mais ne peuvent pas se connecter. L'exécution ip arévèle ce qui suit à propos de wlan0:

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

L'avis NO-CARRIERest présent et l'état est à la DORMANTplace de UP.

L'exécution ifconfig wlan0montre ce qui suit:

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

Notez qu'il RUNNINGmanque l'un des drapeaux.


Méthode 2: nmcli
Si le bouton «Utiliser comme point d'accès» de NetworkManager est appuyé au moins une fois sur le système, il /etc/sysconfig/network-scripts/ifcfg-Hotspotest créé et je peux utiliser la commande suivante pour démarrer un point d'accès fonctionnel:

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

Méthode 2 Problème
Si l'utilisateur n'a jamais appuyé sur "Utiliser comme point d'accès" sur NetworkManager auparavant, nmcli con up id Hotspotcela ne fonctionnera pas. J'ai regardé nm-connection-editor --createmais je n'ai pas trouvé beaucoup d'informations. J'ai également étudié la création manuelle, /etc/sysconfig/network-scripts/ifcfg-Hotspotmais cette méthode ne semble ni élégante ni extensible à d'autres distributions.


S'il vous plaît ne pas crosspost .
mgorven

1
Essayez wicd . Il est similaire à NetworkManager mais possède une interface en mode texte. Je ne sais pas s'il a une fonction de hotspot.
Gilles 'SO- arrête d'être méchant'

Merci pour le conseil Gilles, je vais l'essayer tout de suite.
Daniel

@Gilles J'ai essayé wicd mais il semble avoir encore moins de fonctionnalités que nmcli.
Daniel

Réponses:


1

Voir ma réponse à la "Créer un point d'accès sans fil et partager une connexion Internet avec nmcli"

J'ai créé un Hotspot avec GNOME Network-Manager. Le problème était que je ne peux pas configurer le SSID et le mot de passe dans l'interface graphique. Si vous créez le Hotspot avec l'interface graphique de Network-Manager, il crée le fichier /etc/NetworkManager/system-connections/Hotspot. Dans ce fichier, il est possible de modifier le SSID et le mot de passe.

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

Le contenu du fichier ressemble à ceci:

[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

J'ai seulement changé le ssidet les pskpropriétés selon mes besoins. Ensuite, j'ai redémarré mon ordinateur car la commande: sudo systemctl restart NetworkManagerpour le redémarrage du réseau ne semble pas fonctionner correctement, car dans l'interface graphique de Network-Manager, je n'ai plus de paramètres de réseau sans fil et la commande suivante n'a pas fonctionné avant le redémarrage. Après le redémarrage, vous pouvez utiliser la nmclicommande pour démarrer le point d'accès.

nmcli con up Hotspot ifname YOUR_WIFI_INTERFACE

YOUR_WIFI_INTERFACEvous pouvez le découvrir avec la commande iwconfig.


1

Il existe une option dédiée dans nmcli:

nmcli device wifi hotspot ifname wlan0 ssid toto password toto

Plus d'informations dans le manuel :

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

0

Un serveur DHCP était nécessaire pour attribuer des adresses IP aux connexions wifi. J'ai utilisé dnsmasq, un serveur DNS et DHCP.

Voici les commandes pour démarrer un point d'accès 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
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.