Overzicht
ssh-socks maakt gebruik van de dynamische poortdoorsturingsfunctie (-D optie) van SSH om een SOCKS-proxy op de lokale machine te creëren. Via deze proxy kan het verkeer van uw webbrowser of andere applicaties via de externe SSH-server naar het internet worden geleid. Dit geeft het effect alsof u vanaf de externe server internettoegang heeft.
Belangrijkste toepassingen
- Toegang tot geografisch beperkte content
- Verbeterde beveiliging op openbare Wi-Fi
- Toegang tot interne bedrijfsnetwerkbronnen
- Omzeilen van firewalls
Belangrijkste opties
ssh-socks maakt voornamelijk gebruik van de opties van het 'ssh'-commando. Hieronder staan de veelgebruikte 'ssh'-opties voor het instellen van een SOCKS-proxy.
Proxy-instellingen
Gegenereerde opdracht:
Probeer de opdrachtcombinaties.
Uitleg:
`ssh-socks` Voer het commando uit.
Combineer deze opties en voer de opdracht virtueel uit met de AI.
Voorbeelden van gebruik
Dit zijn typische voorbeelden van het gebruik van ssh-socks. [user] en [remote_host] moeten worden vervangen door de daadwerkelijke gebruikersnaam en het externe serveradres.
Basis SOCKS-proxy instellen
ssh -D 8080 user@remote_host
Stelt een SOCKS-proxy in op lokale poort 8080 en maakt verbinding met de externe server. Dit commando bezet de terminal.
SOCKS-proxy op de achtergrond uitvoeren
ssh -fN -D 8080 user@remote_host
Voert de proxy op de achtergrond uit, zodat u de terminal kunt blijven gebruiken. -N voorkomt het uitvoeren van externe commando's en -f stuurt het naar de achtergrond.
Webpagina benaderen via proxy (curl)
curl --socks5-hostname localhost:8080 http://example.com
Benadert een webpagina met het curl-commando, gebruikmakend van de eerder ingestelde SOCKS-proxy (localhost:8080).
Webpagina benaderen via proxy (wget)
wget -e use_proxy=yes -e http_proxy=socks5://localhost:8080 http://example.com
Benadert een webpagina met het wget-commando, gebruikmakend van de eerder ingestelde SOCKS-proxy (localhost:8080).
Installatie
ssh-socks is doorgaans geen zelfstandig commando dat aparte installatie vereist. In plaats daarvan kunt u de functionaliteit van het 'ssh'-commando gebruiken om het direct in te stellen, of het voor het gemak maken als een shell-alias of een eenvoudig script.
Instellen als shell-alias
alias ssh-socks='ssh -fN -D 8080'
U kunt het 'ssh-socks'-commando definiëren door de volgende regel toe te voegen aan uw ~/.bashrc- of ~/.zshrc-bestand. Na de wijziging moet u 'source ~/.bashrc' of 'source ~/.zshrc' uitvoeren om deze toe te passen.
Gebruiksinstructies
Na het instellen van de alias kunt u het gebruiken als 'ssh-socks user@remote_host'. Als u het poortnummer wilt wijzigen, moet u de aliasdefinitie aanpassen.
Instellen als een eenvoudig script
#!/bin/bash
PORT=${1:-8080}
HOST=$2
if [ -z "$HOST" ]; then
echo "Gebruik: ssh-socks [poort] user@remote_host"
echo "Standaard poort: 8080"
exit 1
fi
shift
if [ $# -eq 1 ]; then
HOST=$1
else
HOST=$2
fi
ssh -fN -D $PORT "$HOST"
echo "SOCKS-proxy wordt uitgevoerd op localhost:$PORT. (PID: $(pgrep -f "ssh -fN -D $PORT $HOST"))"
U kunt een uitvoerbaar script maken op een locatie zoals /usr/local/bin/ssh-socks. Deze methode maakt het mogelijk om poorten of andere opties flexibeler als argumenten te ontvangen.
Script gebruiksinstructies
Na het maken van het script, verleent u uitvoerrechten met 'chmod +x /usr/local/bin/ssh-socks' en kunt u het gebruiken als 'ssh-socks user@remote_host' of 'ssh-socks 9000 user@remote_host'.
Tips & Aandachtspunten
Dit zijn nuttige tips en aandachtspunten bij het gebruik van ssh-socks.
Webbrowser instellingen
De meeste webbrowsers ondersteunen SOCKS-proxy-instellingen. In de netwerkinstellingen van de browser kunt u 'SOCKS Host' instellen op 'localhost' en 'Port' op de ingestelde poort (bijv. 8080).
- Firefox: Instellingen -> Netwerkinstellingen -> Handmatige proxyconfiguratie -> SOCKS-host
- Chrome/Edge: Gebruik systeem proxy-instellingen (afhankelijk van OS-instellingen)
Gebruik van SSH-configuratiebestand (~/.ssh/config)
Door instellingen voor externe hosts vooraf te definiëren in het ~/.ssh/config-bestand, kunt u commando's beknopter gebruiken.
- Host myproxy Hostname remote_host User user DynamicForward 8080 ExitOnForwardFailure yes ServerAliveInterval 60 ServerAliveCountMax 3
Voorbeeld van SSH-configuratiebestand
ssh -fN myproxy
Na de bovenstaande configuratie kunt u de proxy uitvoeren met het commando 'ssh -fN myproxy'.
Proxy beëindigen
Om een op de achtergrond draaiende SSH SOCKS-proxy te beëindigen, moet u het betreffende SSH-proces vinden en killen.
- ps aux | grep 'ssh -fN -D 8080' (om het proces-ID te achterhalen)
- kill [PID]
Veiligheidsoverwegingen
Aangezien al het verkeer via de externe server wordt geleid via de SOCKS-proxy, is het belangrijk om de beveiliging en betrouwbaarheid van die server te verifiëren. Het gebruik van een proxy via een onbetrouwbare server brengt het risico met zich mee dat gegevens worden onderschept of gemanipuleerd.