Cómo verificar si un proxy Socks5 funciona

36

¿Hay alguna manera fácil, preferiblemente mediante el uso del terminal de Linux, para verificar si un proxy Socks5 funciona?

tony_sid
fuente

Respuestas:

40

Si creó el proxy usted mismo, primero debe verificar si hay un puerto abierto (el pargumento solo funciona si el proceso en cuestión es suyo o usted es root):

netstat -tlnp

Esto debería darle una línea como: (Tengo un proxy activado localhost:8888)

tcp        0      0 127.0.0.1:8888          0.0.0.0:*               LISTEN

Si encontró esa línea o el proxy no es suyo, intente enviar paquetes a través de él. Por ejemplo, solicite una página web con curl:

curl --socks5 localhost:8888 binfalse.de

Debería generar algunas cosas HTML. Espero que esto ayude a buscar errores ;-)


Aux : para mi ejemplo, creé el proxy a través de:

ssh -o ServerAliveInterval=60 -D8888 someone@somewhere

Reemplace someonecon su nombre de usuario y somewherecon su servidor de destino. Por supuesto, usar OpenSSH es solo un método en un montón de posibles proxies socks5.

binfalse
fuente
1
ssh: no se pudo resolver el nombre de host en alguna parte: nombre o servicio desconocido
tony_sid
66
Por supuesto, debe reemplazarlo someone@somewherecon su nombre de usuario y su servidor, por ejemplo ssh -D8888 YOURUSER@YOURHOST;-)
binfalse
En Windows, el comando netstat es: nestat -an o netstat -an | grep LISTENsi tiene grep en su ruta.
Erik Aronesty
Gracias por la curlpista. FWIW, curl también es compatible con lo --socks5-hostnameque es similar --socks5pero no intenta resolver localmente el nombre de host de la URL enviada (que puede ser muy útil para conectarse a intranets).
kostix
7

Para obtener curl para resolver el DNS en el otro lado, cambie --socks5con --socks5-hostname.

Vea la página del manual para más información.

Sindre Svendby
fuente
Gracias, no me di cuenta por qué mi solicitud estaba fallando hasta usar esto.
xamox
4

El siguiente comando probará si el proxy de Socks 5 funciona en localhost:8080:

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

De lo contrario, expirará después de 5 segundos. Si no tiene un timeoutcomando, suéltelo.

kenorb
fuente
2

Puede conectarse con netcat y seguir las reglas de RFC 1928 para hablar con el servidor. Sin embargo, debería poder escribir y leer caracteres no imprimibles, o registrarlos en un archivo para un examen más detallado.

Por ejemplo, para probar si es un servidor SOCKS5 y averiguar cuál de los métodos de autenticación sin autenticación, gssapi o usr + pwd admitiría, envíe 0x05 0x03 0x00 0x01 0x02. Un servidor SOCKS5 preparado para usar la autenticación usr + pwd respondería 0x05 0x02.

O aquí se explica cómo verificar si es un servidor SOCKS5 y si no-auth (método 0) funciona:

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

Después de interrumpir eso, hacia el final de out.txt debería haber producido 0x05 0x00 si el servidor admite ese método (0), o 0x05 0xFF si no lo hace.

jchevali
fuente