Unha aplicación non ten opción SOCKS, pero pode conectarse a un enderezo TCP escollido. Un adaptador de obxectivo fixo pode fornecer a conversa SOCKS para un destino. Non ten por que converterse noutro proxy directo xenérico.

Para compilacións de socat que ofrecen SOCKS4A, unha disposición ilustrativa é:

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

O punto final SOCKS é o porto local 1080. O adaptador escoita no porto local 9443 e pide a ese punto final service.example.net:443. Son valores de exemplo, non un despregamento completo do servizo.

O adaptador ten un obxectivo fixo

Cada conexión TCP aceptada pide o mesmo servizo. Unha aplicación que se conecta a 9443 fornece os seus bytes de protocolo habituais; socat fornece a negociación SOCKS4A. Enviar unha nova solicitude HTTP CONNECT a 9443 non escollería outro destino—enviaría eses bytes cara ao servizo fixo.

SOCKS4A entrega un nome de host ao punto final SOCKS para a resolución remota. Iso difire da forma SOCKS4 que usa un enderezo escollido polo cliente. O upstream escollido—incluído un candidato público da lista de proxies SOCKS4—debe admitir o tratamento de nomes de host SOCKS4A e a autenticación necesaria; este exemplo non é unha receita de inicio de sesión con contrasinal SOCKS5.

Conecta localmente, identifica o servizo real

Cambiar un URL HTTPS a https://127.0.0.1:9443/ cambia o nome de host que o cliente pode usar para TLS e HTTP. Un certificado para service.example.net non se converterá nun certificado válido para loopback.

Onde o cliente admite encamiñamento de conexión separado, conserva a identidade do URL orixinal. Curl pode ilustrar esa distinción:

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

O socket vai ao adaptador local mentres a verificación TLS e o destino HTTP seguen sendo service.example.net. Outras aplicacións necesitan o seu propio control equivalente admitido; non todos os clientes o proporcionan.

A vinculación loopback limita a exposición de rede, pero outros procesos locais aptos aínda poden alcanzalo. Mantén a vida útil do servizo e os usuarios axeitados. Conserva a verificación TLS en vez de suprimir o erro de identidade causado por un URL de loopback.

Artigos relacionados