socat SOCKS-bruggies: bewaar die webwerf se TLS-gasheernaam
Gebruik 'n loopback-TCP-luisteraar vir een SOCKS-bestemming en behou terselfdertyd HTTP- en TLS-identiteit in die toepassing.
'n Toepassing het geen SOCKS-opsie nie, maar kan aan 'n gekose TCP-adres koppel. 'n Vaste-teiken-adapter kan die SOCKS-gesprek vir een bestemming lewer. Dit hoef nie 'n algemene vootproxy te word nie.
Vir socat-boude met SOCKS4A is 'n voorbeeldopstelling:
socat TCP4-LISTEN:9443,bind=127.0.0.1,reuseaddr,fork \
SOCKS4A:127.0.0.1:service.example.net:443,socksport=1080
Die SOCKS-eindpunt is plaaslike poort 1080. Die adapter luister op plaaslike poort 9443 en vra daardie eindpunt vir service.example.net:443. Dit is voorbeeldwaardes, nie 'n volledige diensontplooiing nie.
Die adapter het een vaste teiken
Elke aanvaarde TCP-verbinding vra dieselfde diens. 'n Toepassing wat aan 9443 koppel, lewer sy normale protokolgrepe; socat lewer die SOCKS4A-onderhandeling. 'n Nuwe HTTP CONNECT-versoek na 9443 sou nie 'n ander bestemming kies nie—dit sou daardie grepe na die vaste diens stuur.
SOCKS4A gee 'n gasheernaam aan die SOCKS-eindpunt vir afgeleë oplossing. Dit verskil van die SOCKS4-vorm met 'n kliëntgekose adres. Die gekose opstroom—insluitend 'n publieke kandidaat uit die SOCKS4-proxylys—moet SOCKS4A-gasheernaamhantering en die vereiste verifikasie ondersteun; hierdie voorbeeld is nie 'n SOCKS5-wagwoordaanmelding-resep nie.
Koppel plaaslik, identifiseer die werklike diens
Om 'n HTTPS-URL na https://127.0.0.1:9443/ te verander, verander die gasheernaam wat die kliënt vir TLS en HTTP mag gebruik. 'n Sertifikaat vir service.example.net word nie 'n geldige sertifikaat vir loopback nie.
Waar die kliënt afsonderlike verbindingroetering ondersteun, behou die oorspronklike URL-identiteit. Curl kan daardie onderskeid illustreer:
curl --noproxy '*' \
--connect-to service.example.net:443:127.0.0.1:9443 \
https://service.example.net/
Die sok gaan na die plaaslike adapter terwyl TLS-verifikasie en die HTTP-bestemming service.example.net bly. Ander toepassings het hul eie ekwivalente ondersteunde beheer nodig; nie elke kliënt bied een nie.
Die loopback-binding beperk netwerkblootstelling, maar ander gemagtigde plaaslike prosesse kan dit steeds bereik. Hou die diensleeftyd en gebruikers gepas. Behou TLS-verifikasie eerder as om die identiteitsfout wat deur 'n loopback-URL veroorsaak word te onderdruk.