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:
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
où 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