Hur man använder SSH-tunnling för att komma åt begränsade servrar och surfa säkert

Jul 12, 2025
Sekretess och säkerhet

En SSH-klient ansluter till en Secure Shell-server , som låter dig köra terminalkommandon som om du satt framför en annan dator. Men en SSH-klient låter dig också "tunnel" en port mellan ditt lokala system och en fjärransluten SSH-server.

Det finns tre olika typer av SSH-tunnlar, och de används alla för olika ändamål. Var och en innebär att man använder en SSH-server för att omdirigera trafik från en nätverksport till en annan. Trafiken skickas över den krypterade SSH-anslutningen, så den kan inte övervakas eller ändras under transport.

Du kan göra detta med ssh kommando som ingår i Linux, macOS och annat UNIX-liknande operativsystem. På Windows, som inte innehåller ett inbyggt ssh-kommando, rekommenderar vi gratisverktyget Spackel för att ansluta till SSH-servrar. Den stöder också SSH-tunnling.

Lokal portvidarebefordran: Gör fjärrresurser tillgängliga i ditt lokala system

Med "lokal portvidarebefordran" kan du komma åt lokala nätverksresurser som inte är exponerade för Internet. Låt oss till exempel säga att du vill komma åt en databasserver på ditt kontor hemifrån. Av säkerhetsskäl är databasservern bara konfigurerad för att acceptera anslutningar från det lokala kontorsnätverket. Men om du har tillgång till en SSH-server på kontoret och att SSH-servern tillåter anslutningar utanför kontorsnätverket, kan du ansluta till den SSH-servern hemifrån och komma åt databasservern som om du var på kontoret. Detta är ofta fallet, eftersom det är lättare att säkra en enda SSH-server mot attacker än att säkra en mängd olika nätverksresurser.

För att göra detta skapar du en SSH-anslutning med SSH-servern och ber klienten att vidarebefordra trafik från en viss port från din lokala dator - till exempel port 1234 - till adressen till databasservern och dess port på kontorsnätverket. Så när du försöker komma åt databasservern vid port 1234 din nuvarande dator, "localhost", "trafikeras" den trafiken automatiskt över SSH-anslutningen och skickas till databasservern. SSH-servern sitter i mitten och vidarebefordrar trafik fram och tillbaka. Du kan använda valfri kommandorad eller grafiskt verktyg för att komma åt databasservern som om den kördes på din lokala dator.

För att använda lokal vidarebefordran ansluter du till SSH-servern normalt, men levererar också -L argument. Syntaksen är:

ssh -L local_port: remote_address: remote_port [email protected]

Låt oss till exempel säga att databasservern på ditt kontor finns 192.168.1.111 på kontorsnätverket. Du har tillgång till kontorets SSH-server på ssh.youroffice.com , och ditt användarkonto på SSH-servern är guppa . I så fall skulle ditt kommando se ut så här:

ssh -L 8888: 192.168.1.111: 1234 [email protected]

Efter att ha kört det kommandot kan du komma åt databasservern vid port 8888 på localhost. Så om databasservern erbjöd webbåtkomst kan du ansluta http: // localhost: 8888 till din webbläsare för att komma åt den. Om du hade ett kommandoradsverktyg som behöver en databas nätverksadress, skulle du peka på localhost: 8888. All trafik som skickas till port 8888 på din dator kommer att tunnlas till 192.168.1.111:1234 i ditt kontorsnätverk.

Det är lite mer förvirrande om du vill ansluta till en serverapplikation som körs på samma system som själva SSH-servern. Låt oss till exempel säga att du har en SSH-server som körs vid port 22 på din kontorsdator, men att du också har en databasserver som körs vid port 1234 på samma system på samma adress. Du vill komma åt databasservern hemifrån, men systemet accepterar bara SSH-anslutningar på port 22 och dess brandvägg tillåter inga andra externa anslutningar.

I det här fallet kan du köra ett kommando som följande:

ssh -L 8888: localhost: 1234 [email protected]

När du försöker komma åt databasservern vid port 8888 på din nuvarande dator kommer trafiken att skickas över SSH-anslutningen. När det anländer till systemet som kör SSH-servern kommer SSH-servern att skicka den till port 1234 på "localhost", vilket är samma dator som kör SSH-servern själv. Så "localhost" i kommandot ovan betyder "localhost" från fjärrservern.

För att göra detta i PuTTY-applikationen i Windows, välj Anslutning> SSH> Tunnlar. Välj alternativet “Lokalt”. För “Source Port” anger du den lokala porten. För “Destination”, ange destinationsadress och port i formuläret remote_address: remote_port.

Om du till exempel vill ställa in samma SSH-tunnel som ovan, går du in 8888 som källport och lokal värd: 1234 som destination. Klicka på "Lägg till" efteråt och klicka sedan på "Öppna" för att öppna SSH-anslutningen. Du måste också ange adressen och porten till själva SSH-servern på huvudskärmen "Session" innan du ansluter, naturligtvis.

Vidarebefordran av fjärrport: Gör lokala resurser tillgängliga i ett fjärrsystem

”Fjärrport vidarebefordran” är motsatsen till lokal vidarebefordran och används inte så ofta. Det låter dig göra en resurs på din lokala dator tillgänglig på SSH-servern. Låt oss till exempel säga att du kör en webbserver på den lokala datorn du sitter framför. Men din dator ligger bakom en brandvägg som inte tillåter inkommande trafik till serverprogramvaran.

Förutsatt att du kan komma åt en fjärr-SSH-server kan du ansluta till den SSH-servern och använda vidarebefordran av fjärrport. Din SSH-klient ber servern att vidarebefordra en specifik port - säg port 1234 - på SSH-servern till en specifik adress och port på din nuvarande dator eller lokala nätverk. När någon öppnar porten 1234 på SSH-servern kommer den trafiken automatiskt att "tunnlas" över SSH-anslutningen. Alla som har åtkomst till SSH-servern kommer att kunna komma åt webbservern som körs på din dator. Detta är faktiskt ett sätt att tunnelera genom brandväggar.

Använd fjärrvidarebefordran ssh kommando med -R argument. Syntaxen är i stort sett densamma som vid lokal vidarebefordran:

ssh -R remote_port: local_address: local_port [email protected]

Låt oss säga att du vill göra en serverapplikation som lyssnar vid port 1234 på din lokala dator tillgänglig vid port 8888 på SSH-fjärrkontrollen. SSH-serverns adress är ssh.youroffice.com och ditt användarnamn på SSH-servern är guppa . Du skulle köra följande kommando:

ssh -R 8888: localhost: 1234 [email protected]

Någon kunde sedan ansluta till SSH-servern vid port 8888 och den anslutningen skulle tunnlas till serverapplikationen som körs vid port 1234 på den lokala datorn du upprättade anslutningen från.

För att göra detta i PuTTY i Windows, välj Anslutning> SSH> Tunnlar. Välj alternativet “Fjärrkontroll”. För “Source Port” anger du fjärrporten. För "Destination", ange destinationsadress och port i formuläret local_address: local_port.

Om du till exempel vill ställa in exemplet ovan anger du 8888 som källport och lokal värd: 1234 som destination. Klicka på "Lägg till" efteråt och klicka sedan på "Öppna" för att öppna SSH-anslutningen. Du måste också ange adressen och porten till själva SSH-servern på huvudskärmen "Session" innan du ansluter, naturligtvis.

Människor kunde sedan ansluta till port 8888 på SSH-servern och deras trafik skulle tunnlas till port 1234 på ditt lokala system.

Som standard lyssnar fjärr-SSH-servern bara på anslutningar från samma värd. Med andra ord är det bara personer på samma system som själva SSH-servern som kan ansluta. Detta är av säkerhetsskäl. Du måste aktivera alternativet "GatewayPorts" i sshd_config på fjärr SSH-servern om du vill åsidosätta detta beteende.

Vidarebefordran av dynamisk port: Använd din SSH-server som en proxy

RELATERAD: Vad är skillnaden mellan en VPN och en proxy?

Det finns också "dynamisk port vidarebefordran", som fungerar på samma sätt som en proxy eller VPN. SSH-klienten skapar en SOCKS-proxy du kan konfigurera applikationer som ska användas. All trafik som skickas via proxyen skickas via SSH-servern. Detta liknar lokal vidarebefordran - det tar lokal trafik som skickas till en viss port på din PC och skickar den över SSH-anslutningen till en fjärrplats.

RELATERAD: Varför det kan vara farligt att använda ett offentligt Wi-Fi-nätverk, även när man öppnar krypterade webbplatser

Låt oss till exempel säga att du använder ett offentligt Wi-Fi-nätverk. Du vill surfa säkert utan att bli snooped på . Om du har tillgång till en SSH-server hemma kan du ansluta till den och använda dynamisk portvidarebefordran. SSH-klienten skapar en SOCKS-proxy på din dator. All trafik som skickas till den proxyen kommer att skickas över SSH-serveranslutningen. Ingen som övervakar det offentliga Wi-Fi-nätverket kommer att kunna övervaka din surfning eller censurera de webbplatser du kan komma åt. Ur perspektivet på alla webbplatser du besöker kommer det att vara som om du satt framför din dator hemma. Det betyder också att du kan använda det här tricket för att komma åt webbplatser som endast gäller USA när du är utanför USA - förutsatt att du naturligtvis har tillgång till en SSH-server i USA.

Som ett annat exempel kanske du vill komma åt ett mediaserverprogram som du har i ditt hemnätverk. Av säkerhetsskäl får du bara ha en SSH-server exponerad för Internet. Du tillåter inte inkommande anslutningar från Internet till ditt mediaserverprogram. Du kan ställa in dynamisk vidarebefordran av portar, konfigurera en webbläsare så att den använder SOCKS-proxyen och sedan komma åt servrar som körs i ditt hemnätverk via webbläsaren som om du satt framför ditt SSH-system hemma. Om din mediaserver till exempel finns i port 192.168.1.123 i ditt hemnätverk kan du ansluta adressen 192.168.1.123 i alla applikationer som använder SOCKS-proxy och du skulle få tillgång till mediaservern som om du befann dig i ditt hemnätverk.

För att använda dynamisk vidarebefordran, kör ssh-kommandot med -D argument, som så:

ssh -D local_port anvä[email protected]

Låt oss till exempel säga att du har tillgång till en SSH-server på ssh.yourhome.com och ditt användarnamn på SSH-servern är guppa . Du vill använda dynamisk vidarebefordran för att öppna en SOCKS-proxy vid port 8888 på den aktuella datorn. Du skulle köra följande kommando:

ssh -D 8888 [email protected]

Du kan sedan konfigurera en webbläsare eller ett annat program för att använda din lokala IP-adress (127.0.01) och port 8888. All trafik från det programmet omdirigeras genom tunneln.

För att göra detta i PuTTY i Windows, välj Anslutning> SSH> Tunnlar. Välj alternativet “Dynamisk”. För “Source Port” anger du den lokala porten.

Om du till exempel vill skapa en SOCKS-proxy på port 8888, anger du 8888 som källport. Klicka på "Lägg till" efteråt och klicka sedan på "Öppna" för att öppna SSH-anslutningen. Du måste också ange adressen och porten till själva SSH-servern på huvudskärmen "Session" innan du ansluter, naturligtvis.

Du kan sedan konfigurera ett program för att få åtkomst till SOCKS-proxyen på din lokala dator (det vill säga IP-adress 127.0.0.1, som pekar på din lokala dator) och ange rätt port.

RELATERAD: Hur man konfigurerar en proxyserver i Firefox

Till exempel kan du konfigurera Firefox för att använda SOCKS proxy . Detta är särskilt användbart eftersom Firefox kan ha egna proxyinställningar och inte behöver använda systemomfattande proxyinställningar. Firefox skickar sin trafik genom SSH-tunneln, medan andra applikationer använder din Internetanslutning normalt.

När du gör detta i Firefox väljer du “Manuell proxykonfiguration”, anger “127.0.0.1” i SOCKS-värdrutan och anger den dynamiska porten i rutan “Port”. Lämna rutorna HTTP Proxy, SSL Proxy och FTP Proxy tomma.

Tunneln förblir aktiv och öppen så länge du har SSH-anslutningen öppen. När du avslutar din SSH-session och kopplar bort från en server kommer tunneln också att stängas. Anslut bara med lämpligt kommando (eller lämpliga alternativ i PuTTY) för att öppna tunneln igen.

.post-innehåll .inmatningsfot

How To Use SSH Tunneling To Access Restricted Servers And Browse Securely

SSH Tunneling Explained

How To Access Your Computer From Anywhere With VNC | SSH Tunneling

Tunneling Web Traffic Through SSH

SSH Tunneling: Bypass Your ISPs

Bypassing Firewalls Using SSH Tunneling

How To Use SSH Public Key Authentication

BASH Tutorial - SSH Tunneling With Firefox

Secure Your Web Traffic Without VPN Or Proxy - Using SSH Tunneling

SSH On The Command Line -- 3: Using SSH To Browse The Web Safely

SSH Tunneling - Local & Remote Port Forwarding (by Example)


Sekretess och säkerhet - Mest populära artiklar

Hur du ser eller rensar din webbläsarhistorik på Oculus Go

Sekretess och säkerhet May 3, 2025

Du har verkligen gjort det den här gången. Du sökte efter något pinsamt - som "Linux" - på din Oculus, och nu finns det i din sökhistorik. Vad ska du göra? Lyckligtvis har vi..


Hur man väljer bort riktade annonser på nätet

Sekretess och säkerhet Feb 5, 2025

Du har spenderat lite tid på att undersöka en produkt på din telefon, sedan öppnar du din bärbara dator och hittar annonser för den produkten klistrad överallt. Det har hänt..


Så här stänger du av kommentarer på dina Instagram-inlägg

Sekretess och säkerhet Sep 26, 2025

OBEHANDLAT INNEHÅLL Instagram är för det mesta ett ganska härligt socialt nätverk. Människor tenderar att publicera de bra saker som händer i deras liv, snarare än att ber..


Hur man laddar ner inspelningar från dina Netgear Arlo-kameror

Sekretess och säkerhet May 23, 2025

OBEHANDLAT INNEHÅLL Netgears Arlo-kamerasystem spelar automatiskt in video när rörelse upptäcks och du kan se dessa videoinspelningar i Arlo-appen. Men du kan också ladda ner..


Så här ställer du in Googles nya kodlösa tvåfaktorautentisering

Sekretess och säkerhet Jul 12, 2025

Tvåfaktorautentisering är ett utmärkt sätt att se till att ditt konto är säkert, men att behöva mata in en kod varje gång du behöver logga in kan vara en verklig smärta. T..


Hur man glömmer ett Wi-Fi-nätverk på din iPhone eller iPad

Sekretess och säkerhet May 6, 2025

OBEHANDLAT INNEHÅLL Som standard kommer iOS-enheter ihåg de Wi-Fi-nätverk som du har anslutit dig till tidigare och försöker automatiskt återansluta i framtiden. De..


Så här använder du en antivirusstartskiva eller USB-enhet för att säkerställa att din dator är ren

Sekretess och säkerhet Nov 9, 2024

OBEHANDLAT INNEHÅLL Om din dator är infekterad med skadlig kod kanske det inte räcker att köra ett antivirusprogram i Windows för att ta bort det. Om din dator har ett rootki..


Rensa senaste kommandon från dialogrutan Kör i Windows XP

Sekretess och säkerhet Jan 13, 2025

OBEHANDLAT INNEHÅLL Har det någonsin stört dig att det inte finns ett självklart sätt att ta bort de tidigare objekten i rutan Kör i Windows? Det är naturligtvis ofta mycket användb..


Kategorier