Commandes de terminal équivalentes à l'option "Use as Hotspot" de NetworkManager

Je fais une application gui qui va contrôler mon ordinateur portable afin de le faire agir comme un hotspot wifi. Je peux changer les dissortingbutions donc je veux find une solution qui fonctionnera généralement pour toutes les dissortingbutions. Je le fais actuellement sur Fedora 17.

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

Je veux recréer cette fonctionnalité avec les commands du terminal.

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


Méthode 1: iwconfig
En utilisant la search à travers le web, j'ai essayé la command 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-iptables est un file que j'ai généré avec iptables-save > saved-hotspot-iptables avec les 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 de l' ip a ré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 ... 

Remarque NO-CARRIER est présent, et l'état est DORMANT au lieu de UP .

L'exécution de ifconfig wlan0 montre ce qui suit:

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

Notez que RUNNING est manquant comme l'un des drapeaux.


Méthode 2: nmcli
Si le button "Use as Hotspot" de NetworkManager est pressé au less une fois sur le système, /etc/sysconfig/network-scripts/ifcfg-Hotspot est créé et je peux utiliser la command suivante pour démarrer un hotspot opérationnel:

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

Méthode 2 Problème
Si l'user n'a jamais appuyé sur "Utiliser en tant que point d'access" sur NetworkManager avant, l' nmcli con up id Hotspot ne fonctionnera pas. J'ai regardé nm-connection-editor --create mais je n'ai pas pu find beaucoup d'informations. J'ai également étudié manuellement la création de /etc/sysconfig/network-scripts/ifcfg-Hotspot mais cette méthode ne semble pas élégante ou extensible à d'autres dissortingbutions.

Voir ma réponse à la "Créer un point d'access sans fil et partager une connection Internet avec nmcli "

J'ai créé un Hotspot avec le gestionnaire de réseau GNOME. 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 point d'access avec l'interface graphique de Network-Manager, il crée le file /etc/NetworkManager/system-connections/Hotspot . Dans ce file, il est possible de modifier le SSID et le mot de passe.

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

Le contenu du file 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é les ssid et les propriétés psk à mes besoins. Ensuite, j'ai redémarré mon ordinateur parce que la command: sudo systemctl restart NetworkManager pour le redémarrage du réseau ne semble pas fonctionner correctement, car dans l'interface graphique de Network-Manager je n'ai plus de parameters de réseau sans fil et la command suivante n'a pas fonctionné avant le redémarrage. Après le redémarrage, vous pouvez utiliser la command nmcli pour démarrer le point d'access.

 nmcli con up Hotspot ifname YOUR_WIFI_INTERFACE 

YOUR_WIFI_INTERFACE vous pouvez find avec la command iwconfig .

Un server DHCP était nécessaire pour atsortingbuer des adresses IP aux connections wifi. J'ai utilisé dnsmasq , un server DNS et DHCP.

Voici les commands pour démarrer 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 --listn-address=10.42.0.1 --dhcp-range=10.42.0.10,10.42.0.200,12h