Et program har ingen SOCKS-mulighed, men kan oprette forbindelse til en valgt TCP-adresse. En adapter med fast mål kan levere SOCKS-samtalen for én destination. Den behøver ikke blive endnu en generel videresendelsesproxy.

For socat-byg med SOCKS4A er et illustrativt arrangement:

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 beder dette endepunkt om service.example.net:443. Dette er eksempelværdier, ikke en fuld udrulning af en tjeneste.

Adapteren har ét fast mål

Hver accepteret TCP-forbindelse beder om den samme tjeneste. Et program, der forbinder til 9443, leverer sine normale protokolbytes; socat leverer SOCKS4A-forhandlingen. En ny HTTP CONNECT-anmodning til 9443 ville ikke vælge en anden destination—den ville sende disse bytes videre til den faste tjeneste.

SOCKS4A giver et værtsnavn til SOCKS-endepunktet til fjernopløsning. Det adskiller sig fra SOCKS4-formen, der bruger en klientvalgt adresse. Den valgte upstream—herunder en offentlig kandidat fra SOCKS4-proxylisten—skal understøtte SOCKS4A-værtsnavnhåndtering og den krævede godkendelse; dette eksempel er ikke en SOCKS5-adgangskodeopskrift.

Forbind lokalt, identificer den rigtige tjeneste

Ændring af en HTTPS-URL til https://127.0.0.1:9443/ ændrer det værtsnavn, klienten kan bruge til TLS og HTTP. Et certifikat til service.example.net bliver ikke et gyldigt certifikat til loopback.

Hvor klienten understøtter separat forbindelsesrouting, bevar den oprindelige URL-identitet. Curl kan illustrere den forskel:

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

Socketten går til den lokale adapter, mens TLS-verifikation og HTTP-destination forbliver service.example.net. Andre programmer har brug for deres egen tilsvarende understøttede kontrol; ikke enhver klient giver en.

Loopback-bindingen begrænser netværkseksponeringen, men andre kvalificerede lokale processer kan stadig nå den. Hold tjenestens levetid og brugere passende. Bevar TLS-verifikationen i stedet for at undertrykke identitetsfejlen forårsaget af en loopback-URL.

Relaterede artikler