¿Cómo hacer que Telnet funcione en localhost?

10

Estoy trabajando en una configuración de desarrollo local que requiere el uso de telnet (jugando con la configuración de un servidor MUD), así que no hay comentarios que sugieran que use SSH como una alternativa más segura.

Sin embargo, aunque tengo el demonio telnet activado, obtengo este resultado cuando telnet localhost.

$ telnet localhost
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
Connection closed by foreign host.

¿Cuáles son algunas razones por las que la conexión está cerrada? He comprobado los documentos en hosts.allow y hosts.deny, y he decidido no incluir ninguna entrada ya que el valor predeterminado es permitir todo y eso es suficiente para mis propósitos de desarrollo local.

Jerome
fuente
2
Creo que tendrá que contarnos más sobre el software de mazmorra multiusuario específico que está utilizando. El telnetddemonio de Ubuntu normalmente funciona bien desde el primer momento ... pero también te da un inicio de sesión normal. Supongo que el servidor MUD es lo que está escuchando en el puerto 23, por lo que el problema probablemente esté en su configuración. Lo más probable es que no tenga nada que ver con lo que está haciendo con el telnetcliente. Alternativamente, si está intentando usar su servidor MUD con Ubuntu nativo telnetd, díganos qué configuración ha utilizado para intentar facilitar esto.
Eliah Kagan
El servidor MUD generalmente no usa telnetd. Se ejecuta como un servicio en un puerto diferente.
Alistair Buxton el
Ok, no sabía que el servidor MUD probablemente no usaría el demonio nativo. Estoy trabajando en el uso de una biblioteca de servidor de juegos PHP, que supuse se ejecutó "encima" de telnet nativo.
Jerome
¿Qué biblioteca y qué has hecho con ella? Si se trata de PHP, eso sugiere que podría proporcionar un servidor MUD basado en la web (aunque eso no está garantizado), en lugar de uno basado en Telnet. Además, asumiendo que ha instalado telnetdy no cambió su configuración, sigue siendo curioso que usted no es capaz de obtener una cáscara cuando telneta localhost. ¿Todavía desea ayuda con ese problema, a pesar de que es probable que no le impida ejecutar su servidor MUD?
Eliah Kagan
2
Si su servidor se está ejecutando a través de inetd, es bastante común que inetd escuche en un puerto y cierre las conexiones de la manera que está viendo si el demonio del servidor real no se puede iniciar. Esta podría ser una pista útil para usted, o podría ser completamente irrelevante. No estoy seguro de cuál.
Robie Basak

Respuestas:

2

Bien, investiguemos esto, paso a paso. Para averiguar qué se está ejecutando realmente en el puerto de Telnet, escriba:

sudo netstat -tulpn | grep :23

y pegue la salida.

Desde otro ángulo: ¿qué biblioteca de juegos PHP estás usando?

0xF2
fuente
¡Bien! Parece que podemos llegar a alguna parte.
Jerome
tcp 0 0 0.0.0.0:23 0.0.0.0:* LISTEN 2842/inetd
Jerome
La biblioteca de juegos PHP se llama NAGS, y parece que, en base a algunos correos electrónicos con su creador, todavía está en un estado menos que completo. Pero estoy interesado en llevar este problema hasta la línea de meta con la información que recojo en el camino.
Jerome
1

Nota: acabo de ir en busca de servidor de barro con biblioteca de juegos NAGS y encontró lo siguiente: nags-php-mud. Mi respuesta es irrelevante si estás usando otra cosa.

El config.phptenía la siguiente configuración:

<?
    /*Modify the setting here to set up your game server */
    $configarray = array(
        'DB_HOST' => 'localhost',
        'DB_USERNAME' => 'nags',
        'DB_PASSWORD' => 'password',
        'DB_DATABASE' => 'nags',
        'IP_ADDRESS' => '0.0.0.0',
        'SERVER_PORT' => '4000',
        'SERVER_NAME' => 'NAGS GAMING SYSTEM',
);?>

Entonces, el número de puerto es 4000. ¿Puede intentar actualizar la dirección IP para 127.0.0.1luego conectarse al puerto 4000 usando telnet:telnet 127.0.0.1 4000

Actualizado
En el comando anterior, tienestelnet localhosty notelnet localhost 4000.
Intenté ejecutarlo pero tengo algún problema. Muestra lo siguiente y no puedo rastrearlo:

PHP Notice:  Undefined index: quiet in /home/blvdeer/Downloads/nags-php-mud-master/nags.php on line 34  
PHP Notice:  Undefined index: q in /home/blvdeer/Downloads/nags-php-mud-master/nags.php on line 34
PHP Notice:  Undefined index: deamon in /home/blvdeer/Downloads/nags-php-mud-master/nags.php on line 38
PHP Notice:  Undefined index: d in /home/blvdeer/Downloads/nags-php-mud-master/nags.php on line 38
PHP Notice:  Undefined property: MAIN::$MESSAGE in /home/blvdeer/Downloads/nags-php-mud-master/modules/main.php on line 158
SYSTEM: (LOAD MODULE)   MESSAGE
SYSTEM: (LOAD MODULE)   CONFIGURE
SYSTEM: (LOAD MODULE)   DATABASE
Blvdeer
fuente
Eso es exactamente lo que he estado haciendo, sin resultados positivos.
Jerome
Se actualizó la respuesta. También en la pregunta, mencionaste en telnet localhostlugar detelnet localhost 4000
blvdeer
Sí, espero tener noticias del desarrollador de la biblioteca NAGS. En cuanto al problema específico de telnet (a 4000 o 23 o cualquier puerto), aún está pendiente de sugerencias.
Jerome
-2

Pruebe con telnet localhost 80 Where 80 es el puerto en el que se ejecuta su servidor. Intenté con 80 puertos para el servidor apache y funciona.

También es posible que deba usar la opción -K y -X. Lea más sobre ellos en el hombre telnet

Abhijit N
fuente
3
Apache es un servidor web, y el puerto 80 es el puerto para HTTP. Telnet funciona para conectarse a una variedad de servidores, ya que es un protocolo muy básico: puede ingresar comandos manualmente para HTTP, SMTP, etc. El puerto 23 es el puerto para telnetd. Por lo tanto, no hay razón para esperar que se ejecute en el puerto 80. A veces las personas ejecutan servidores que no son HTTP en el puerto 80 para permitir a los clientes sortear las restricciones de firewall de salida, pero no hay indicios de lo que está sucediendo aquí. Aquí, el OP configuró el servidor. es poco probable que los servidores telnet y MUD escuchen en el puerto 80 sin estar configurados para hacerlo.
Eliah Kagan
2
Además, no es un servidor que ejecuta en el puerto 23 aquí, porque se realizó la conexión. Fue terminado después de eso. Si el servidor se ejecutara en un puerto diferente y no hubiera nada escuchando en el puerto 23, la conexión se habría rechazado.
Eliah Kagan
Sí, estamos haciendo la conexión, pero luego está cerrada. Originalmente me hizo pensar que había alguna razón de seguridad.
Jerome