Głębokie zanurzenie w protokole · 2 min czytania

SOCKS5 vs SOCKS4: różnice techniczne

SOCKS4 i SOCKS5 wyglądają podobnie na powierzchni, ale różnią się w trzech aspektach, które decydują o tym, czy twój ruch w ogóle działa: uwierzytelnianie, wsparcie UDP i zdalne DNS. Oto precyzyjne porównanie na poziomie protokołu.

Dwie wersje tego samego pomysłu

SOCKS to protokół proxy niskiego poziomu: zamiast rozumieć HTTP, po prostu przekazuje połączenie TCP (a w wersji 5, UDP) między twoim klientem a docelowym serwerem. Ta niezależna od protokołu konstrukcja to powód, dla którego SOCKS działa dla wszystkiego — sieci, e-maili, ruchu gier, SSH — nie tylko przeglądarek. SOCKS4 pojawił się jako pierwszy; SOCKS5, zdefiniowany w RFC 1928, to wersja, którą dziś mówi prawie wszystko. Różnice są nieliczne, ale decydujące.

Obie zaczynają się od tego, że twój klient prosi proxy o połączenie z docelowym hostem i portem. To, co się zmieniło między wersjami, to kto może korzystać z proxy, jakie rodzaje ruchu obsługuje i gdzie rozwiązywana jest nazwa docelowa.

Trzy różnice, które naprawdę mają znaczenie

1. Uwierzytelnianie. SOCKS4 nie ma wbudowanej metody uwierzytelniania (SOCKS4a dodał tylko pole userid, które można łatwo sfałszować). SOCKS5 definiuje odpowiednie uwierzytelnianie, najczęściej za pomocą nazwy użytkownika/hasła, dzięki czemu serwer proxy może ograniczyć dostęp do płacących lub autoryzowanych użytkowników. To właśnie dlatego komercyjne serwery proxy korzystają z SOCKS5.

2. UDP i IPv6. SOCKS4 obsługuje tylko TCP i tylko IPv4. SOCKS5 dodaje przesyłanie UDP (za pomocą polecenia UDP ASSOCIATE) oraz natywne adresowanie IPv6, dzięki czemu może obsługiwać ruch DNS, VoIP, QUIC i gier, którego SOCKS4 po prostu nie może. Zobacz UDP przez SOCKS5 dla tego mechanizmu.

3. Zdalne DNS. Dzięki SOCKS5 możesz poprosić serwer proxy o rozwiązanie nazwy hosta (tryb socks5h w narzędziach takich jak cURL), dzięki czemu zapytanie nigdy nie opuszcza twojej maszyny i nie może spowodować wycieku DNS. SOCKS4 rozwiązuje lokalnie i wysyła tylko adres IP.

Które użyć i co mówi s4m

Dla wszystkiego, co napisano po mniej więcej połowie lat 90-tych, używaj SOCKS5 — a konkretnie wariantu socks5h, aby DNS był rozwiązywany zdalnie, a nazwy hostów pozostały prywatne. SOCKS4 przetrwał tylko w narzędziach dziedziczonych i na niektórych publicznych listach proxy, gdzie jego brak uwierzytelnienia jest dokładnie powodem, dla którego te proxy są otwarte (i ryzykowne). Zasada praktyczna: preferuj SOCKS5 z poświadczeniami dla prywatności i zasięgu; traktuj czysty SOCKS4 jako ciekawostkę do testowania.

s4m zapewnia uwierzytelniony SOCKS5 na proxy.s4m.online:1080 oraz proxy HTTP na porcie 3128 — zobacz stronę proxy i co to jest SOCKS5. Użyj socks5h://USER:PASS@proxy.s4m.online:1080, aby uzyskać uwierzytelnienie, możliwość UDP i brak wycieków DNS w jednym punkcie końcowym. Lista darmowych zawiera wpisy SOCKS4, jeśli potrzebujesz testować zachowanie dziedziczne, ale SOCKS5 to domyślny wybór, którego chcesz.

FAQ

Pytania, odpowiedzi

Jaka jest główna różnica między SOCKS4 a SOCKS5?

SOCKS5 dodaje prawdziwą autoryzację, przesyłanie UDP, wsparcie dla IPv6 i zdalne rozwiązywanie DNS — czego SOCKS4 nie ma. SOCKS4 jest tylko TCP, tylko IPv4 i efektywnie nieautoryzowane, więc SOCKS5 jest nowoczesnym domyślnym rozwiązaniem dla wszystkiego, co potrzebuje bezpieczeństwa lub ruchu nie-TCP.

Co oznacza "h" w socks5h?

Oznacza to, że proxy rozwiązuje nazwę hosta zdalnie, zamiast na twojej lokalnej maszynie. Używanie socks5h:// utrzymuje twoje zapytania DNS poza twoją siecią, zapobiegając wyciekowi DNS, który mógłby ujawnić, które domeny odwiedzasz. Zwykłe socks5:// rozwiązuje lokalnie najpierw.

Uwierzytelniony SOCKS5, zrobiony dobrze

Połącz się z proxy.s4m.online:1080 z socks5h w celu uwierzytelnienia, wsparcia UDP i bezpiecznego zdalnego DNS w jednym punkcie końcowym. Płatność za użycie, z proxy HTTP na 3128 również.

Ludzie znaleźli tę stronę, szukając

Rzeczywiste frazy wyszukiwania, na które ta strona odpowiada — powiązane otwierają stronę, która je szczegółowo omawia.