Cómo configurar un Telnet inverso en Mac OS X

Cómo configurar un Telnet inverso en Mac OS X

Estoy intentando configurar un Telnet inverso (Telnet a COM) en Mac OS X 10.9.5 (Mavericks). La Mac está conectada a un dispositivo serie. No tengo ningún problema para acceder al dispositivo serie desde Mac usando la pantalla:

screen /dev/cu.USBserial

Sin embargo, me gustaría acceder al dispositivo de forma remota, a través de Telnet.

Intenté usar Netcat ( nc) y tuve un éxito limitado. El comando que utilicé es:

nc -l 9999 > /dev/cu.USBserial < /dev/cu.USBserial

Y luego puedo hacer Telnet al dispositivo. Sin embargo, no funciona por dos razones:

  1. Para la interfaz de usuario interactiva, la entrada se almacena esencialmente en línea hasta que presiono return.
  2. Todos mis comentarios se repiten en mí. En la vida real, el dispositivo debería ser el que haga eco de mis caracteres ingresados.

¿Cuál es la forma correcta de hacerlo?

Respuesta1

El método más simple:

  1. telnet(o mejor dicho ssh) a tu Mac
  2. escribe tu screen /dev/cu.USBserialcomando

Ahora, si no desea conectarse a su Mac directamente al puerto COM, o permitir que otros lo hagan y nada más, aquí tiene una manera:

  1. Crea un usuario dedicado en tu mac. Llamémoslo "comport" e iniciemos sesión como este usuario.
  2. Cree un script de conexión para este usuario. Cree un archivo llamado /Users/comport/log2com.she inserte estas líneas en él:

    #!/bin/bash
    /usr/bin/screen -R /dev/cu.USBserial
    
  3. Permita que el script se ejecute ejecutando este comando en su terminal:

    chmod +x /Users/comport/log2com.sh
    
  4. Finalmente, configure este script como el shell de inicio de sesión de su usuario. Para esto, en Preferencias del Sistema > Usuarios y Grupos, en la lista de usuarios, haga clic derecho sobre el usuario y seleccione "Opción Avanzada". Luego, en el campo "shell", escriba /Users/comport/log2com.shy haga clic en Aceptar.

Eso es todo. Ahora puede hacer telnet (¡preferiría recomendarlo ssh!) para iniciar sesión en su Mac para acceder directamente a la pantalla.

Tenga en cuenta que para salir debe hacerlo en la pantalla (generalmente Ctrl+ A, luego :quit Return).

Probé esto en OSX 10.10.5. Déjame saber si funcionó para ti.

Respuesta2

Encontré una solución. El paquete Python PySerial tiene una clase rfc2217. Tienen una aplicación de muestra que funciona como servidor telnet:

https://pyserial.readthedocs.org/en/latest/examples.html

$ python rfc2217_server.py /dev/tty.serial

abre un puerto 2217 que permite conectarse a telnet. Es exactamente lo que quería.

información relacionada