Raspberry Pi kan ansluta till ett Wi-Fi-nätverk med en USB-dongle men med samma dongle kan du också göra din Raspberry Pi till en trådlös åtkomstpunkt. När det är korrekt inställt så tillåter andra trådlösa enheter att ansluta till din Pi, och du kan eventuellt styra all trafik ut via Ethernet-porten och vidare till Internet (via routern från din Internetleverantör).

Men innan du tittar på de steg som behövs för att få detta att fungera, ett varningstecken. Konfigurationen behövs kan vara lite komplex och om saker inte fungerar som de borde då kan felsökning av problemet vara svårt. Också för att detta ska fungera korrekt behöver du en WiFi USB-dongle som kan fungera som en åtkomstpunkt. Det bästa stället att hitta information om din speciella dongle och Raspberry Pi finns på den inbäddade Linux Raspberry Pi Wi-Fi-adaptrar-sidan.

För att konfigurera en hotspot krävs flera steg:

  • Konfigurera den trådlösa adaptern med en statisk IP-adress
  • Installera och konfigurera en DHCP-server
  • Installera och konfigurera access point-demonen
  • Konfigurera IP-routing mellan trådlöst och Ethernet

I det här exemplet kommer det trådlösa nätverket att använda adressområdet 192.168.42.n och det trådbundna Ethernet-nätverket använder adressområdet 192.168.1.n

Konfigurera den trådlösa adaptern med en statisk IP-adress

Redigera "/ etc / network / interfaces" och lägg till den statiska IP-adressinformationen för wlan0 . Du kan lära dig om statiska IP-adresser i vår SSH- och statiska IP-adresshandledning.

 sudo nano / etc / network / interfaces 

Placera ett "#" tecken framför alla linjer som nämner wlan0 och wpa, förutom " allow hotplug wlan0 ". Lägg sedan till följande rader i filen:

 iface wlan0 inet statisk adress 192.168.42.1 nätmask 255.255.255.0 

Den nedre delen av filen kommer nu att se ut så här:

Nu starta om.

Installera och konfigurera en DHCP-server

Installera DHCP-servern:

 sudo apt-get installera isc-dhcp-server 

Du kan säkert ignorera eventuella fel om du inte kan starta DHCP-servern vid denna tidpunkt. Redigera nu sin konfigurationsfil:

 sudo nano /etc/dhcp/dhcpd.conf 

Lägg till ett "#" tecken framför option domain-name " option domain-name " så här:

 #option domännamn "example.org"; #option domännamn-servrar ns1.example.org, ns2.example.org; 

Ta bort "#" tecknet framför " authoritative; "Uttalande så här:

 # Om den här DHCP-servern är den officiella DHCP-servern för det lokala # -nätet, bör det auktoritativa direktivet inte kommenteras. auktoritativ; 

Längst ned i filen lägg till följande rader:

 subnet 192.168.42.0 netmask 255.255.255.0 {intervall 192.168.42.10 192.168.42.50; alternativ sändningsadress 192.168.42.255; option routrar 192.168.42.1; standard-leasingtid 600; max-leasingtid 7200; alternativ domännamn "lokal"; Alternativ domännamn-servrar 8.8.8.8, 8.8.4.4; } 

Avsluta från nano med "Ctrl + X".

Gör den trådlösa adaptern till standard för DHCP-förfrågan:

 sudo nano / etc / default / isc-dhcp-server 

Ändra " INTERFACES="" " till " INTERFACES="wlan0" "

Avsluta från nano med "Ctrl + X".

Starta om DHCP-servern:

 sudo service isc-dhcp-server omstart 

Installera och konfigurera access point-demonen

Installera hostapd:

 sudo apt-get install hostapd 

Redigera hostapd-konfigurationsfilen och skapa ett trådlöst nätverk:

 sudo nano /etc/hostapd/hostapd.conf 

Lägg till följande rader:

 interface = wlan0 driver = nl80211 # driver = rtl871xdrv ssid = MyPi hw_mode = g kanal = 6 macaddr_acl = 0 auth_algs = 1 ignore_broadcast_ssid = 0 wpa = 2 wpa_passphrase = hallon wpa_key_mgmt = WPA-PSK wpa_pairwise = TKIP rsn_pairwise = CCMP 

Detta skapar ett lösenordsskyddat nätverk som heter MyPi på kanal 6 med lösenbärsbären.

Berätta värdpedal där du hittar sin konfigurationsfil genom att ställa in standardplatsen:

 sudo nano / etc / default / hostapd 

Ta bort "#" framför " DAEMON_CONF " och ändra raden att läsa:

 DAEMON_CONF = "/ etc / hostapd / hostapd.conf" 

Konfigurera IP-routing mellan trådlöst och Ethernet

Redigera " /etc/sysctl.conf " för att aktivera IP-vidarebefordran:

 sudo nano /etc/sysctl.conf 

Hitta raden som läser " Uncomment the next line to enable packet forwarding for IPv4 " och kommentera nästa rad så här:

 # Okomment nästa rad för att aktivera paketet vidarebefordran för IPv4 net.ipv4.ip_forward = 1 

Kör följande kommando för att aktivera vidarebefordran nu:

 sudo sh -c "eko 1> / proc / sys / net / ipv4 / ip_forward" 

Nu vrid Pi in i en router med följande kommandon:

 sudo iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE sudo iptables -A FORWARD -i eth0 -o wlan0 -m state -state RELATERADE, UPPSTÄLLDA -J ACCEPT sudo iptables -A FORWARD -i wlan0 -o eth0 -j ACCEPTERA 

Och spara routing tabeller i filen " /etc/iptables.ipv4.nat "

 sudo sh -c "iptables-save> /etc/iptables.ipv4.nat" 

Redigera " /etc/network/interfaces ":

 sudo nano / etc / network / interfaces 

Och lägg till följande rad till slutet av filen. Den här raden kommer att återställa routing-tabellen när Pi-enheten startas:

 förbereda iptables-återställ </etc/iptables.ipv4.nat 

Du bör nu starta om din Pi och testa den trådlösa åtkomsten med en bärbar dator, smartphone, surfplatta eller annan Wi-Fi-aktiverad enhet.

Felsökning

Eftersom denna konfiguration är ganska komplexa kan det enkelt gå fel. Om du stöter på problem, dubbelkontrollera alla konfigurationsfiler. Det är också värt att strömcykla Pi eftersom det är möjligt för USB-dongeln att komma in i ett odefinierat tillstånd.

Du kanske har märkt att filen "hostapd.conf" hade två " driver= " -linjer och en av dem kommenterades. Om din USB Wi-Fi-dongle använder nl80211 drivrutinen ska ovanstående konfiguration fungera OK. Men om din dongle använder rtl871xdrv som den gör för adaptrar baserade på Realtek RTL8188CUS chipset så finns det några extra steg som behövs.

Installera först iw paketet först:

 sudo apt-get installera iw 

Kör nu följande kommando:

 IW-lista 

Om kommandot av kommandot är " nl80211 not found " måste du använda rtl871xdrv drivrutinen. Men du behöver också en speciell version av hostapd.

Adafruit har en förkompilerad version av hostapd för rtl871xdrv drivrutinen. För att installera använder du följande kommandon:

 wget http://www.adafruit.com/downloads/adafruit_hostapd.zip unzip adafruit_hostapd.zip sudo mv / usr / sbin / hostapd /usr/sbin/hostapd.ORIG sudo mv hostapd / usr / sbin sudo chmod 755 / usr / sbin / hostapd 

Om du har några frågor om att göra din Pi till en trådlös åtkomstpunkt, fråga nedan och vi kommer att försöka vårt bästa för att hjälpa!