Come posso utilizzare il client telnet della riga di comando per aprire una connessione non elaborata, ad esempio PuTTY?


8

Devo usare telnet per parlare con un server socket che non è un server Telnet standard. Non desidero alcuna negoziazione o interferenza di Telnet di alcun tipo nei dati.

Questo è disponibile come 'modalità raw' in PuTTy e ho bisogno della stessa funzionalità in Linux.



Ho aggiunto che ho bisogno di un client telnet a riga di comando (quindi Putty su Linux non funziona per me).
Eden,

Mi sto collegando a un prodotto MOXA che è un server TCP per la connessione remota a una porta seriale (di un prodotto legacy). Deve essere grezzo in modo che tutti i tasti vengano inviati così come sono.
Eden,

Fondamentalmente ho bisogno della funzionalità "telnet-like" ma senza il protocollo. Ho anche provato netcat (suggerito sopra) ma non ha funzionato bene - è in modalità di modifica in linea e i tasti come ^ C non vengono passati.
Eden,

Come altro puntatore, dai un'occhiata socat, è molto più ricco di funzionalità di netcat; forse puoi usarlo.
sabato

Risposte:


11

Usa netcat, fornisce socket raw da riga di comando, un'utilità molto utile, lo uso spesso per spostare i dati tra i server quando non è richiesta la crittografia, ad esempio:

Server1

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

Server2

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

Questo è un consiglio fantastico! Tuttavia, quando l'ho provato tra due finestre terminali su MacOS la prima riga ha commesso un errore. La mia pagina man per nc dice che è un errore usare -p con -l. Ha funzionato come un campione quando ho omesso il -p
RufusVS il

5

A rischio di sembrare sciocco, perché non usare semplicemente PuTTY? Se ti piace già la funzionalità che ti offre, basta eseguirla. PuTTY è disponibile per Linux o Windows

Come già sottolineato nei commenti, telnet non è raw, ma prevede che vengano seguiti determinati protocolli.


1
+1 Rory. Telnet non è raw. Usa 'imposta opzioni' sul telnet> prompt e vedrai i protocolli in azione.
Stephen Quan,

La modalità Putty "RAW" non è realmente RAW. Quando premi Invio, invia CR / LF.
Eddyq,

2

È possibile utilizzare Telnet per connettersi a qualsiasi porta, purché ci sia qualcosa che ascolta quella porta e non è bloccata da un firewall.

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

Funzionerà tutto bene. Tuttavia, è necessario sapere quale protocollo viene utilizzato dall'altra estremità della connessione, altrimenti è inutile.

Si noti che telnet invia pacchetti non crittografati.


5
Attenzione: telnet sembra "grezzo", ma non lo è. Esiste già un certo livello di protocollo, anche se limitato. Cosa stai cercando di ottenere qui?
Ouki,

@Ouki, il protocollo TELNET è abbastanza complesso, certo. Il programma telnet tornerà di solito a una modalità operativa grezza se non si connette a un server TELNET.
vonbrand,

0

Molto vecchio, ma ho scoperto che funziona per un'unità MOXA:

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

0

Ancora rilevante dopo tutti questi anni.

Funziona bene in ~/.bash_aliases, aprendo una moxashell in una scheda senza l'eco locale: (il parametro è il numero di porta moxa)

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

-1

Usa questa riga esatta:

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

Ciò ti consentirà di connetterti con un socket raw da Moxa e ottenere un prompt della riga di comando sul computer host. Da lì puoi Telnet o SSH a tuo piacimento con facilità.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.