Einrichten eines WLAN-Hotspots mit brctl und hostapd

2

Ich versuche, einen WLAN-Hotspot mit brctl und hostapd unter Debian GNU / Linux einzurichten, aber es scheint, dass es nicht funktioniert. Ich folge folgenden Schritten:

echo 1 > /proc/sys/net/ipv4/ip_forward
brctl addbr br0
brctl addif br0 eth0
dhclient br0

Bis jetzt funktioniert es und ich kann über die Kabelverbindung im Internet surfen. Dann starte ich hostapd. Sie fügt hinzu , wlan0auf die Brücke und die verdrahtete conncetion stoppt zu arbeiten: Ich bin nicht in der Lage , die Bahn und das Smartphone zu surfen (mit Android) ist in der Lage mit dem Hotspot zu authentifizieren , aber keine IP - Adresse erhalten , und sagt : „Begrenzte conncetion“.

Ich habe mehrere Anleitungen und Anleitungen gelesen, kann aber keine Lösung finden. Irgendein Vorschlag?

Gilberto T.
quelle
Wäre eine / etc / networks-basierte Antwort mit Bridging in Ordnung? Ich habe eine funktionierende Konfiguration, die ich teilen kann
Journeyman Geek
Ich ziehe es vor, es manuell über die Konsole einzustellen, aber poste deine Konfiguration hier, danke.
Gilberto T.
Eine Brücke ist etwas, das zwei Enden hat. Durch Hinzufügen einer einzigen Schnittstelle zur Brücke wird eine Brücke mitten im Fluss angehalten.
31.

Antworten:

3

Es gibt ein paar wichtige Punkte zu beachten:

  1. Sie müssen den Netzwerkmanager deaktivieren:

    sudo service network-manager stop
    
  2. Sie müssen hostapd vor der Brücke starten :

    sudo hostapd -B /etc/hostapd/hostapd.conf
    
  3. Nun fügen Sie einer bestehenden Bridge eth0 hinzu :

    sudo brctl addif br0 eth0
    
  4. und Sie setzen Ihre Brücke in das Netzwerk:

    sudo dhclient br0
    
  5. Jetzt müssen Sie überprüfen, ob Ihre Routing-Tabelle funktioniert:

    sudo add -net 0.0.0.0/0 gw IP_address_of_your_router dev br0
    sudo del -net 0.0.0.0/0 gw IP_address_of_your_router dev eth0
    
  6. Nun fügen Sie Nameserver zu /etc/resolv.conf hinzu: als sudo,

    echo nameserver 8.8.8.8 >> /etc/resolv.conf
    echo nameserver 8.8.4.4 >> /etc/resolv.conf
    

Meins funktioniert wie oben: Ich schreibe gerade.

MariusMatutiae
quelle
vorausgesetzt, er verwendet den Netzwerkmanager. Ich glaube auch, dass er wlan0 in die Bridge aufnehmen muss, nicht wahr?
Geselle Geek
@JourneymanGeek Nein, würde er nicht: Die Konfigurationsdatei für hostapd mm muss eine Anweisung bridge = br0 enthalten , die die Brücke für ihn erstellt. Und natürlich enthält dieselbe conf-Datei eine Anweisungsschnittstelle = wlan0 . Dies ist jedoch bereits der Fall, da das OP angibt, dass der Hostap-Dienst ordnungsgemäß gestartet wurde und Clients eine Verbindung herstellen können.
MariusMatutiae
Ich habe es versucht. In diesem Fall funktioniert "dhclient br0" nicht.
Gilberto T.
@ GilbertoT. Was meinst du damit, funktioniert es nicht? Sie erhalten kein DHCP-Angebot?
MariusMatutiae
Ja, ich bekomme kein DHCP-Angebot für br0.
Gilberto T.
1

Ich entschied mich schließlich für einen anderen Weg, um das Gleiche zu tun, basierend auf der Anleitung hier - die Verwendung von / hosts / networks ist wahrscheinlich besser, wenn Sie einen immer auf hostapd verfügbaren AP benötigen, ansonsten aber wahrscheinlich weniger.

Hier ist meine / etc / networks-Datei - ich habe wlan0 als manuell festgelegt und eth0 überbrückt.

# wireless wlan0
allow-hotplug wlan0
iface wlan0 inet manual

# eth0 connected to the ISP router
allow-hotplug eth0
iface eth0 inet manual
#iface eth0 inet6 auto
# Setup bridge
iface br0 inet static
    bridge_ports wlan0 eth0
    address 192.168.1.127
    netmask 255.255.255.0
    network 192.168.1.0
    gateway 192.168.1.1
    dns-nameservers 192.168.1.1

Ihre hostapd.conf könnte auch dort von Interesse sein - dies ist eine abgespeckte Version von mir, da ich mich dazu entschlossen habe, die 'Stock'-Version zu bearbeiten. Ich vermute, es ist ziemlich wahrscheinlich, dass Ihr Problem dort sein könnte.

### Wireless network name ###
interface=wlan0
### Set your bridge name ###
bridge=br0
driver=nl80211

###CHANGE ANYTHING BELOW THIS TO SUIT!###

### (IN == INDIA, UK == United Kingdom, US == United Stats and so on ) ###
country_code=SG
hw_mode=g
channel=6
wpa=2
## Key management algorithms ##
wpa_key_mgmt=WPA-PSK

## Set cipher suites (encryption algorithms) ##
## TKIP = Temporal Key Integrity Protocol
## CCMP = AES in Counter mode with CBC-MAC
wpa_pairwise=TKIP
rsn_pairwise=CCMP

## Shared Key Authentication ##
auth_algs=1

## Accept all MAC address ###
macaddr_acl=0
Geselle Geek
quelle
Ich verwende nicht "country_code =" "macaddr_acl =". Der Rest der Konfigurationsdatei ist ähnlich.
Gilberto T.