¿Cómo puedo usar la línea de comandos del cliente telnet para abrir una conexión sin procesar, como PuTTY?

8

Necesito usar telnet para hablar con un servidor de socket que no es un servidor Telnet estándar. No deseo ninguna negociación o interferencia de Telnet de ningún tipo en los datos.

Está disponible como 'modo sin procesar' en PuTTy y necesito la misma funcionalidad en Linux.

Edén
fuente
Agregué que necesito un cliente telnet de línea de comandos (por lo que Putty en Linux no funciona para mí).
Eden
Me estoy conectando a un producto MOXA que es un servidor TCP para conectarse de forma remota a un puerto serie (de un producto heredado). Debe ser sin formato para que todas las pulsaciones de teclas se envíen tal cual.
Eden
Básicamente necesito la funcionalidad 'similar a telnet' pero sin el protocolo. También probé netcat (sugerido anteriormente) pero eso no funcionó bien: está en modo de edición de línea y no se pasan pulsaciones de teclas como ^ C.
Eden
Como otro puntero, eche un vistazo socat, tiene muchas más funciones que netcat; tal vez puedas utilizarlo.
sr_

Respuestas:

11

Use netcat, proporciona sockets crudos de línea de comandos, una utilidad muy útil, a menudo lo uso para mover datos entre servidores cuando no se requiere cifrado, por ejemplo:

Servidor 1

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

Servidor2

# mysqldump -u root databaseName | gzip | nc Server1 1234
Geoffrey
fuente
Este es un consejo increíble! Sin embargo, cuando lo probé entre dos ventanas de terminal en MacOS, la primera línea erró. Mi página de manual para nc dice que es un error usar -p con -l. Funcionó como un campeón cuando omití el -p
RufusVS
5

En riesgo de sonar tonto, ¿por qué no usar PuTTY? Si ya le gusta la funcionalidad que le brinda, simplemente ejecútela. PuTTY está disponible para Linux o Windows

Como ya se señaló en los comentarios, telnet no está en bruto: espera que se sigan ciertos protocolos.

Rory Alsop
fuente
1
+1 Rory. Telnet no está en bruto. Use 'establecer opciones' en el telnet> indicador y verá los protocolos en acción.
Stephen Quan
El modo "RAW" de masilla no es realmente RAW. Cuando presiona Enter, envía CR / LF.
eddyq
2

Puede usar telnet para conectarse a cualquier puerto siempre que haya algo escuchando ese puerto y no esté bloqueado por un firewall.

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

Todo funcionará bien. Sin embargo, debe saber qué protocolo utiliza el otro extremo de la conexión; de lo contrario, no tiene sentido.

Tenga en cuenta que telnet envía paquetes sin cifrar.

Sardathrion - contra el abuso SE
fuente
55
Cuidado: telnet parece "en bruto", pero no lo es. Ya hay algún nivel de protocolo involucrado, incluso si es limitado. ¿Qué estás tratando de lograr aquí?
Ouki
@Ouki, el protocolo TELNET es bastante complejo, claro. El programa telnet generalmente volverá a un modo de operación sin formato si no se conecta a un servidor TELNET.
vonbrand
0

Muy antiguo, pero encontré que esto funciona para una unidad MOXA:

stty raw && nc <ip> 23 && stty sane
smp
fuente
0

Sigue siendo relevante después de todos estos años.

Esto funciona bien en la ~/.bash_aliasesapertura de un moxashell en una pestaña sin el eco local: (el parámetro es el número de puerto moxa)

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

Use esta línea exacta:

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

Eso le permitirá conectarse con un zócalo sin procesar de Moxa y obtener un indicador de línea de comando en la máquina host. Desde allí puede Telnet o SSH a voluntad a cualquier sistema con facilidad.

Pyrofer
fuente