У 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-проксі.

Схожі статті