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. - Локалното разрешаване на местоназначението се проваля: проверете DNS резолвера на клиента или сравнете с режима, който изпраща името на хоста на проксито.
- SOCKS сървърът отхвърля местоназначението: проверете отговора и политиката му. Успешното локално разрешаване не доказва достижимост от отдалечената страна.
- Тунелът работи, но проверката на сертификата се проваля: проверете TLS на местоназначението; друг DNS режим не е универсално решение за проблеми с доверието.
Контролирано тестово име и сървърните журнали могат да потвърдят какъв тип адрес е достигнал прокси, което администрирате. Страница за изходящия IP не може: тя показва изходящата връзка, а не къде е извършено DNS разрешаването.
Ползата за поверителността има конкретен обхват
Разрешаването от проксито избягва локалното разрешаване на местоназначението за тази заявка. То не шифрова SOCKS, не доказва, че проксито използва шифрован DNS, и не пренасочва трафика на други приложения или предварителното извличане на браузъра. Requests с поддръжка на SOCKS използва същото разграничение между локално разрешаване и разрешаване от проксито; други клиенти може да имат настройка вместо URL записа на curl. Изберете протокол, поддържан от приложението ви, преди да копирате крайна точка от списъка със SOCKS5 проксита.