Come posso creare un hotspot wifi non ad hoc?


13

Volevo usare il mio desktop con una connessione ethernet cablata (eth0) per far funzionare il mio adattatore Wifi USB "TP-LINK TL-WN722N" (wlan0) come punto di accesso non ad hoc (modalità infrastruttura) per la connessione del mio Android.

Dopo molte ricerche, ho finalmente trovato un metodo (diffuso su molti siti Web) che fa la maggior parte di ciò di cui ho bisogno ...

dipendenze:

 hostapd
 bridge-utils

Ho modificato "/ etc / network / interfaces"

sudo gedit /etc/network/interfaces

contenere:

# 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/

Il mio "/etc/hostapd/hostapd.conf" (che in qualche modo sono riuscito a mettere insieme)

sudo gedit /etc/hostapd/hostapd.conf

contiene:

 ### 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

(Ho modificato i bit di sicurezza per questo post)

Tutto ciò mi consente di aprire un Terminale ed eseguire:

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

per avere un punto di accesso funzionante a cui il mio Android e tutti gli altri dispositivi WiFi possano connettersi.

Oltre a condividere questo metodo con altri poiché le informazioni per questa configurazione sono così scarse; ci sono tre problemi che sarebbe bello risolvere:

  1. Questa configurazione disattiva il gestore della rete e tutte le sue funzioni. Quando si fa clic, viene visualizzato un messaggio "dispositivo non gestito". (non essenziale, ma un po 'fastidioso per me)
  2. Questo metodo può avere difficoltà con gli indirizzi IP di volta in volta.
  3. Devo usare un terminale per attivare il Wifi. (Ok per me, ma non adatto alle famiglie). Ho capito come creare un launcher usando gksu e un semplice script se qualcuno ne ha bisogno ...

Avvio wifi / Hostapd senza terminale

  1. (Perché il gestore della rete non può farlo immediatamente?)

Grazie in anticipo! Spero che tutto ciò possa aiutare qualcun altro; Non ho mai scritto un tutorial prima e non so praticamente nulla del networking ...

Forse correlato al bridge di rete - senza distruggere il gestore della rete (tra gli altri).

Testato usando Ubuntu 11.10, 12.04.

Risposte:


5

Non sono sicuro di come eseguire questa operazione senza clobbering NM, ma è possibile eseguire automaticamente all'avvio e ottenere indirizzi IP da assegnare facilmente (almeno l'ho gestito con la stessa scheda wireless). Ciò richiede i pacchetti hostapde dnsmasq(non 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 contro la versione del manutentore):

--- /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 (eseguita sudo sysctl -p /etc/sysctl.confdopo la modifica):

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

Infine, imposta NAT in 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

e aggiungi iptables-restore < /etc/iptables.savsopra exit 0in /etc/rc.local.

Questa configurazione è stata per lo più implementata leggendo questo howto e fissando le pagine man che mi grattano la testa.


Grazie! So cosa intendi per grattarsi la testa; questa cosa è stata sicuramente una seccatura per iniziare a lavorare. Proverò la tua configurazione e ti farò sapere come andrà nei prossimi giorni. :)
askuhn

Negli ultimi giorni, ho scoperto che il /etc/network/interfacesfile non funziona per qualche motivo e il mio telefono non si collega correttamente. Sono tornato a dare manualmente a wlan0 un indirizzo all'avvio per ora.
dutchie,

La mia configurazione ha funzionato abbastanza bene finché non provo a connettere più di un dispositivo (quando lo faccio, a volte funziona, a volte no). Sto ancora armeggiando, quindi se trovo qualcosa di meglio, sarò sicuro di postare. :)
askuhn,

3

La maggior parte dei problemi si verifica almeno a causa dei driver Broadcom nei laptop HP. Se si dispone di un controller di rete broadcom Verificare che la scheda sia compatibile con b43 (collegamento 1). Se lo è, fantastico, continua a leggere. Il driver predefinito Broadcom sta (wl) non supporterà la modalità punto di accesso. Quindi installare b43 prendendo le misure precauzionali per essere online con ogni mezzo necessario. Accendilo usando modprobe. Ora segui le istruzioni e prova a configurare il punto di accesso.

Ho finalmente ottenuto hostapd che funziona con questo e la parte dolce è che il mio telefono Nokia è in grado di rilevare il wifi così creato (può rilevare qualsiasi cosa, ad hoc o no). Ora devo giocare con il tuo file e vedere se riesco a rilevare il mio playbook.

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

Anche questo ha funzionato quando il dispositivo non è stato gestito in Gestione dispositivi. askubuntu.com/questions/71159/…
Giridaran Manivannan

Sono contento che questo sia stato utile per te! Mi ci è voluto un'eternità per capire di cosa avevo bisogno per ottenere qualcosa che funzionasse per me. Grazie per il link sul gestore della rete, sarò sicuro di provarlo :)
askuhn

E funziona! La parte sorprendente è che eth0 non deve essere statico con questo metodo. L'ip acquisito sarà per tutto eth0, il bridge e il dispositivo che si desidera connettere!
Giridaran Manivannan,

Nell'ultimo paragrafo, intendevi che il playbook deve essere rilevato ?
Tshepang,

0

Eccellenti risposte sopra, tuttavia non sono solo uno o due chipset che non supportano la modalità hostapd o AP.

Ecco come vedere se il driver e l'hardware supportano la modalità AP:

sudo iw list | less

Cerca la sezione "Modalità interfaccia supportate". Se non include "AP", sei sfortunato. Se dice "AP", procedi con le molte buone istruzioni già fornite da altri poster!

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.