Ställ in en VPN-server med Raspberry Pi

raspberry pi vpn

Den här artikeln beskriver hur du förvandlar din Raspberry Pi till en VPN-server.

Jag blev inspirerad när en av mina vänner skulle iväg på en lång resa och ville ha ett VPN.

Fördelen med en VPN, förklarade han, var att den gjorde det möjligt för honom att komma åt sitt hemnätverk och sina filer.

Det är ganska vanligt.

Han nämnde också att han skulle ha lättare att logga in i bankappar och andra tjänster om han loggade in via sitt hemnätverk.

Att ha en utländsk IP-adress ger upphov till varningssignaler och det skulle leda till att han måste göra Captcha-tester och 2FA.

Det fick mig att fundera på om Raspberry Pi skulle fungera i det här fallet.

Kontrollera först din router

En viktig detalj här är att kontrollera om din router kan fungera som en VPN-server.

Det skulle vara den mest tillförlitliga lösningen. Uppriktigt sagt var det också den enklaste och minst tråkiga lösningen.

Jag har en TP-Link Archer C7 som har möjlighet att köra en VPN-server med OpenVPN eller PPTP VPN. På mindre än fem minuter kunde jag följde instruktionerna och lyckades få igång den. 

Sedan behövde jag bara installera OpenVPN på mina enheter och använda konfigurationsfilen.

Om du däremot har en router som inte stöder VPN-anslutningar kan du följa med...

Vad behöver jag för att skapa en Raspberry Pi-server?

Ethernet-kabel, Raspberry Pi och router för att konfigurera en PiVPN
Ethernet-kabel, Raspberry Pi och router

Först och främst behöver du en Raspberry Pi. 

Det bästa vore om du hade en Raspberry Pi med en trådbunden Ethernet-anslutning, t.ex. Raspberry Pi 4, för maximal tillförlitlighet och hastighet.

Om du väljer dessa enheter behöver du en Ethernet-kabel för att ansluta Raspberry Pi till routern.

Och för att säkerställa att din Raspberry Pi är ansluten via trådbundet Ethernet bör du inaktivera den trådlösa anslutningen.

PiVPN har dock körts framgångsrikt på en Raspberry Pi i Zero-serien, så du kan använda den också.

Installera PiVPN

PiVPN-logotyp
PiVPN-logotyp

Gå till pivpn.io för mer information om programvaran.

För att installera den kör du installationskommandot curl -L https://install.pivpn.io | bash i din terminal.

Det här steget kan ta ett tag, men när det är klart ser du den här introduktionsskärmen.

DHCP-reservation

PiVPN är en server, så den måste ha en statisk IP-adress för att fungera korrekt. 

Om du kan skapa en DHCP-reservation...

Det är inte alla routrar som tillåter dig att skapa en DHCP-reservation, så om du inte hittar något avsnitt för den här inställningen kan du hoppa över till nästa avsnitt.

Jag har ett separat modem och en router som jag köpte för att kunna skapa en DHCP-reservation för att se till att PiVPN har samma IP-adress hela tiden.

Alla routrar är lite olika, så du måste googla de exakta instruktionerna för att skapa en DHCP-reservation för din router.

Om du använder en TP-Link Archer C7, som jag gör, går du till Avancerat > Nätverk > DHCP Server.

I enlighet med Adress Bokning klickade jag på Lägg till. Jag behövde min MAC-adress (som inte visas i PiVPN) och den IP-adress som PiVPN tillhandahåller.

Hitta din MAC-adress

hitta mac-adress raspberry pi
Du kan vanligtvis hitta Raspberry Pis MAC-adress genom din router eller genom att använda ifconfig

Det finns två sätt att hitta din MAC-adress. 

Det mest praktiska var att min TP-Link-router visade min MAC-adress "DC-A6-32-88-AC-97" i tabellen över DHCP-klienter.

Alternativt kan du öppna en terminal och skriva in ifconfig.

Eftersom du är ansluten via trådbundet Ethernet, letar du efter "eth0" och på raden där det står eterDet är där din MAC-adress finns.

Om du inte kan skapa en DHCP-reservation,

dhcp-reservation raspberry pi vpn eller statisk IP-adress

I den här menyn trycker du på "Nej" för att ställa in en statisk IP-adress.

I nästa meny måste du konfigurera din statiska IP-adress till något som inte ligger inom det intervall av IP-adresser som routern tilldelar enheter.

Min router tilldelar till exempel anslutna enheter IP-adresserna 192.168.0.100 till 192.168.0.249. Jag kan alltså tilldela PiVPN en IP-adress på 192.168.0.250.

Därefter frågar den dig efter gateway-IP-adressen. Du kan låta den vara standard om du inte har en annan gateway. Det är vanligtvis IP-adressen till din router.

Slutligen trycker du på OK på PiVPN tills du når sidan "Local Users" (lokala användare).

Lokala användare

På sidan "Välj en användare" valde jag den enda användaren, pi.

I de senaste uppdateringarna av Raspberry Pi OS har du inte längre "pi" som standardanvändare, så var uppmärksam.

Tryck på OK.

Installationsläge

raspberry pi vpn wireguard

Här frågar den dig om du vill använda WireGuard eller OpenVPN. Jag valde WireGuard eftersom det rekommenderades.

Standard Wireguard-port

Om du inte behöver en annan port kan du bara trycka på OK och använda standardporten 51820.

DNS-provider

välj google som dns-leverantör pivpn raspberry pi vpn

Det finns många valmöjligheter när det gäller DNS-leverantörer här och jag valde Google för att det är så enkelt att installera.

Offentlig IP eller DNS

Det du ser här är din offentliga IP-adress och det är den IP-adress du använder för att ansluta till din VPN.

Obevakade uppgraderingar

obevakade uppgraderingar pivpn

Jag aktiverade obevakade uppgraderingar eftersom jag ville ha säkerhetsuppgraderingar. 

Dags att lägga till klientprofiler

Använd pivpn add för att lägga till en klient och använd sedan pivpn -qr för att få en QR-kod som telefonen kan skanna.
Använd pivpn add för att lägga till en klient, använd sedan pivpn -qr för att få en QR-kod som din telefon kan skanna.

Härligt! Du har kommit till menyn "Installation komplett".

Att installera PiVPN på Raspberry Pi är halva slaget. Nästa halva är att konfigurera dina klientprofiler så att du kan ansluta datorer, telefoner och andra enheter till den.

Så här gör du:

Öppna en terminal och skriv "pivpn add".

Ange ett namn för klienten. Du kan använda något som "client1", "client2" eller något mer intuitivt som "smartphone", "television" osv.

Tryck på Enter.

När det är klart visas ett meddelande om att det är klart.

PiVPN skulle ha genererat en .conf-fil som du kan använda med Wireguard-appar.

Det finns dock ett ännu enklare sätt att få konfigurationen på din telefon.

Konfigurera en Android-telefon

I samma terminal anger du pivpn -qr

Ange sedan den klient som du vill ha. Just nu finns det bara en som heter "smartphone".

Skriv in "smartphone" och tryck på enter.

Om allt går bra kommer du att se en QR-kod som du kan skanna med Wireguard-appen på din smartphone.

Kodningsproblem leder till en förvrängd PiVPN QR-kod
Kodningsproblem leder till en förvrängd PiVPN QR-kod

Om den inte gör det kommer den att se förvrängd ut. Detta beror på att terminalen är fel kodad.

Om detta händer dig kan du kopiera filen smartphone.conf till din telefon och peka Wireguard-appen till filen.

wireguard pivpn qr-kod
Wireguard Android-app som skannar QR-koden

Ett annat sätt är att försöka ssh-anslutas till Raspberry Pi och köra kommandot qrencode -t ansiutf8 < /home/pi/configs/smartphone.conf (ändra "smartphone" till det namn som du har gett din klient).

QR-koden genererades framgångsrikt när jag använde ssh på min Windows-dator.

Installera WireGuard på din dator

Det finns två saker du måste göra. Ladda ner WireGuard-appen till din dator och hämta .conf-filen från din Raspberry Pi.

Du kan ladda ner WireGuard-appen för Windows, Linux och Mac här.

När du har gjort det skapar du en ny profil genom att använda pivpn add

Skriv in namnet på din konfigurationsfil. Jag använde msi-pc, som genererar en msi-pc.conf fil.

För att kopiera filen till din dator är det enklast att kopiera den med hjälp av ett kommando. Du bör ha SSH-åtkomst aktiverad på Raspberry Pi OS.

Om du använder Windows som jag gör, använder du det här kommandot:

pscp.exe [ditt användarnamn]@[din-pi-ip-adress]:/home/pi/configs/[wireguard-fil].conf [local-dir]

Så här såg min ut:

pscp.exe [email protected]:/home/pi/configs/msi-pc.conf

I appen trycker du på "Add Tunnel" och letar upp din .conf-fil.

Aktivera och du är klar!

Konfigurera portvidarebefordran på routern

Om du har följt stegen fram till nu kan du aktivera växeln i Wireguard-appen, men du kan inte gå in på internet.

Det beror på att du måste konfigurera routern så att den pekar ut trafik som når port 51820 till ditt Raspberry Pi.

För att göra detta går du till menyn för portvidarebefordran på din router. På min TP-Link Archer-router fanns den tillgänglig i Avancerat > NAT-forwarding > Virtuella servrar.

Du vet att du är på rätt plats när du får frågan om en extern och intern port och en intern IP-adress.

Den här skärmen frågar i princip: "Om vi får trafik från Internet via port 51820, vilken enhet skickar vi den till och vilken port?".

I det här fallet är de externa och interna portarna 51820, Wireguards standardinställning. Protokollet är UDP och Intern IP är Pi:s IP-adress.

Hur vet jag att min VPN fungerar?

testar vpn om det fungerar

Du vet att din VPN fungerar om din IP-adress ändras.

För att testa min smartphones VPN-anslutning försökte jag först hitta min IP-adress innan jag anslöt till VPN.

VPN-tjänsten sa att min adress var XXX.XX.88.241.

Jag anslöt till min VPN och min IP-adress ändrades till XXX.XXX.169.39.

Om din IP-adress ändras betyder det att du har lyckats ansluta.

Det finns många tjänster på marknaden. Du kan till och med googla "vad är min IP-adress" och Google kanske kan berätta det för dig på sökresultatet. Eller så använde jag whatismyip.com.

Vad händer om min internet-IP ändras?

Ibland kan det hända att du inte får samma IP-adress när du återställer routern. Strömavbrott och oavsiktliga ryck i sladdarna kan hända. 

Frågan är hur du hittar din nya IP-adress när du inte är hemma och desperat behöver ansluta till din VPN?

Vår mjukvara PiCockpit gör det enkelt att ta reda på din offentliga IP-adress.

I skärmdumpen ovan är det min offentliga IP. Om den ändras kan du uppdatera dina .conf-filer med den nya slutpunktsadressen.

PiCockpit gör det också möjligt att starta om och diagnostisera problem med din Raspberry Pi på distans via webbgränssnittet.

Följ den här guiden för att installera PiCockpit.

Alternativt kan du också få en dynamisk DNS-tjänst och ett värdnamn. Här är en guide.

4 Kommentarer

  1. John Ramirez den april 13, 2023 kl 1:37 e m

    Buen dia espero se encuentren bien, tengo una consulta a ver si me pueden ayudar, estoy en venezuela, yo quisiera trabajar por internet pero necesito que no me detecten, mi IP va a estar en estados unidos, lo que quiero es preguntar... como configuro el raspberry para poder conectarme con la ip residencial alla en eeuu y trabajar en venezuela sin ser detectado y no me baneen las paginas, ademas de eso configurar mi navegador gracias.

    • Ligwill den maj 15, 2023 kl 6:21 e m

      John,

      Para eso necesitarias tener una raspberry pi en EEUU configurada como servidor VPN (En la casa de un amigo o familiar) y tu PC o LAPTOP en Venezuela tendria q tener el cliente vpn. De esa manera te conectarias desde venezuela a eeuu via vpn y ya serias visto como si estuvieras alla.

  2. [...] kan också använda en som VPN-server med hjälp av inställningar som OpenVPN eller WireGuard. Du kan använda båda inställningarna för daglig användning och båda gör [...]

  3. [...] Naturligtvis kan du också helt enkelt förvandla din Raspberry Pi till ett VPN, vilket vi har skrivit om tidigare. [...]

Lämna en kommentar