Et program har ingen SOCKS-mulighet, men kan koble til en valgt TCP-adresse. En adapter med fast mål kan levere SOCKS-samtalen for én destinasjon. Den trenger ikke bli nok en generell videresendingsproxy.

For socat-bygg med SOCKS4A er et illustrerende oppsett:

socat TCP4-LISTEN:9443,bind=127.0.0.1,reuseaddr,fork \
  SOCKS4A:127.0.0.1:service.example.net:443,socksport=1080

SOCKS-endepunktet er lokal port 1080. Adapteren lytter på lokal port 9443 og ber dette endepunktet om service.example.net:443. Dette er eksempelverdier, ikke en full tjenesteutrulling.

Adapteren har ett fast mål

Hver aksepterte TCP-tilkobling ber om den samme tjenesten. Et program som kobler til 9443, leverer sine vanlige protokollbytes; socat leverer SOCKS4A-forhandlingen. En ny HTTP CONNECT-forespørsel til 9443 ville ikke velge en annen destinasjon—den ville sendt disse bytene videre til den faste tjenesten.

SOCKS4A gir et vertsnavn til SOCKS-endepunktet for fjernoppslag. Det skiller seg fra SOCKS4-formen som bruker en klientvalgt adresse. Den valgte oppstrøms—inkludert en offentlig kandidat fra SOCKS4-proxylisten—må støtte SOCKS4A-vertsnavnhåndtering og den nødvendige autentiseringen; dette eksempelet er ikke en SOCKS5-passordoppskrift.

Koble til lokalt, identifiser den ekte tjenesten

Å endre en HTTPS-URL til https://127.0.0.1:9443/ endrer vertsnavnet klienten kan bruke for TLS og HTTP. Et sertifikat for service.example.net blir ikke et gyldig sertifikat for loopback.

Der klienten støtter separat tilkoblingsruting, behold den opprinnelige URL-identiteten. Curl kan illustrere den forskjellen:

curl --noproxy '*' \
  --connect-to service.example.net:443:127.0.0.1:9443 \
  https://service.example.net/

Sokkelen går til den lokale adapteren mens TLS-verifisering og HTTP-destinasjonen forblir service.example.net. Andre programmer trenger sin egen tilsvarende støttede kontroll; ikke alle klienter tilbyr en.

Loopback-bindingen begrenser netteksponeringen, men andre kvalifiserte lokale prosesser kan fortsatt nå den. Hold tjenestens levetid og brukere passende. Behold TLS-verifiseringen i stedet for å undertrykke identitetsfeilen forårsaket av en loopback-URL.

Relaterte artikler