Wie erstelle ich einen Nicht-Ad-hoc-WLAN-Hotspot?


13

Ich wollte meinen Desktop mit einer kabelgebundenen Ethernet-Verbindung (eth0) verwenden, um meinen "TP-LINK TL-WN722N" -USB-WLAN-Adapter (wlan0) als nicht-adhoc-Zugriffspunkt (Infrastrukturmodus) für mein Android-Gerät zu betreiben.

Nach VIEL Suche habe ich endlich eine Methode gefunden (verteilt auf viele Websites), die das meiste leistet, was ich brauche ...

Abhängigkeiten:

 hostapd
 bridge-utils

Ich habe "/ etc / network / interfaces" geändert

sudo gedit /etc/network/interfaces

enthalten:

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

Meine "/etc/hostapd/hostapd.conf" (die ich irgendwie selbst zusammengestellt habe)

sudo gedit /etc/hostapd/hostapd.conf

enthält:

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

(Ich habe die Sicherheitsbits für diesen Beitrag herausgeschnitten.)

All dies ermöglicht es mir, ein Terminal zu öffnen und auszuführen:

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

um einen funktionierenden Zugangspunkt zu haben, zu dem mein Android und alle anderen WiFi-Geräte eine Verbindung herstellen können.

Abgesehen davon, dass Sie diese Methode mit anderen teilen, sind die Informationen für dieses Setup so spärlich. Es gibt drei Probleme, die zu beheben wären:

  1. Diese Konfiguration deaktiviert den Netzwerkmanager und alle seine Funktionen. Wenn Sie darauf klicken, wird die Meldung "Gerät nicht verwaltet" angezeigt. (nicht wesentlich, aber ein bisschen nervig für mich)
  2. Diese Methode kann von Zeit zu Zeit mit IP-Adressen zu kämpfen haben.
  3. Ich muss ein Terminal verwenden, um Wifi einzuschalten. (Ok für mich, aber nicht familienfreundlich). Ich fand heraus, wie man einen Launcher mit gksu und einem einfachen Skript erstellt, falls jemand eines benötigt ...

Starten von WiFi / Hostapd ohne Terminal

  1. (Warum kann der Netzwerkmanager dies nicht sofort tun?)

Danke im Voraus! Ich hoffe, all dies kann jemand anderem helfen. Ich habe noch nie ein Tutorial geschrieben und weiß so gut wie nichts über Networking ...

Möglicherweise im Zusammenhang mit der Netzwerkbrücke - ohne den Netzwerkmanager zu zerstören (unter anderem).

Getestet mit Ubuntu 11.10, 12.04.

Antworten:


5

Ich bin mir nicht sicher, wie ich das machen soll, ohne NM zu zerstören, aber es ist möglich, automatisch beim Booten zu starten und IP-Adressen zuzuweisen (zumindest habe ich das mit derselben WLAN-Karte geschafft). Dies erfordert die Pakete hostapdund dnsmasq(nicht 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 (Unterschied zur Betreuer-Version):

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

/etc/sysctl.conf Patch ( sudo sysctl -p /etc/sysctl.confnach Änderung ausführen ):

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

Zuletzt richten Sie NAT ein 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

und iptables-restore < /etc/iptables.savoben exit 0in hinzufügen /etc/rc.local.

Dieses Setup wurde hauptsächlich implementiert, indem ich dieses Howto las und Manpages ansah, die mir am Kopf kratzten.


Vielen Dank! Ich weiß, was du mit dem Kopfkratzen meinst; Dieses Ding war sicher eine Qual, überhaupt arbeiten zu müssen. Ich werde deine Konfiguration testen und dich wissen lassen, wie es in den nächsten Tagen läuft. :)
askuhn

In den letzten Tagen habe ich festgestellt, dass die /etc/network/interfacesDatei aus irgendeinem Grund nicht funktioniert und mein Telefon keine ordnungsgemäße Verbindung herstellt. Ich habe jetzt manuell wlan0 eine Adresse beim Booten gegeben.
Dutchie

Mein Setup hat ziemlich gut funktioniert, solange ich nicht versuche, mehr als ein Gerät anzuschließen (wenn ich es tue, funktioniert es manchmal, manchmal nicht). Ich bastele immer noch. Wenn ich mir also etwas Besseres einfallen lasse, werde ich es auf jeden Fall posten. :)
askuhn

3

Die meisten Probleme treten zumindest aufgrund der Broadcom-Treiber in HP Laptops auf. Wenn Sie einen Broadcom-Netzwerkcontroller haben Prüfen Sie, ob Ihre Karte mit b43 kompatibel ist (Link 1). Wenn es großartig ist, lesen Sie weiter. Der standardmäßige Broadcom-Treiber (wl) unterstützt den Zugangspunktmodus nicht. Installieren Sie b43, um vorsorglich online zu sein. Schalten Sie es mit modprobe ein. Befolgen Sie nun die Anweisungen und versuchen Sie, den Zugangspunkt einzurichten.

Ich habe Hostapd endlich dazu gebracht, damit zu arbeiten, und der süße Teil ist, dass mein Nokia-Telefon das so erzeugte WLAN erkennen kann (es kann alles erkennen, ob ad-hoc oder nicht). Jetzt muss ich mit Ihrer Datei herumspielen und sehen, ob ich mein Playbook erkennen kann.

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

Dies funktionierte auch, als ich das Gerät nicht im Geräte-Manager verwaltet bekam. askubuntu.com/questions/71159/…
Giridaran Manivannan

Ich bin froh, dass das für dich hilfreich war! Ich habe ewig gebraucht, um herauszufinden, was ich brauchte, um etwas zu bekommen, das für mich funktioniert. Danke für den Link zum Netzwerkmanager, ich werde es auf
jeden Fall

Und es funktioniert! Das Erstaunliche ist, dass eth0 bei dieser Methode nicht statisch sein muss. Die erworbene IP wird für alle eth0, die Bridge und das Gerät, das Sie verbinden möchten, sein!
Giridaran Manivannan

Meinten Sie im letzten Absatz Meinten Playbook erkannt werden soll ?
Tshepang

0

Hervorragende Antworten oben, es sind jedoch nicht nur ein oder zwei Chipsätze, die den Hostapd- oder AP-Modus nicht unterstützen.

So können Sie feststellen, ob Ihr Treiber und Ihre Hardware den AP-Modus unterstützen:

sudo iw list | less

Suchen Sie nach dem Abschnitt "Unterstützte Schnittstellenmodi". Wenn "AP" nicht enthalten ist, hat man kein Glück. Wenn "AP" angezeigt wird, fahren Sie mit den vielen guten Anweisungen fort, die bereits von anderen Postern bereitgestellt wurden!

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.