web-dev-qa-db-fra.com

Comment créer un point d'accès WiFi partageant une connexion Internet sans fil (adaptateur unique)?

Je sais comment créer un point d'accès lorsque je suis connecté à un réseau câblé, mais lorsque j'utilise Internet depuis une connexion WiFi, la connexion sans fil est déconnectée dès l'activation du point d'accès.

Sous Windows, je peux utiliser Connectify Hotspot , ce qui me permet de partager la connexion Internet depuis le même adaptateur sans fil lorsque je crée un point d'accès. Comme vous pouvez le lire sur le page de présentation de la technologie :

Le mode Point d'accès vous permet de créer un point d'accès à l'aide de la même carte Wi-Fi que celle que vous utilisez pour accéder à Internet.

Comment puis-je faire cela sur Ubuntu?

100
Ruppesh Nalwaya

Étapes simples: Créer un point d'accès wifi dans Ubuntu

  1. Désactiver le Wi-Fi (décochez la case Activer le Wi-Fi)
  2. Accéder à la connexion réseau (Modifier les connexions ...)
  3. Cliquez sur "Ajouter"
  4. Choisissez "Wi-Fi" et cliquez sur "Créer"
  5. Tapez le nom de la connexion comme "wifi-hotspot"
  6. Tapez le SSID que vous souhaitez
  7. Choisissez Adresse MAC du périphérique dans la liste déroulante (wlan0).
  8. Sécurité Wifi sélectionnez "WPA & WPA2 Personal" et définissez un mot de passe .
  9. Accédez à l'onglet Paramètres IPv4, dans la liste déroulante Méthode, sélectionnez Partagé avec d'autres ordinateurs.
  10. Puis enregistrez et fermez.
  11. Ouvrez Terminal (Ctrl + Alt + T) et tapez la commande suivante avec le nom de votre connexion utilisé à l'étape 5.

    Sudo gedit /etc/NetworkManager/system-connections/wifi-hotspot
    
  12. Trouvez mode=infrastructure et remplacez-le par mode=ap

  13. Maintenant, vérifiez la section du réseau où le wi-fi sera connecté au hotspot créé automatiquement. Si vous ne le trouvez pas, allez à Connectez-vous au réseau caché ... Recherchez la connexion et connectez-vous à celui-ci.

Source: http://ubuntuhandbook.org/index.php/2014/09/3-ways-create-wifi-hotspot-ubuntu/

63
Purushoth

Après avoir vu ce lien proposé par vasishath , j'ai réussi à configurer un point d'accès sans fil pour partager la connexion Internet depuis le même réseau sans fil. dispositif d'interface. Ce périphérique sans fil doit utiliser un pilote Atheros déjà construit avec nl80211 soutien. Ensuite, je vais vous montrer comment.

Détecter si votre périphérique sans fil fonctionnera avec cette méthode

Exécutez la commande suivante dans terminal :

lsmod | grep ath

Si la sortie est nulle ou si la chaîne cfg80211 n'est pas dans la sortie, cela n'a aucun sens de continuer et vous devez faire attention aux deuxième et troisième points de cette réponse .

Outils nécessaires

Vérifiez si tous les paquets mentionnés ci-dessous sont installés: iw , hostapd , iptables , udhcpd , udhcpc , macchanger .

Vous pouvez les installer avec

Sudo apt-get install iw hostapd iptables udhcpd udhcpc macchanger

Editer des fichiers

Exécutez la commande suivante dans terminal pour éditer les fichiers correspondants:

Sudo -H gedit /etc/hostapd.conf /etc/udhcpd.conf /etc/default/udhcpd /etc/wpa_supplicant.conf
  • Dans le fichier hostapd.conf, ajoutez le code suivant:

    interface=new1
    driver=nl80211
    ssid=my_wifi_hotspot      #Change the ssid name as you wish
    channel=11                #I sugest you to use the same channel as your wireless network
    hw_mode=g
    wme_enabled=1
    macaddr_acl=0
    auth_algs=1
    ignore_broadcast_ssid=0
    wpa=3
    wpa_passphrase=1234567890 #Change the passphrase as you wish
    wpa_key_mgmt=WPA-PSK
    wpa_pairwise=TKIP
    rsn_pairwise=CCMP
    
  • Dans le fichier udhcpd.conf, commentez toutes les lignes en cours (en ajoutant un caractère # devant la ligne) et ajoutez les nouvelles lignes suivantes:

    start 192.168.0.102         #These IPs must to be in the same subset as your current default route
    end 192.168.0.117 
    interface new1 
    
    opt dns 192.168.0.1         #Your current default route (Gateway)
    option subnet 255.255.255.0
    opt router 192.168.0.101    #This IP must to be in the same subset as your current default route
    option  domain  localhost
    
  • Dans/etc/default/udhcp, commentez la ligne DHCPD_ENABLED="no".

  • Dans wpa_supplicant.conf, vous devez fournir les paramètres de votre réseau sans fil actuel. Voir man wpa_supplicant pour quelques exemples rapides. Et vous avez probablement plus d'exemples dans le répertoire /usr/share/doc/wpa_supplicant/. J'ai utilisé quelque chose comme:

    ctrl_interface=/var/run/wpa_supplicant
    network={
      ssid="my_wifi_network"
      key_mgmt=WPA-PSK
      proto=WPA
      pairwise=CCMP
      group=CCMP
      psk="mypassphrase"
    }
    
  • Enregistrez tous les fichiers et fermez-les.

Remarque: Toutes ces modifications n'affectent en rien votre configuration réseau actuelle.

Faire un script shell

  • Dans un terminal, exécutez mkdir -p bin - cette commande créera un répertoire bin dans votre dossier home si vous ne l'avez pas déjà.
  • Après avoir exécuté gedit ~/bin/hotspotsetup.sh, le nouveau fichier hotspotsetup.sh sera créé dans gedit.
  • Copiez et collez le script suivant dans le nouveau fichier créé:
#!/bin/bash

service network-manager stop
sleep 1

pkill -15 nm-applet
sleep 1

ifconfig wlan0 down             #wlan0 - the name of your wireless adapter
sleep 1

iw phy phy0 interface add new0 type station
iw phy phy0 interface add new1 type __ap
sleep 2

ifconfig new0 down
macchanger --mac 00:11:22:33:44:55 new0
ifconfig new1 down
macchanger --mac 00:11:22:33:44:66 new1
ifconfig new0 up
ifconfig new1 up

ifconfig new1 192.168.0.101 up  #192.168.0.101 - the same IP defined for router in 'udhcpd.conf' file 
hostapd /etc/hostapd.conf &
sleep 2

service udhcpd start

wpa_supplicant -inew0 -c/etc/wpa_supplicant.conf &
sleep 10

udhcpc -i new0

echo "1" > /proc/sys/net/ipv4/ip_forward
iptables --table nat --append POSTROUTING --out-interface new0 -j MASQUERADE
iptables --append FORWARD --in-interface new1 -j ACCEPT
  • Enregistrez le fichier et fermez-le.
  • Retournez dans le terminal et exécutez: chmod +x ~/bin/hotspotsetup.sh - pour accorder un accès en exécution au script.

Démarrez le point d'accès sans fil connecté à un réseau sans fil à partir du même adaptateur sans fil

Exécutez le script ci-dessus dans le terminal avec les privilèges root:

Sudo ~/bin/hotspotsetup.sh

Preuve

hotspotsetup.sh

Remarque: Pour redémarrer votre service de gestionnaire de réseau tel qu'il était avant d'exécuter le script hotspotsetup.sh, redémarrez votre ordinateur (Sudo reboot).

Source: Connectify for Linux avec une interface sans fil unique .

42
Radu Rădeanu

Permettez-moi de vous présenter un excellent outil qui simplifie tout: create_ap (by oblique)
C’est le référentiel officiel: https://github.com/oblique/create_ap
Cet outil fait partie de Arch Linux et devrait également figurer dans bunt!
Il est très facile à utiliser et très efficace.
Pour l'installer dans bunt vous devez d'abord installer les dépendances:

Sudo apt install bash util-linux procps hostapd iproute2 iw wireless-tools haveged iptables dnsmasq git

Sauf si vous avez utilisé une "mini-image d'installation", vous en avez déjà 90% ...
Une fois que c'est fait, clonez le référentiel d'oblique:

git clone https://github.com/oblique/create_ap.git

Localisez votre terminal dans le référentiel téléchargé:

cd create_ap

Installez l'outil avec:

Sudo make install

(aucune compilation avec make n'est nécessaire)
Facile, non? Le reste est encore plus facile ... ... si votre appareil peut être utilisé à la fois comme client et comme PA (comme une puce wifi atheros - modifier: une puce Intel aussi, voir le deuxième commentaire bellow) vous devez simplement vous connecter à votre routeur domestique avec le gestionnaire de réseau, comme vous le faites habituellement, et exécuter une ligne de commande comme celle-ci:

Sudo create_ap <connected interface> <repeater interface> <essid repeated network> <WPA Key>

exemple

Sudo create_ap wlp2s0 wlp2s0 Bathroom_WiFi mysecuresecretkey

Et c'est tout! create_ap Incroyable et si facile! Il ne vous reste plus qu'à vous connecter au réseau répété avec votre appareil Android. Vous verrez sur votre terminal portable la poignée de main négociée entre votre ordinateur portable et le client: enter image description here Et vous pouvez profiter d’une belle séance de salle de bain avec Internet ... Tout se fait avec une seule interface et avec une simple commande. Cet outil propose de nombreuses options. Pour plus d’informations, visitez le site github de oblique (lien indiqué précédemment) et si vous parlez espagnol, vous pouvez consulter le sujet de ce forum: create_ap: repetidor universal todo terreno

10
kcdtv

Comme vous pouvez le voir dans les commentaires sur cette réponse, il y a un moyen de le faire, IS. C'est documenté pour FreeBSD (qui n'est pas Ubuntu/Linux) ici: https://serverfault.com/questions/192144/connect-to-multiple-ap-with-one-wifi-adapter-under-linux- freebsd (Lien du commentaire). Cela ne semble pas fonctionner exactement de la même manière sous Linux, mais il devrait en être de même. Malheureusement, je n'ai pas pu trouver plus d'informations détaillées sur ce sujet.

La méthode la plus simple et probablement la plus courante consiste à utiliser deux interfaces réseau physiques. Vous pouvez donc acheter une autre clé Wi-Fi ou simplement utiliser une autre technologie pour vous connecter davantage et ne faire que l'une d'entre elles via Wifi. Les possibilités sont par exemple:

  • Bluetooth + Wifi
  • LAN/Ethernet + Wifi
  • 3G/LTE + Wifi
  • Wifi (externe) + Wifi (intégré ou deuxième externe)

Une fois, j’ai remarqué qu’Ubuntu Linux est capable de gérer deux périphériques Wi-Fi à la fois sans être compliqué. Je n'ai pas testé cette possibilité de partage de la connexion Internet, etc., mais cela devrait être possible. La complexité de ce processus dépend probablement du type de connexion que vous utilisez. Sous Linux, vous n’avez probablement pas besoin d’un logiciel spécial. Il devrait être possible de partager des connexions sans avoir besoin d'outils spéciaux. Malheureusement, je ne peux pas l'essayer pour le moment.

Je vous recommande d'essayer le Wifi à Wifi si vous avez quand même une autre clé Wi-Fi, sinon LAN ou Bluetooth (intégré à la plupart des ordinateurs portables). Le partage 3G/LTE est un peu mauvais à cause des plans de données des fournisseurs, etc.

5
verpfeilt

Cela a été ajouté comme une autre réponse parce que l'autre réponse a créé beaucoup de controverse.

Vous devez avant tout connaître le nom de notre adaptateur sans fil. Utilisez la commande ci-dessous pour l'obtenir:

iwconfig

Ce serait très probablement wlan0 ou wlan1.

Dans certains cas, nous utilisons un ancien adaptateur WiFi et nous souhaitons connaître le pilote qu’il utilise. Nous pouvons utiliser les commandes ci-dessous en fonction de son type, USB ou PCI.

lsusb
lspci

Utilisez la commande ci-dessous pour voir quel pilote vous utilisez actuellement:

lsmod

Besoin d'installer un programme. Appuyez simplement sur Ctrl+Alt+T sur votre clavier pour ouvrir Terminal. Lorsqu'il s'ouvre, exécutez les commandes ci-dessous:

Sudo apt-get install hostapd

Ouvrez le fichier de configuration de l'adaptateur réseau principal à l'aide de cette commande:

Sudo gedit /etc/hostapd/hostapd.conf

Et éditez-le comme ça:

interface=wlan0
driver=nl80211
country_code=US
ssid=mySSID
hw_mode=g
channel=1
wpa=2
wpa_passphrase=MyWiFiPassword
wpa_key_mgmt=WPA-PSK
wpa_pairwise=TKIP
rsn_pairwise=CCMP
auth_algs=1
macaddr_acl=0

La première ligne devrait être le nom de votre carte réseau. La 2e ligne ne devrait pas être changée dans la plupart des cas, à moins que vous n'ayez pas eu de chance et que vous n'ayez besoin que d'un pilote tiers. La 3ème ligne ne nécessite pas d'explication. La 4ème ligne devrait être votre nom de point d'accès WiFi (SSID). La cinquième ligne identifie votre réseau en tant que mode/b/g/n. La ligne suivante est votre canal de réseau. Les lignes restantes définissent la sécurité et le cryptage. Dans la plupart des cas, il vous suffit de modifier la phrase secrète.

Ouvrez le 2ème fichier de configuration avec cette commande:

Sudo gedit /etc/default/hostapd

Et changez-le comme ça:

DAEMON_CONF="/etc/hostapd/hostapd.conf"
RUN_DAEMON="yes"
DAEMON_OPTS="-dd"

La première ligne pointe vers le fichier de configuration de l’adaptateur réseau principal. La deuxième ligne indique à hostapd de s’exécuter en mode DAEMON en arrière-plan au démarrage. La dernière ligne indique à hostapd de consigner chaque message. Le truc important ici est que si vous souhaitez utiliser deux adaptateurs de réseau sans fil différents pour configurer un point d’accès à double bande, vous devez créer des fichiers de configuration originaux (1er fichier) distincts pour chaque source et les modifier comme suit:

DAEMON_CONF="/etc/hostapd/hostapd.conf /etc/hostapd/hostapd2.conf"

Les configurations sont terminées.

Lancer DAEMON

Maintenant, vous devez vous assurer que hostapd DAEMON démarre au démarrage (1ère commande ci-dessous), vous devez également l'exécuter maintenant pour éviter un redémarrage obligatoire.

Sudo update-rc.d hostapd defaults
Sudo /etc/init.d/hostapd start

Et c'est fini. Nous pouvons maintenant nous connecter à notre nouveau point d’accès.

Sources: Hostapd: la méthode Linux pour créer un point d'accès Wi-Fi virtuel & page de documentation Hostapd Linux

4
Mitch

Ce n'est actuellement possible que pour les cartes Atheros et quelques cartes Broadcom. Pour savoir lequel vous utilisez, exécutez la commande suivante dans le terminal et collez le résultat ici: -

lspci | Wireless

Ou vous pouvez simplement essayer cette méthode. Voici le lien vers le didacticiel expliquant comment faire cela: - connectify-for-linux-with-single-wireless-interface

1
vasishath

Le meilleur moyen que j'ai trouvé de créer une expérience de connexion est d'utiliser AP-HOTSPOT!
(WPA2..pas wep comme Linux le fait par défaut dans Ubuntu)

Sudo add-apt-repository ppa:nilarimogard/webupd8

Sudo apt-get update

Sudo apt-get install ap-hotspot

Pour exécuter et options

Début: Sudo ap-hotspot start

Stop: Sudo ap-hotspot stop

Configurez: Sudo ap-hotspot Configure

Vous voulez un interface utilisateur graphique ?

Pour l'installer, ouvrez un terminal, puis naviguez jusqu'à:

cd /home/USERNAME/LOCATION

Ensuite, lancez les commandes d'installation:

qmakename__

makename__

Crée un programme ... Faites-le glisser sur le bureau et faites :) Bravo

En ce qui concerne deux adaptateurs ... Windows et bsd gratuit peuvent le faire ... Pour le moment, j'essaie encore de le comprendre car je n'ai abordé ce scénario que pour moi à partir d'hier! Je vais faire rapport ... Linux peut le faire aussi .. Ce n'est pas une limitation matérielle pour les adaptateurs qui peuvent le faire avec d'autres systèmes d'exploitation ...

1
user251335

Comme Purushoth , cette réponse nécessite également 2 adaptateurs WiFi (par exemple: un adaptateur Wi-Fi USB interne et un adaptateur USB Wi-Fi externe). Cependant, je ne pouvais pas obtenir sa réponse, alors voici ce que j'ai fait à la place.

Testé dans Xubuntu 14.04.

Comment configurer le PC Ubuntu/Xubuntu en tant que point d'accès WiFi (par exemple, pour une utilisation dans les aéroports ou dans les avions afin de partager une seule connexion payante depuis votre PC avec votre téléphone et d'autres périphériques) :

  1. Branchez un dongle WiFi USB. Tous les dongles ne peuvent pas agir en tant que “point d'accès”, mais la carte interne peut à coup sûr, nous allons donc (jusqu'à présent, jusqu'à ce que vous puissiez trouver un adaptateur USB Wi-Fi pouvant servir de point d'accès), utiliser le USB externe pour se connecter au service payant (ex: WiFi en vol), et nous utiliserons l’adaptateur wifi interne pour créer le point d’accès wifi.
    • IMPORTANT: NE PAYEZ PAS ET NE CONNECTEZ PAS LE SERVICE PAYÉ AVEC UN MAUVAIS ADAPTATEUR WIFI (externe), OR SAUF QUE VOUS DEVEZ PAYER À NOUVEAU POUR LE COMMUTER, COMME VOTRE CONNEXION PAYÉE IS. _ QUELQUE FAÇON LIÉ À VOTRE ADAPTATEUR WIFI — PROBABLEMENT VIA SON ADRESSE MAC PERMANENTE OR QUELQUE CHOSE.
  2. Cliquez à gauche sur l'icône wifi dans le panneau et choisissez "Créer un nouveau réseau WiFi ..." → choisissez l'adaptateur Wi-Fi interne (qui est wlan0), créez un nom de réseau (SSID) (ex: "wifi-hotspot") , choisissez "WPA & WPA2 Personal" pour "Sécurité Wi-Fi" et créez un mot de passe, puis cliquez sur "Créer".
    • NB: IL Y A UN BOGUE QUI VOUS EMPORQUE PARFOIS IMPOSSIBLE DE CHOISIR L’ADAPTATEUR WIFI INTERNE POUR CETTE ÉTAPE LORSQUE VOUS AVEZ ÉGALEMENT UN ADAPTATEUR USB WIFI EXTÉRIEUR. SI CELUI-CI ARRIVE, DÉBRANCHEZ SIMPLEMENT L’ADAPTATEUR EXTERNE WIFI EN RÉALISANT CETTE ÉTAPE POUR FABRIQUER LE HOTSPOT WIFI, puis rebranchez-le lorsque vous avez terminé/si indiqué ci-dessous.
  3. Modifiez le fichier de configuration du nouveau point d'accès wifi que vous venez de créer:
    • cd /etc/NetworkManager/system-connections
    • lsname__
    • Recherchez le fichier de votre point d'accès que vous venez de créer via l'étape de l'interface graphique ci-dessus. ex: “wifi-hotspot”, et éditez-le:
    • Sudo nano wifi-hotspot
    • Flèche vers le bas et changer "mode = adhoc" ou quoi que ce soit qui dit "mode = ap". Sauvegarder et quitter.
  4. Maintenant, avec l'adaptateur WiFi USB externe toujours débranché, activez le point d'accès wifi que vous venez de créer en cliquant à nouveau sur l'icône WiFi dans le panneau et en sélectionnant "Connexion au réseau WiFi masqué ..." → choisissez à nouveau votre adaptateur wifi interne. "Adaptateur Wi-Fi" et choisissez le nom du point d'accès (ex: "hotspot wifi") pour "Connexion". Les champs "Nom du réseau", "Sécurité Wi-Fi" et "Mot de passe" seront désormais automatiquement remplis. et grisé. Cliquez sur "Connecter". Le point d'accès WiFi sera activé sur votre carte interne. Vous pouvez y connecter vos appareils, tels que votre téléphone.
  5. Enfin, avec votre point d'accès WiFi actif, branchez votre adaptateur WiFi secondaire/USB et utilisez-le pour vous connecter au réseau payant. Payez votre abonnement ou quoi que ce soit et votre connexion Internet via cet adaptateur sera désormais automatiquement diffusée vers les périphériques connectés via votre adaptateur interne "Access Point" que vous venez de configurer.
  6. Terminé!

Références: Voici où j'ai trouvé le chemin du dossier /etc/NetworkManager/system-connections et une autre approche (cela n'a pas fonctionné pour moi): https://askubuntu.com/a/609199/327339

0
Gabriel Staples