Jak utworzyć hotspot Wi-Fi bez adhoc?

13

Chciałem używać komputera stacjonarnego z przewodowym połączeniem Ethernet (eth0) do obsługi mojego adaptera Wi-Fi USB „TP-LINK TL-WN722N” (wlan0) jako punktu dostępowego bez adhoc (tryb infrastruktury) dla mojego Androida.

Po DUŻYM wyszukiwaniu, w końcu znalazłem metodę (rozproszoną na wielu stronach), która spełnia większość moich potrzeb ...

Zależności:

 hostapd
 bridge-utils

Zmodyfikowałem „/ etc / network / interfaces”

sudo gedit /etc/network/interfaces

zawierać:

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

Mój „/etc/hostapd/hostapd.conf” (który jakoś sam udało mi się złożyć)

sudo gedit /etc/hostapd/hostapd.conf

zawiera:

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

(Edytowałem bity bezpieczeństwa dla tego postu)

Wszystko to pozwala mi otworzyć terminal i wykonać:

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

mieć działający punkt dostępowy, z którym mój Android i wszystkie inne urządzenia WiFi mogą się połączyć.

Oprócz dzielenia się tą metodą z innymi, ponieważ informacje na temat tej konfiguracji są tak rzadkie; są trzy problemy, które warto naprawić:

  1. Ta konfiguracja dezaktywuje menedżera sieci i wszystkie jego funkcje. Po kliknięciu pojawia się komunikat „urządzenie nie jest zarządzane”. (nie jest to konieczne, ale dla mnie trochę denerwujące)
  2. Ta metoda może od czasu do czasu zmagać się z adresami IP.
  3. Muszę użyć terminala, aby włączyć Wi-Fi. (Ok dla mnie, ale nie przyjazny dla rodziny). Wymyśliłem, jak zrobić program uruchamiający za pomocą gksu i prostego skryptu, jeśli ktoś go potrzebuje ...

Uruchamianie wifi / Hostapd bez terminala

  1. (Dlaczego menedżer sieci nie może tego zrobić natychmiast po wyjęciu z pudełka?)

Z góry dziękuję! Mam nadzieję, że wszystko to może pomóc komuś innemu; Nigdy wcześniej nie napisałem samouczka i nic nie wiem o sieci ...

Być może związane z mostem sieciowym - bez niszczenia menedżera sieci (między innymi).

Testowane przy użyciu Ubuntu 11.10, 12.04.

askuhn
źródło

Odpowiedzi:

5

Nie jestem pewien, jak to zrobić bez clobbering NM, ale możliwe jest automatyczne uruchamianie podczas rozruchu i uzyskiwanie adresów IP, które można łatwo przypisać (przynajmniej poradziłem sobie z tą samą kartą bezprzewodową). Wymaga to pakietów hostapdi dnsmasq(nie 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 (różni się od wersji opiekuna):

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

Poprawka /etc/sysctl.conf (uruchom sudo sysctl -p /etc/sysctl.confpo zmianie):

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

Na koniec skonfiguruj NAT w 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

i dodaj iptables-restore < /etc/iptables.savpowyżej exit 0w /etc/rc.local.

Ta konfiguracja została w większości zaimplementowana poprzez przeczytanie tego howto i gapienie się na strony podręcznika, które drapały mnie po głowie.

holenderski
źródło
Dzięki! Wiem, co rozumiesz przez drapanie głowy; z pewnością było to w ogóle bolesne. Wypróbuję twoją konfigurację i dam ci znać, jak będzie w najbliższych dniach. :)
askuhn
W ciągu ostatnich kilku dni odkryłem, że /etc/network/interfacesplik nie działa z jakiegoś powodu, a mój telefon nie łączy się prawidłowo. Wróciłem do ręcznego nadawania wlan0 adresu przy uruchamianiu.
dutchie
Moja konfiguracja działa całkiem dobrze, dopóki nie próbuję podłączyć więcej niż jednego urządzenia (kiedy to robię, czasami działa, czasem nie). Nadal majstruję, więc jeśli wymyślę coś lepszego, na pewno będę pisać. :)
askuhn
3

Większość problemów występuje przynajmniej z powodu sterowników Broadcom w laptopach HP. Jeśli masz kontroler sieci Broadcom Sprawdź, czy twoja karta jest kompatybilna z b43 (link 1). Jeśli tak, to świetnie, czytaj dalej. Domyślny sterownik Broadcom sta (wl) nie obsługuje trybu punktu dostępu. Zainstaluj b43, stosując środki ostrożności, aby być online za pomocą wszelkich niezbędnych środków. Włącz go za pomocą modprobe. Teraz postępuj zgodnie z instrukcjami i spróbuj skonfigurować punkt dostępu.

W końcu mam hostapd do pracy z tym i najmilsze jest to, że mój telefon Nokia może wykryć tak utworzone wifi (może wykryć wszystko, ad hoc lub nie). Teraz muszę pobawić się twoim plikiem i sprawdzić, czy uda mi się wykryć mój podręcznik.

  1. http://linuxwireless.org/en/users/Drivers/b43
  2. http://pclinuxos.com/forum/index.php?topic=91991.0
Giridaran Manivannan
źródło
Działa to również, gdy nie mam zarządzanego urządzenia w menedżerze urządzeń. askubuntu.com/questions/71159/…
Giridaran Manivannan
Cieszę się, że było to dla Ciebie pomocne! Odwiecznie zajęło mi ustalenie, czego potrzebuję, aby uzyskać coś, co dla mnie zadziałało. Dzięki za link o menedżerze sieci, na pewno go wypróbuję :)
askuhn
I to działa! Niesamowite jest to, że metoda eth0 nie musi być statyczna dzięki tej metodzie. Zdobyte IP będzie dotyczyło całego eth0, mostu i urządzenia, które chcesz podłączyć!
Giridaran Manivannan
Czy w ostatnim akapicie miałeś na myśli wykrycie playbooka ?
tshepang
0

Doskonałe odpowiedzi powyżej, jednak nie tylko jeden lub dwa chipsety nie obsługują trybu hostapd ani AP.

Oto jak sprawdzić, czy sterownik i sprzęt obsługują tryb AP:

sudo iw list | less

Poszukaj sekcji „obsługiwane tryby interfejsu”. Jeśli nie zawiera „AP”, nie masz szczęścia. Jeśli powie „AP”, postępuj zgodnie z wieloma dobrymi instrukcjami już dostarczonymi przez inne plakaty!

Luno
źródło