和client PC IP: 10.49.46.5/24
是server 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:~]#
服务器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
服务器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
}
它们TCPWrapper hosts.allow
是:
telnetd: /etc/telnetd.hosts
tfdpd: /etc/tftpd.hosts
sshd: /etc/sshd.hosts
它们TCPWrapper hosts.deny
是:
ALL:ALL
现在:
- 我检查了一下
ssh
,它正在运行port 22
。 - 我检查了一下
/var/log/message
,发现该命令xinetd
启动然后立即退出telnet。 - 我检查了
iptables
不要使用以下命令删除 telnet 包:iptables -L
您能帮我找出问题所在以及如何解决它吗?
答案1
[root@xxx:~]# telnet 10.49.46.2
Trying 10.49.46.2...
Connected to 10.49.46.2.
Escape character is '^]'.
这意味着您已经成功与远程守护程序建立了 TCP 连接。什么守护进程?xinetd
充当枢纽的那个。现在您已连接,xinetd
请尝试启动特定服务 ( telnet
)。
Connection closed by foreign host.
这意味着启动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
}
答案2
用 指定 telnet 端口telnet 10.49.46.2 24
。
根据康耐视相机手册,“提供端口号会禁用 Unix 用户名/密码身份验证,并强制 Unix 系统提示您输入用户名和密码。”
答案3
xhienne 提出了一些很好的观点。 TCP 握手即将完成。连接关闭意味着以下两件事之一。
1)telnetd服务启动时失败(检查日志)
2) 您连接的客户端未在 /etc/telnetd.hosts 中列出(检查您的日志,或暂时重命名 /etc/hosts.deny 进行确认)
客户端IP:10.49.46.5/24
不,IP 主机地址没有网络掩码。
请停止使用 telnetd。每次你远程登录时,都会有小猫哭。 (使用 ssh 或 telnet-tls)
答案4
尝试以下命令:
sudo apt install tcpd