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å "tunnelera" en port mellan ditt lokala system och en fjärr SSH-server.
Det finns tre olika typer av SSH-tunneler, och de används alla för olika ändamål. Varje 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 transit.
Det här kan du göra med kommandotssh
som ingår i Linux, MacOS och andra UNIX-liknande operativsystem. På Windows, som inte innehåller ett inbyggt ssh-kommando, rekommenderar vi det fria verktyget PuTTY att ansluta till SSH-servrar. Den stöder även SSH-tunnelning.
Med "Lokal port vidarebefordran" kan du få tillgång till lokala nätverksresurser som inte utsätts för Internet. Låt oss till exempel säga att du vill komma åt en databasserver på ditt kontor från ditt hem. Av säkerhetsskäl är den databassserver 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 från utanför kontorsnätverket, kan du ansluta till den SSH-servern hemifrån och få tillgång till 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 för att säkra en mängd olika nätverksresurser.
För att göra detta etablerar du en SSH-anslutning med SSH-servern och berättar klienten att vidarebefordra trafik från en viss port från din lokala dator, till exempel port 1234-till adressen till databasens server och dess port på kontorsnätet. Så när du försöker komma åt databassservern i port 1234, blir din nuvarande dator, "localhost", trafiken automatiskt "tunnad" över SSH-anslutningen och skickad till databasservern. SSH-servern sitter i mitten och vidarebefordrar trafiken fram och tillbaka. Du kan använda kommandoraden eller det grafiska verktyget för att komma åt databasservern som om den körde på din lokala dator.
För att använda lokal vidarebefordran, anslut normalt till SSH-servern, men leverera även-L
argument. Syntaxen är:
ssh -L local_port: remote_address: remote_port anvä[email protected]
Låt oss säga att databassservern på ditt kontor ligger på 192.168.1.111 på kontorsnätverket. Du har tillgång till kontors SSH-server påssh.youroffice.com
och ditt användarkonto på SSH-servern ärbob
. 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 här kommandot skulle du kunna komma åt databasserveren på port 8888 hos localhost. Så om databasservern erbjöd webbåtkomst kan du ansluta // localhost: 8888 till din webbläsare för att komma åt den. Om du hade ett kommandoradsverktyg som behöver nätverksadressen till en databas, skulle du ange det på localhost: 8888. All trafik som skickas till port 8888 på din dator kommer att tunnelas till 192.168.1.111:1234 på ditt kontorsnätverk.
Det är lite mer förvirrande om du vill ansluta till en serverprogram som körs på samma system som SSH-servern själv . Låt oss till exempel säga att du har en SSH-server som körs i port 22 på din kontorsdator, men du har också en databasserver som körs i port 1234 på samma system i samma adress. Du vill komma åt databaseserveren hemifrån, men systemet accepterar bara SSH-anslutningar i port 22 och dess brandvägg tillåter inte några 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 databassservern i port 8888 på din nuvarande dator, skickas trafiken över SSH-anslutningen. När det kommer till systemet som kör SSH-servern, skickar SSH-servern det till port 1234 på "localhost", vilket är samma PC som kör SSH-servern själv. Så betyder "localhost" i kommandot ovan "localhost" från fjärrserverens perspektiv.
För att göra detta i PuTTY-programmet på Windows, välj Connection> SSH> Tunnels. Välj alternativet "Lokalt". För "Source Port", skriv in den lokala porten. Ange "Destination" genom att ange destinationsadress och port i formuläret remote_address: remote_port.
Om du till exempel vill konfigurera samma SSH-tunnel som ovan skulle du ange8888
som källporten ochlocalhost: 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 på SSH-servern själv på huvudskärmen "Sessions" innan du ansluter.
"Fjärrports 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 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 serverns programvara.
Om du antar att du kan komma åt en fjärrstyrd SSH-server kan du ansluta till den SSH-servern och använda fjärrports vidarebefordran. Din SSH-klient kommer att berätta för servern att vidarebefordra en specifik port-säsong, port 1234-på SSH-servern till en viss adress och port på din nuvarande dator eller lokalt nätverk. När någon kommer till porten 1234 på SSH-servern, kommer den trafiken automatiskt att "tunnelas" över SSH-anslutningen. Alla som har tillgång till SSH-servern kommer att kunna komma åt webbservern som körs på din dator. Detta är effektivt ett sätt att tunnelera genom brandväggar.
För att använda fjärröverföring, använd kommandotssh
med argumentet-R
. Syntaxen är i stort sett densamma som vid lokal vidarebefordran:
ssh-R remote_port: local_address: local_port anvä[email protected]
Låt oss säga att du vill göra ett serverns program lyssnar i port 1234 på din lokala dator tillgänglig i hamnen 8888 på den avlägsna SSH-servern. SSH-serverns adress ärssh.youroffice.com
och ditt användarnamn på SSH-servern är bob . Du skulle köra följande kommando:
ssh-R 8888: localhost: 1234 [email protected]
Någon kunde då ansluta till SSH-servern i port 8888 och den anslutningen skulle tunnelas till serverns applikation körs i hamn 1234 på den lokala datorn du etablerat anslutningen från.
Om du vill göra detta i PuTTY på Windows väljer du Anslutning> SSH> Tunnlar. Välj alternativet "Fjärrkontroll". För "Source Port", ange fjärrporten. För "Destination" anger du destinationsadress och port i formuläret local_address: local_port.
Om du till exempel vill skapa exemplet ovan anger du8888
som källporten ochlocalhost: 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 på SSH-servern själv på huvudskärmen "Session" innan du ansluter.
Människor kan sedan ansluta till port 8888 på SSH-servern och deras trafik skulle tunnelas till porten 1234 på ditt lokala system.
Som standard lyssnar den fjärranslutna SSH-servern bara på anslutningar från samma värd. Med andra ord kommer bara personer på samma system som SSH-servern själv att kunna 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.
RELATED: Vad är det Skillnad mellan en VPN och en proxy?
Det finns också "dynamic port forwarding", som fungerar på samma sätt som en proxy eller VPN. SSH-klienten skapar en SOCKS-proxy som du kan konfigurera program som ska användas. All trafik som skickas via proxy skickas via SSH-servern. Detta liknar lokal vidarebefordran - det tar lokaltrafik skickat till en viss port på din dator och skickar den över SSH-anslutningen till en avlägsen plats.
RELATERAT: Varför använda ett offentligt Wi-Fi-nätverk kan vara farligt, även när du öppnar krypterade webbplatser
Låt oss säga att du använder ett offentligt Wi-Fi-nätverk. Du vill bläddra säkert utan att vara snooped på. Om du har tillgång till en SSH-server hemma kan du ansluta till den och använda dynamisk port vidarebefordran. SSH-klienten skapar en SOCKS-proxy på din dator. All trafik som skickas till den proxy kommer att skickas via SSH-serverns anslutning. Ingen som övervakar det offentliga Wi-Fi-nätverket kommer att kunna övervaka din webbläsning eller censurera de webbplatser du kan komma åt. Med tanke på alla webbplatser du besöker kommer det att vara som om du sitter framför din dator hemma. Detta innebär också att du kan använda det här tricket för att få tillgång till US-only-webbplatser medan du är utanför USA, förutsatt att du har tillgång till en SSH-server i USA.
Som ett annat exempel kan du komma åt en media serverprogram du har på ditt hemnätverk. Av säkerhetsskäl får du bara ha en SSH-server utsatt för Internet. Du tillåter inte inkommande anslutningar från Internet till ditt mediaserverprogram. Du kan konfigurera dynamisk port vidarebefordran, konfigurera en webbläsare för att använda SOCKS proxy och sedan få åtkomst till servrar som körs i ditt hemnätverk via webbläsaren som om du satt framför ditt SSH-system hemma. Om din mediaserver finns på port 192.168.1.123 i ditt hemnätverk kan du till exempel ansluta adressen192.168.1.123
till alla applikationer som använder SOCKS-proxy och du skulle få tillgång till medieservern som om du var på ditt hemnätverk.
För att använda dynamisk vidarebefordran, kör ssh-kommandot med argumentet-D
, så här:
ssh -D local_port anvä[email protected]
För Låt oss säga att du har tillgång till en SSH-server påssh.yourhome.com
och ditt användarnamn på SSH-servern ärbob
. Du vill använda dynamisk vidarebefordran för att öppna en SOCKS-proxy i port 8888 på den aktuella datorn. Du skulle köra följande kommando:
ssh-D 8888 [email protected]
Du kan då 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 den applikationen omdirigeras genom tunneln.
För att göra detta i PuTTY på Windows, välj Connection> SSH> Tunnels. Välj alternativet "Dynamiskt". För "Source Port" anger du den lokala porten.
Om du till exempel vill skapa en SOCKS-proxy på port 8888, anger du8888
som källporten. 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 på SSH-servern själv på huvudskärmen "Sessions" innan du ansluter.
Du kan då konfigurera en applikation för att komma åt SOCKS-proxy 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.
RELATED: Så här konfigurerar du en proxyserver i Firefox
Du kan till exempel konfigurera Firefox för att använda SOCKS-proxy . Detta är särskilt användbart eftersom Firefox kan ha egna proxyinställningar och behöver inte använda proxyinställningar för hela systemet. Firefox skickar sin trafik via SSH-tunneln, medan andra applikationer använder din Internet-anslutning normalt.
När du gör det i Firefox väljer du "Manuell proxy-konfiguration", ange "127.0.0.1" i SOCKS-värdrutan och ange den dynamiska porten i "Port" rutan. Lämna HTTP Proxy, SSL Proxy och FTP Proxy-rutorna tomma.
Tunneln förblir aktiv och öppen så länge du har SSH-sessionen öppen. När du avslutar din SSH-session och kopplar bort från en server stängs tunneln också. Bara återansluta med lämpligt kommando (eller lämpliga alternativ i PuTTY) för att öppna tunneln igen.
Hur man använder en fysisk spelkontroller med en iPhone, iPad eller Android-enhet
"Mobilspel" med tanke på att du sveper runt på en pekskärm, men du behöver inte använda den clunky touch kontroller. Apples iOS och Googles Android stödjer både fysiska spelkontroller, så att du kan använda taktila kontroller med en smartphone eller surfplatta. Tyvärr, inte alla mobila spel stöder fysiska spelkontroller.
Så här felsöker du problem med Internet-anslutning
Problem med internetanslutningen kan vara frustrerande. I stället för att masha F5 och desperat försöker ladda om din favoritwebbplats när du upplever ett problem, så här kan du felsöka problemet och identifiera orsaken. Se till att du kontrollerar de fysiska anslutningarna innan du blir alltför inblandad i felsökning.