Telnet 连接已被外部主机关闭

Yur*_*uri 5 linux telnet xinetd tcp-wrappers

client PC IP: 10.49.46.5/24server PC IP: 10.49.46.2/24被链接到同一网络的两台计算机。当我尝试使用命令在这两台计算机之间创建交互式通信时telnet,我得到以下信息:

[root@xxx:~]# telnet 10.49.46.2
Trying 10.49.46.2...
Connected to 10.49.46.2.
Escape character is '^]'.

Connection closed by foreign host.
[root@xxx:~]#
Run Code Online (Sandbox Code Playgroud)

服务器xinetd.conf如下:

    defaults
    {
            instances               = 60
            log_type                = SYSLOG authpriv
            log_on_success          = HOST PID EXIT
            log_on_failure          = HOST ATTEMPT
            cps                     = 25 30
    }
includedir /etc/xinetd.d
Run Code Online (Sandbox Code Playgroud)

服务器telnet.config如下:

service telnet
{
        flags           = REUSE
        socket_type     = stream
        wait            = no
        user            = root
        server          = /usr/sbin/telnetd
        log_on_failure  += USERID
        instances       = 10
        disable         = no
}
Run Code Online (Sandbox Code Playgroud)

TCPWrapper hosts.allow是:

telnetd: /etc/telnetd.hosts
tfdpd: /etc/tftpd.hosts
sshd: /etc/sshd.hosts
Run Code Online (Sandbox Code Playgroud)

TCPWrapper hosts.deny是:

ALL:ALL
Run Code Online (Sandbox Code Playgroud)

现在:

  1. 我检查了一下ssh,它正在运行port 22
  2. 我检查/var/log/message并发现该命令xinetd启动然后立即退出 telnet。
  3. iptables使用以下命令检查了不要删除 telnet 包:iptables -L

请您帮我找出问题所在,我该如何解决?

xhi*_*nne 4

[root@xxx:~]# telnet 10.49.46.2
Trying 10.49.46.2...
Connected to 10.49.46.2.
Escape character is '^]'.
Run Code Online (Sandbox Code Playgroud)

这意味着您已经成功与远程守护程序建立了 TCP 连接。什么守护进程?xinetd充当枢纽的那个。现在您已连接,xinetd请尝试启动特定服务 ( telnet)。

Connection closed by foreign host.
Run Code Online (Sandbox Code Playgroud)

这意味着启动telnet服务失败。您可能需要向telnetd命令行添加调试选项并读取xinetd日志以查看到底发生了什么故障。


您似乎正在运行 BusyBox 版本的telnetd. 与经典版本相反telnetd,Busybox 提供的服务是一个独立的守护进程,需要一个-i选项来与之交互inetd(由具有与独立守护进程不兼容的特定接口启动的服务inetd:它们不能打开和侦听套接字,它们必须与客户端通过标准输入/标准输出)。

因此,您的xinetd配置应该是:

service telnet
{
        flags           = REUSE
        socket_type     = stream
        wait            = no
        user            = root
        server          = /usr/sbin/telnetd
        server_args     = -i
        log_on_failure  += USERID
        instances       = 10
        disable         = no
}
Run Code Online (Sandbox Code Playgroud)