Comment puis-je utiliser le client Telnet en ligne de commande pour ouvrir une connexion brute - comme PuTTY?


8

J'ai besoin d'utiliser telnet pour parler avec un serveur socket qui n'est pas un serveur Telnet standard. Je ne souhaite aucune négociation Telnet ni interférence d'aucune sorte dans les données.

Ceci est disponible en «mode brut» dans PuTTy et j'ai besoin des mêmes fonctionnalités sous Linux.



J'ai ajouté que j'avais besoin d'un client telnet en ligne de commande (donc Putty sur Linux ne fonctionne pas pour moi).
Eden

Je me connecte à un produit MOXA qui est un serveur TCP pour se connecter à distance à un port série (d'un produit hérité). Il doit être brut pour que toutes les frappes soient envoyées telles quelles.
Eden

Fondamentalement, j'ai besoin d'une fonctionnalité de type Telnet mais sans le protocole. J'ai également essayé netcat (suggéré ci-dessus) mais cela n'a pas bien fonctionné - il est en mode d'édition en ligne et les frappes comme ^ C ne sont pas passées.
Eden

Comme un autre pointeur, jetez un œil socat, il est beaucoup plus riche en fonctionnalités que netcat; vous pouvez peut-être l'utiliser.
sr_

Réponses:


11

Utilisez netcat, il fournit des sockets raw en ligne de commande, un utilitaire très pratique, je l'utilise souvent pour déplacer des données entre les serveurs lorsque le cryptage n'est pas requis, par exemple:

Server1

# nc -l -p 1234 | zcat | mysql -u root databaseName

Server2

# mysqldump -u root databaseName | gzip | nc Server1 1234

C'est une astuce géniale! Cependant, lorsque je l'ai essayé entre deux fenêtres de terminal sur MacOS, la première ligne s'est trompée. Ma page de manuel pour nc indique que c'est une erreur d'utiliser -p avec -l. Cela a fonctionné comme un champion lorsque j'ai omis le -p
RufusVS

5

Au risque de paraître idiot, pourquoi ne pas simplement utiliser PuTTY? Si vous aimez déjà les fonctionnalités qu'il vous offre, lancez-le. PuTTY est disponible pour Linux ou Windows

Comme déjà souligné dans les commentaires, telnet n'est pas brut - il s'attend à ce que certains protocoles soient suivis.


1
+1 Rory. Telnet n'est pas brut. Utilisez «définir les options» à l' telnet> invite et vous verrez les protocoles en action.
Stephen Quan

Le mode "RAW" du mastic n'est pas vraiment RAW. Lorsque vous appuyez sur Entrée, il envoie CR / LF.
eddyq

2

Vous pouvez utiliser telnet pour vous connecter à n'importe quel port à condition qu'il y ait quelque chose à l'écoute de ce port et qu'il ne soit pas bloqué par un pare-feu.

telnet alt1.aspmx.l.google.com 25
telnet google.com 80

Tout fonctionnera bien. Cependant, vous devez savoir quel protocole est utilisé par l'autre extrémité de la connexion, sinon, c'est un peu inutile.

Notez que telnet envoie des paquets non cryptés.


5
Attention: telnet semble "brut", mais ce n'est pas le cas. Il existe déjà un certain niveau de protocole, même s'il est limité. Qu'essayez-vous de réaliser ici?
Ouki

@Ouki, le protocole TELNET est assez complexe, bien sûr. Le programme telnet reviendra généralement à un mode de fonctionnement brut s'il ne se connecte pas à un serveur TELNET.
vonbrand

0

Très vieux, mais j'ai trouvé que cela fonctionnait pour une unité MOXA:

stty raw && nc <ip> 23 && stty sane

0

Toujours d'actualité après toutes ces années.

Cela fonctionne très bien dans le ~/.bash_aliases, ouvrant un moxashell dans un onglet sans l'écho local: (le paramètre est le numéro de port moxa)

function moxat(){
  mate-terminal --tab --title="moxa1 $1" -e "bash -c 'stty raw -echo && \ 
  nc <ip> $1 && stty sane'" 
}

-1

Utilisez cette ligne exacte:

sudo socat tcp-l:2023,reuseaddr,fork exec:/bin/login,pty,setsid,setpgid,stderr,ctty

Cela vous permettra de vous connecter avec un socket brut du Moxa et d'obtenir une invite de ligne de commande sur la machine hôte. De là, vous pouvez facilement Telnet ou SSH vers n'importe quel système.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.