Jak sprawdzić, czy proxy Socks5 działa

36

Czy istnieje prosty sposób, najlepiej za pomocą terminalu Linux, aby sprawdzić, czy serwer proxy Socks5 działa?

tony_sid
źródło

Odpowiedzi:

40

Jeśli sam utworzyłeś proxy, powinieneś przede wszystkim sprawdzić, czy jest otwarty port ( pargument działa tylko wtedy, gdy dany proces jest twój lub jesteś rootem):

netstat -tlnp

Powinno to dać ci następujący wiersz: (Mam proxy localhost:8888)

tcp        0      0 127.0.0.1:8888          0.0.0.0:*               LISTEN

Jeśli znalazłeś taką linię lub serwer proxy nie należy do Ciebie, spróbuj wysłać przez nią pakiety. Na przykład zamów stronę internetową z curl:

curl --socks5 localhost:8888 binfalse.de

Powinny wypisać jakieś rzeczy HTML. Mam nadzieję, że pomoże to w poszukiwaniu błędów ;-)


Aux : Na mój przykład utworzyłem proxy za pomocą:

ssh -o ServerAliveInterval=60 -D8888 someone@somewhere

Zamień na someoneswoją nazwę użytkownika i somewherena serwer docelowy. Oczywiście korzystanie z OpenSSH to tylko jedna metoda z wielu możliwych serwerów proxy socks5.

binfalse
źródło
1
ssh: Nie można rozpoznać gdzieś nazwy hosta: Nazwa lub usługa nieznana
tony_sid
6
Oczywiście musisz zastąpić someone@somewhereswoją nazwą użytkownika i serwerem, np. ssh -D8888 YOURUSER@YOURHOST;-)
binfalse
W systemie Windows polecenie netstat to: nestat -an lub netstat -an | grep LISTENjeśli masz grep na swojej ścieżce.
Erik Aronesty,
Dzięki za curlpodpowiedź. FWIW, curl obsługuje również, --socks5-hostnamektóre jest podobne, --socks5ale nie próbuje lokalnie rozwiązać nazwy hosta przesłanego adresu URL (co może być bardzo przydatne do łączenia się z intranetem).
kostix
7

Aby uzyskać curl w celu rozwiązania DNS po drugiej stronie, zmień za --socks5pomocą --socks5-hostname.

Zobacz stronę podręcznika, aby uzyskać więcej informacji.

Sindre Svendby
źródło
Dzięki, nie zdawałem sobie sprawy, dlaczego moja prośba nie powiodła się, dopóki tego nie użyłem.
xamox,
4

Następujące polecenie sprawdzi, czy proxy Socks 5 działa w localhost:8080:

timeout 5 curl -x socks5://localhost:8080 http://example.com/

W przeciwnym razie upłynie limit czasu po 5 sekundach. Jeśli nie masz timeoutpolecenia, upuść je.

kenorb
źródło
1

Możesz połączyć się z netcat i postępować zgodnie z zasadami RFC 1928, aby rozmawiać z serwerem. Trzeba będzie jednak móc pisać i czytać znaki niedrukowalne lub zalogować je do pliku w celu dalszego zbadania.

Na przykład, aby sprawdzić, czy jest to serwer SOCKS5 i dowiedzieć się, którą z metod uwierzytelniania bez autoryzacji, gssapi lub usr + pwd obsługuje, wyślij 0x05 0x03 0x00 0x01 0x02. Serwer SOCKS5 przygotowany do użycia uwierzytelnienia usr + pwd odpowiedziałby 0x05 0x02.

Lub oto, jak sprawdzić, czy jest to serwer SOCKS5 i czy działa funkcja no-auth (metoda 0):

echo 050100 | xxd -p -r | netcat -o out.txt {server} {port}

Po przerwaniu tego, pod koniec pliku out.txt powinien był wygenerować 0x05 0x00, jeśli serwer obsługuje tę metodę (0), lub 0x05 0xFF, jeśli nie.

Jchevali
źródło