socat SOCKS гүүр: сайтын TLS хост нэрийг хадгалах
Нэг SOCKS очих газарт loopback TCP сонсогчийг ашиглаж, програмын дотор HTTP болон TLS-ийн таних тэмдгийг хадгална.
Програмд SOCKS сонголт байхгүй ч сонгосон TCP хаягт холбогдож болно. Тогтмол зорилготой адаптер нэг очих газарт SOCKS яриаг үзүүлж чадна. Энэ нь өөр нэг ерөнхий дамжуулагч прокси болох шаардлагагүй.
SOCKS4A үзүүлдэг socat бүтцүүдийн хувьд жишээ зохион байгуулалт нь:
socat TCP4-LISTEN:9443,bind=127.0.0.1,reuseaddr,fork \
SOCKS4A:127.0.0.1:service.example.net:443,socksport=1080
SOCKS төгсгөлийн цэг нь локал 1080 порт юм. Адаптер локал 9443 порт дээр сонсож, тэр төгсгөлийн цэгээс service.example.net:443 хүснэ. Эдгээр нь жишээ утгууд бөгөөд үйлчилгээний бүрэн байршуулалт биш.
Адаптер нэг тогтмол зорилготой
Хүлээн авсан TCP холболт бүр ижил үйлчилгээг хүснэ. 9443-т холбогдсон програм өөрийн ердийн протоколын байтуудыг өгнө; SOCKS4A хэлэлцээрийг socat өгнө. 9443 руу шинэ HTTP CONNECT хүсэлт илгээх нь өөр очих газрыг сонгохгүй—тэр байтуудыг тогтмол үйлчилгээ рүү дамжуулна.
SOCKS4A нь алсын шийдвэрлэлтэд зориулж SOCKS төгсгөлийн цэгт хост нэрийг өгнө. Энэ нь клиентийн сонгосон хаягийг ашигладаг SOCKS4 хэлбэрээс ялгаатай. Сонгосон дээд урсгал—SOCKS4 прокси жагсаалтаас авсан нийтийн нэр дэвшигчийг оруулаад—SOCKS4A хост нэрийн боловсруулалт болон шаардлагатай баталгаажуулалтыг дэмжих ёстой; энэ жишээ нь SOCKS5 нууц үгээр нэвтрэх жор биш.
Локалаар холбогдож, жинхэнэ үйлчилгээг танина
HTTPS URL-ийг https://127.0.0.1:9443/ болгон өөрчлөх нь клиент TLS болон HTTP-д ашиглаж болох хост нэрийг өөрчилнө. service.example.net-ийн гэрчилгээ loopback-д хүчинтэй гэрчилгээ болохгүй.
Клиент тусдаа холболтын маршрутлалтыг дэмждэг бол анхны URL-ийн таних тэмдгийг хадгална. Curl энэ ялгааг харуулж чадна:
curl --noproxy '*' \
--connect-to service.example.net:443:127.0.0.1:9443 \
https://service.example.net/
Сокет локал адаптер руу явж, TLS шалгалт болон HTTP очих газар service.example.net хэвээр үлдэнэ. Бусад програмд өөрсдийн тэнцүү дэмжигдсэн хяналт хэрэгтэй; клиент бүр үүнийг өгдөггүй.
Loopback холболт сүлжээний нөлөөллийг хязгаарладаг ч бусад тохирох локал процессууд түүнд хүрч чадна. Үйлчилгээний хугацаа болон хэрэглэгчдийг тохируулан байлгана. Loopback URL-аас үүдэлтэй таних тэмдгийн алдааг дарахын оронд TLS шалгалтыг хадгална.