SOCKS5 a SOCKS5h: gdzie odbywa się rozwiązywanie DNS
Porównaj lokalne rozwiązywanie nazw i rozwiązywanie przez proxy w curl, diagnozuj błędy nazw i poznaj zakres ochrony socks5h.
W curl wybierz socks5h://, gdy nazwę celu ma rozwiązać proxy. Wybierz socks5://, gdy curl ma rozwiązać ją lokalnie i wysłać adres do proxy. Oba warianty używają SOCKS5; końcowe h to konwencja zapisu URL po stronie klienta.
Porównaj tryby, podstawiając własny punkt końcowy SOCKS5 zamiast lokalnego punktu nasłuchu:
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/Zmienia się tylko tryb rozwiązywania nazw. --noproxy '' usuwa reguły omijania proxy dla tych wywołań, a limity czasu ograniczają czas porównania. Równoważne osobne opcje to --socks5 i --socks5-hostname. Jako cel podaj nazwę hosta: adres IP wpisany wprost nie wymaga rozwiązywania nazwy celu i nie pokaże tej różnicy.
Nazwa może być znana tylko jednej stronie
Załóżmy, że proxy działa w sieci deweloperskiej, której DNS zna nazwę wewnętrznej usługi. Laptop może nie rozwiązać jej w trybie socks5, natomiast socks5h pozwala zrobić to proxy. W odwrotnej sytuacji, gdy nazwa jest zdefiniowana tylko w pliku hosts laptopa, nie udać może się właśnie zdalne rozwiązywanie.
Publiczny DNS również może zwracać różne adresy z różnych sieci. Różne wyniki to powód, aby porównać wybrane adresy i ich osiągalność, zamiast od razu wymieniać proxy.
- Nie można rozwiązać nazwy hosta proxy: żaden tryb nie może się rozpocząć. Klient nadal rozwiązuje
proxy.examplewsocks5h://proxy.example:1080. - Lokalne rozwiązywanie nazwy celu nie działa: sprawdź resolver klienta lub porównaj z trybem przekazującym nazwę hosta do proxy.
- Serwer SOCKS odrzuca cel: sprawdź jego odpowiedź i politykę. Udane lokalne rozwiązanie nazwy nie dowodzi osiągalności ze zdalnej strony.
- Tunel działa, ale weryfikacja certyfikatu nie: zbadaj TLS celu; wybór innego trybu DNS nie jest ogólnym rozwiązaniem problemów zaufania.
Kontrolowana nazwa testowa i logi serwera pozwalają potwierdzić, jaki typ adresu dotarł do proxy, którym zarządzasz. Strona pokazująca wyjściowy adres IP tego nie potrafi: opisuje połączenie wychodzące, a nie miejsce rozwiązania DNS.
Korzyść dla prywatności ma określony zakres
Rozwiązywanie nazwy przez proxy pozwala uniknąć lokalnego zapytania o cel tego żądania. Nie szyfruje SOCKS, nie dowodzi użycia szyfrowanego DNS przez proxy ani nie przekierowuje ruchu innych aplikacji i wstępnego pobierania przeglądarki. Requests z obsługą SOCKS stosuje to samo rozróżnienie między lokalnym rozwiązywaniem nazw a rozwiązywaniem przez proxy; inne klienty mogą udostępniać ustawienie zamiast zapisu URL używanego przez curl. Wybierz protokół obsługiwany przez aplikację, zanim skopiujesz punkt końcowy z listy proxy SOCKS5.