Comment créer un hotspot wifi non adhoc?


13

Je voulais utiliser mon bureau avec une connexion Ethernet filaire (eth0) pour faire fonctionner mon adaptateur Wifi USB "TP-LINK TL-WN722N" (wlan0) comme point d'accès non adhoc (mode infrastructure) auquel mon Android se connecte.

Après beaucoup de recherches, j'ai finalement trouvé une méthode (répartie sur de nombreux sites Web) qui fait la plupart de ce dont j'ai besoin ...

Dépendances:

 hostapd
 bridge-utils

J'ai modifié "/ etc / network / interfaces"

sudo gedit /etc/network/interfaces

contenir:

# This file describes the network interfaces available on your system
# and how to activate them.

auto lo br0
iface lo inet loopback

allow-hotplug eth0
iface eth0 inet manual

allow-hotplug wlan0
iface wlan0 inet manual

# Bridge setup

# for dhcp address
iface br0 inet dhcp
bridge_ports eth0 wlan0

# for static ip
# iface br0 inet static
# bridge_ports eth0 wlan0
# adapt with your network settings
# address 192.168.1.250
# netmask 255.255.255.0
# network 192.168.1.0
# broadcast 192.168.1.255
# gateway 192.168.1.1
# dns-* options are implemented by the resolvconf package, if installed
# dns-nameservers 192.168.1.1
# dns-search localdomain

### Reference ###

# Creating a Wireless Access Point with Debian Linux « Agent Oss (October 31, 2011)
# https://agentoss.wordpress.com/2011/10/31/creating-a-wireless-access-point-with-debian-linux/

Mon "/etc/hostapd/hostapd.conf" (que j'ai réussi à assembler moi-même)

sudo gedit /etc/hostapd/hostapd.conf

contient:

 ### Guts ###

 interface=wlan0
 bridge=br0
 driver=nl80211

 ### General ###

 ssid=____________________
 hw_mode=g
 channel=1

 ### Security ###

 macaddr_acl=0
 auth_algs=1
 ignore_broadcast_ssid=0     ## 0 visible # 1 hidden ##
 wpa=2
 wpa_passphrase=____________________
 wpa_key_mgmt=WPA-PSK
 wpa_pairwise=TKIP
 rsn_pairwise=CCMP

 ### Reference ###

 ## Created Tuesday, February 14, 2012 ## Ubuntu 11.10/12.04 ##

 # Hostapd Linux Documentation Page
 # http://linuxwireless.org/en/users/Documentation/hostapd

 # Creating a Network Bridge on Ubuntu (January 16th, 2011)
 # http://webserver.linuxportal.nl/?p=422

(J'ai édité les bits de sécurité pour ce post)

Tout cela me permet d'ouvrir un terminal et d'exécuter:

 sudo hostapd -B /etc/hostapd/hostapd.conf

d'avoir un point d'accès fonctionnel auquel mon Android et tous les autres appareils WiFi peuvent se connecter.

Mis à part le partage de cette méthode avec d'autres, car les informations pour cette configuration sont si rares; il y a trois problèmes qu'il serait bon de résoudre:

  1. Cette configuration désactive le gestionnaire de réseau et toutes ses fonctions. Lorsque vous cliquez dessus, il affiche un message "appareil non géré". (pas essentiel, mais un peu ennuyeux pour moi)
  2. Cette méthode peut parfois avoir des difficultés avec les adresses IP.
  3. Je dois utiliser un terminal pour activer le Wifi. (OK pour moi, mais pas familial). J'ai compris comment créer un lanceur en utilisant gksu et un script simple si quelqu'un en avait besoin ...

Lancement wifi / Hostapd sans terminal

  1. (Pourquoi le gestionnaire de réseau ne peut-il pas le faire immédiatement?)

Merci d'avance! J'espère que tout cela peut aider quelqu'un d'autre; Je n'ai jamais écrit de tutoriel auparavant et je ne sais pratiquement rien sur le réseautage ...

Peut-être lié au pont réseau - sans détruire le gestionnaire de réseau (entre autres).

Testé avec Ubuntu 11.10, 12.04.

Réponses:


5

Je ne suis pas sûr de savoir comment faire cela sans assommer NM, mais il est possible de s'exécuter automatiquement au démarrage et d'obtenir des adresses IP à attribuer facilement (au moins, j'ai réussi cela avec la même carte sans fil). Cela nécessite les packages hostapdet dnsmasq(pas dnsmasq-base)

/etc/hostapd/hostapd.conf:

interface=wlan0
driver=nl80211 # This works on my TL-WN722N

ssid=______

channel=6
hw_mode=g

auth_algs=1
wpa=3
wpa_passphrase=_____
wpa_key_mgmt=WPA-PSK
wpa_pairwise=TKIP CCMP
rsn_pairwise=CCMP

/ etc / default / hostapd:

# Defaults for hostapd initscript
#
# See /usr/share/doc/hostapd/README.Debian for information about alternative
# methods of managing hostapd.
#
# Uncomment and set DAEMON_CONF to the absolute path of a hostapd configuration
# file and hostapd will be started during system boot. An example configuration
# file can be found at /usr/share/doc/hostapd/examples/hostapd.conf.gz
#
DAEMON_CONF="/etc/hostapd/hostapd.conf"

# Additional daemon options to be appended to hostapd command:-
#   -d   show more debug messages (-dd for even more)
#   -K   include key data in debug messages
#   -t   include timestamps in some debug messages
#
# Note that -B (daemon mode) and -P (pidfile) options are automatically
# configured by the init.d script and must not be added to DAEMON_OPTS.
#
#DAEMON_OPTS=""

/etc/dnsmasq.conf (diff contre la version du responsable):

--- /etc/dnsmasq.conf.dpkg-dist 2011-09-20 00:28:30.000000000 +0100
+++ /etc/dnsmasq.conf   2012-02-13 21:03:03.713554612 +0000
@@ -82,7 +82,7 @@
 # specified interfaces (and the loopback) give the name of the
 # interface (eg eth0) here.
 # Repeat the line for more than one interface.
-#interface=
+interface=wlan0
 # Or you can specify which interface _not_ to listen on
 #except-interface=
 # Or which to listen on by address (remember to include 127.0.0.1 if
@@ -133,7 +133,7 @@
 # a lease time. If you have more than one network, you will need to
 # repeat this for each network on which you want to supply DHCP
 # service.
-#dhcp-range=192.168.0.50,192.168.0.150,12h
+dhcp-range=192.168.3.10,192.168.3.49,12h

 # This is an example of a DHCP range where the netmask is given. This
 # is needed for networks we reach the dnsmasq DHCP server via a relay

/ etc / network / interfaces:

auto lo
iface lo inet loopback

auto wlan0
iface wlan0 inet static
    address 192.168.3.1/24
    broadcast 192.168.3.255

Patch /etc/sysctl.conf (exécuté sudo sysctl -p /etc/sysctl.confaprès modification):

--- sysctl.conf 2012-05-14 18:06:57.514873009 +0100
+++ /etc/sysctl.conf    2012-05-14 18:09:27.122876525 +0100
@@ -25,7 +25,7 @@
 #net.ipv4.tcp_syncookies=1

 # Uncomment the next line to enable packet forwarding for IPv4
-#net.ipv4.ip_forward=1
+net.ipv4.ip_forward=1

 # Uncomment the next line to enable packet forwarding for IPv6
 #  Enabling this option disables Stateless Address Autoconfiguration

Enfin, configurez NAT dans iptables:

sudo iptables -A FORWARD -o eth0 -i eth1 -s 192.168.0.0/24 -m conntrack --ctstate NEW -j ACCEPT
sudo iptables -A FORWARD -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
sudo iptables -A POSTROUTING -t nat -j MASQUERADE
sudo iptables-save | sudo tee /etc/iptables.sav

et ajouter iptables-restore < /etc/iptables.savci - dessus exit 0dans /etc/rc.local.

Cette configuration a été principalement mise en œuvre en lisant ce guide et en regardant les pages de manuel me gratter la tête.


Merci! Je sais ce que tu veux dire par se gratter la tête; cette chose était vraiment pénible de travailler du tout. Je vais essayer votre configuration et je vous ferai savoir comment ça se passe dans les prochains jours. :)
askuhn

Au cours des derniers jours, j'ai constaté que le /etc/network/interfacesfichier ne fonctionne pas pour une raison quelconque et que mon téléphone ne se connecte pas correctement. Je suis revenu à donner manuellement à wlan0 une adresse au démarrage pour l'instant.
dutchie

Ma configuration a plutôt bien fonctionné tant que je n'essaie pas de connecter plus d'un appareil (quand je le fais, parfois cela fonctionne, parfois non). Je bricole toujours, donc si je trouve quelque chose de mieux, je serai sûr de poster. :)
askuhn

3

La plupart des problèmes se produisent en raison des pilotes Broadcom des ordinateurs portables HP au moins. Si vous avez un contrôleur réseau Broadcom Vérifiez si votre carte est compatible avec b43 (lien 1). Si c'est le cas, génial, continuez à lire. Le pilote Broadcom sta par défaut (wl) ne prend pas en charge le mode point d'accès. Alors installez b43 en prenant des mesures de précaution pour être en ligne par tous les moyens nécessaires. Activez-le à l'aide de modprobe. Suivez maintenant les instructions et essayez de configurer le point d'accès.

J'ai enfin eu hostapd qui travaille avec cela et la partie douce est que mon téléphone Nokia peut détecter le wifi ainsi créé (il peut détecter n'importe quoi, adhoc ou non). Maintenant, je dois jouer avec votre fichier et voir si je peux détecter mon playbook.

  1. http://linuxwireless.org/en/users/Drivers/b43
  2. http://pclinuxos.com/forum/index.php?topic=91991.0

Cela a également fonctionné lorsque j'ai obtenu un périphérique non géré dans le gestionnaire de périphériques. askubuntu.com/questions/71159/…
Giridaran Manivannan

Heureux que cela vous ait été utile! Il m'a fallu une éternité pour comprendre ce dont j'avais besoin pour obtenir quelque chose qui fonctionnait pour moi. Merci pour le lien sur le gestionnaire de réseau, je vais être sûr de l'essayer :)
askuhn

Et il fonctionne! La partie étonnante est que eth0 n'a pas besoin d'être statique par cette méthode. L'ip acquise sera pour tous les eth0, le pont et l'appareil que vous souhaitez connecter!
Giridaran Manivannan

Au dernier paragraphe, vouliez-vous dire que le playbook devait être détecté ?
tshepang

0

Excellentes réponses ci-dessus, mais ce ne sont pas seulement un ou deux chipsets qui ne prennent pas en charge hostapd ou le mode AP.

Voici comment voir si votre pilote et votre matériel prennent en charge le mode AP:

sudo iw list | less

Recherchez la section "modes d'interface pris en charge". S'il ne comprend pas "AP", vous n'avez pas de chance. S'il dit "AP", alors suivez les nombreuses bonnes instructions déjà fournies par d'autres affiches!

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.