Comment vérifier si un proxy Socks5 fonctionne

36

Existe-t-il un moyen simple, de préférence en utilisant le terminal Linux, de vérifier si un proxy Socks5 fonctionne?

tony_sid
la source

Réponses:

40

Si vous avez créé le proxy vous-même, vous devez d’abord vérifier s’il ya un port ouvert (l’ pargument ne fonctionne que si le processus concerné est le vôtre ou si vous êtes root):

netstat -tlnp

Cela devrait vous donner une ligne comme: (j'ai un proxy localhost:8888)

tcp        0      0 127.0.0.1:8888          0.0.0.0:*               LISTEN

Si vous avez trouvé une telle ligne ou si le proxy ne vous appartient pas, essayez d’envoyer des paquets. Par exemple, demandez une page Web avec curl:

curl --socks5 localhost:8888 binfalse.de

Devrait sortir des trucs HTML. J'espère que cela aide à rechercher les erreurs ;-)


Aux : Pour mon exemple, j'ai créé le proxy via:

ssh -o ServerAliveInterval=60 -D8888 someone@somewhere

Remplacez-le someonepar votre nom d'utilisateur et somewherepar votre serveur de destination. Bien sûr, utiliser OpenSSH n’est qu’une méthode parmi un groupe de proxies socks5 possibles.

binfale
la source
1
ssh: Impossible de résoudre le nom d'hôte quelque part: nom ou service
inconnus
6
Bien sûr, vous devez remplacer someone@somewherevotre nom d'utilisateur et votre serveur, par exemple ssh -D8888 YOURUSER@YOURHOST;-)
binfalse
Sous Windows, la commande netstat est la suivante: nestat -an ou netstat -an | grep LISTENsi vous avez grep dans votre chemin.
Erik Aronesty
Merci pour l' curlallusion. FWIW, curl prend également en charge --socks5-hostnamece qui ressemble à, --socks5mais ne tente pas, de résoudre localement le nom d’hôte de l’URL soumise (ce qui peut être très utile pour la connexion à des intranets).
Kostix
7

Pour que curl résolve le DNS de l'autre côté, changez --socks5avec --socks5-hostname.

Voir la page de manuel pour plus d'informations.

Sindre Svendby
la source
Merci, je n'ai pas compris pourquoi ma demande échouait jusqu'à ce que je l'utilise.
xamox
4

La commande suivante testera si le proxy Socks 5 fonctionne sur localhost:8080:

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

Sinon, le délai expire au bout de 5 secondes. Si vous n'avez pas de timeoutcommande, supprimez-la.

Kenorb
la source
2

Vous pouvez vous connecter avec netcat et suivre les règles de la RFC 1928 pour parler au serveur. Cependant, vous devez être capable de taper et de lire des caractères non imprimables ou de les enregistrer dans un fichier pour un examen plus approfondi.

Par exemple, pour vérifier s’il s’agit d’un serveur SOCKS5 et savoir quelles méthodes d’authentification sans autorisation, gssapi ou usr + pwd il prend en charge, envoyez 0x05 0x03 0x00 0x00 0x01. Un serveur SOCKS5 prêt à utiliser l’authentification usr + pwd répondrait 0x05 0x02.

Ou voici comment vérifier si c'est un serveur SOCKS5 et que no-auth (méthode 0) fonctionne:

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

Une fois que vous avez interrompu cela, vers la fin de out.txt, il aurait dû produire 0x05 0x00 si le serveur prend en charge cette méthode (0) ou 0x05 0xFF s'il ne le fait pas.

Jchevali
la source