SOCKS5 і SOCKS5h: дзе адбываецца DNS-развязванне
Параўнайце лакальнае развязванне DNS і развязванне на проксі ў curl, знайдзіце прычыны памылак імёнаў і зразумейце межы абароны socks5h.
У curl выбірайце socks5h://, калі імя мэтавага сервера павінен развязваць проксі. Выбірайце socks5://, калі curl мусіць развязаць яго лакальна і перадаць проксі адрас. Абодва рэжымы выкарыстоўваюць SOCKS5; канцавое h — гэта пагадненне пра запіс URL на баку кліента.
Параўнайце рэжымы, падставіўшы свой канцавы пункт SOCKS5 замест лакальнага пункта праслухоўвання:
curl --noproxy '' --proxy socks5://127.0.0.1:1080 --connect-timeout 5 --max-time 15 --verbose https://example.com/
curl --noproxy '' --proxy socks5h://127.0.0.1:1080 --connect-timeout 5 --max-time 15 --verbose https://example.com/Змяняецца толькі рэжым развязвання. --noproxy '' прыбірае правілы абыходу проксі для гэтых выклікаў, а часавыя межы абмяжоўваюць працягласць параўнання. Раўназначныя асобныя параметры — --socks5 і --socks5-hostname. У якасці мэты выкарыстоўвайце імя хоста: непасрэдна зададзены IP-адрас не патрабуе развязвання імя прызначэння і не пакажа гэтай розніцы.
Імя можа быць вядомае толькі аднаму боку
Дапусцім, проксі працуе ў сетцы распрацоўкі, DNS якой ведае імя ўнутранага сэрвісу. Ноўтбук можа не развязаць гэтае імя ў рэжыме socks5, тады як socks5h дазваляе зрабіць гэта проксі. У адваротнай сітуацыі, калі імя зададзена толькі ў файле hosts ноўтбука, няўдалым можа быць менавіта аддаленае развязванне.
Публічны DNS таксама можа вяртаць розныя адрасы з розных сетак. Адрозныя вынікі — нагода параўнаць выбраныя адрасы і іх дасяжнасць, а не адразу мяняць проксі.
- Не ўдаецца развязаць імя хоста проксі: ніводзін рэжым не зможа пачаць працу. Кліент па-ранейшаму развязвае
proxy.exampleуsocks5h://proxy.example:1080. - Лакальнае развязванне імя прызначэння не працуе: праверце рэзолвер кліента або параўнайце з рэжымам перадачы імя хоста проксі.
- SOCKS-сервер адхіляе прызначэнне: праверце яго адказ і палітыку. Паспяховае лакальнае развязванне не даказвае дасяжнасць з аддаленага боку.
- Тунэль працуе, але праверка сертыфіката не праходзіць: даследуйце TLS мэтавага сервера; змена рэжыму DNS не з’яўляецца ўніверсальным выпраўленнем праблем даверу.
Кантраляванае тэставае імя і серверныя журналы дапамогуць пацвердзіць, які тып адраса атрымаў проксі пад вашым кіраваннем. Старонка з вонкавым IP гэтага не пакажа: яна паведамляе пра выходнае злучэнне, а не пра месца выканання DNS-развязвання.
Карысць для прыватнасці мае выразныя межы
Развязванне на баку проксі дазваляе пазбегнуць лакальнага пошуку імя прызначэння для гэтага запыту. Яно не шыфруе SOCKS, не даказвае, што проксі выкарыстоўвае шыфраваны DNS, і не перанакіроўвае трафік іншых праграм ці папярэдняй загрузкі браўзера. Requests з падтрымкай SOCKS выкарыстоўвае тое ж адрозненне паміж лакальным развязваннем і развязваннем на проксі; іншыя кліенты могуць мець наладу замест запісу URL у curl. Выберыце пратакол, які падтрымлівае ваша праграма, перш чым капіяваць канцавы пункт са спіса SOCKS5-проксі.