web-dev-qa-db-fra.com

Comment créer un point d'accès wifi non-adhoc?

Je souhaitais utiliser mon ordinateur de bureau avec une connexion Ethernet câblée (eth0) pour utiliser mon adaptateur USB Wifi "TP-LINK TL-WN722N" (wlan0) en tant que point d'accès non-adhoc (mode infrastructure) pour mon Android. _ pour vous connecter.

Après BEAUCOUP de recherches, j'ai finalement trouvé une méthode (répartie sur de nombreux sites Web) qui répond à l'essentiel de mes besoins.

Les 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 à monter 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 opérationnel auquel Android et tous les autres appareils WiFi peuvent se connecter.

En plus de partager cette méthode avec d’autres, étant donné que les informations relatives à cette configuration sont très rares; il y a trois problèmes qu'il serait agréable de résoudre:

  1. Cette configuration désactive le gestionnaire de réseau et toutes ses fonctions. Lorsque vous cliquez dessus, un message "périphérique non géré" s'affiche. (pas indispensable, mais un peu agaçant pour moi)
  2. Cette méthode peut parfois présenter des difficultés avec les adresses IP.
  3. Je dois utiliser un terminal pour activer le Wifi. (Ok pour moi, mais pas pour les familles). J'ai compris comment faire un lanceur en utilisant gksu et un script simple si quelqu'un en a besoin ...

Launching wifi/Hostapd without a 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 pourra aider quelqu'un d'autre. Je n'ai jamais écrit de tutoriel auparavant et je ne connais pratiquement rien du réseautage ...

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

Testé avec Ubuntu 11.10, 12.04.

13
askuhn

Je ne suis pas sûr de savoir comment procéder sans clobber 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 géré 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 par rapport à 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

Correctif /etc/sysctl.conf (exécutez Sudo sysctl -p /etc/sysctl.conf après avoir changé):

--- 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 iptablesname__:

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 ajoutez iptables-restore < /etc/iptables.sav ci-dessus exit 0 dans /etc/rc.local.

Cette configuration a été principalement implémentée en lisant ce guide et en regardant les pages de manuel me gratter la tête.

5
dutchie

La plupart des problèmes surviennent à cause des pilotes Broadcom dans les 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 génial, continuez à lire. Le pilote Broadcom sta (wl) par défaut ne prend pas en charge le mode point d'accès. Donc, installez b43 en prenant des mesures de précaution pour être en ligne par tous les moyens nécessaires. Allumez-le avec modprobe. Suivez maintenant les instructions et essayez de configurer le point d'accès.

Enfin, hostapd fonctionne avec cela et la partie intéressante est que mon téléphone Nokia peut détecter le wifi ainsi créé (il peut tout détecter, qu'il soit ad hoc 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/b4
  2. http://pclinuxos.com/forum/index.php?topic=91991.
3

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

Voici comment vérifier 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 n'inclut pas "AP", vous n'avez pas de chance. Si le message dit "AP", suivez les nombreuses instructions déjà fournies par d'autres affiches!

0
Luno