Linux上解决telnet失败问题

现象描述

在设备A执行telnetd,ps查看telnetd运行中。

在另一台设备B上telnet到这台设备上,报Connection closed by foreign host

在设备A上再查看telnetd进程状态,发现进程已经消失,说明在登录的过程中telnetd进程崩溃。

使用gdb挂载运行和attach运行,也没有任何线索。

查看telnetd命令,telnetd -F让其在前台运行。

发现在登录的瞬间会报"telnetd: can't find free pty"错误。

telnet登录失败的原因也就是这个。

解决问题

"can't find free pty" 错误,是由于系统无法分配伪终端(PTY)设备导致的。

第一步排查kernel是否支持,是否打开了PTY的相关配置。

复制代码
CONFIG_UNIX98_PTYS=y
CONFIG_LEGACY_PTYS=y
CONFIG_LEGACY_PTY_COUNT=256

发现正常。

第二步排查PTY设备数量,这个正常只会在登录设备过多的时候会被限制。

复制代码
cat /proc/sys/kernel/pty/max # 查看当前系统PTY设备数量限制
cat /proc/sys/kernel/pty/nr  # 当前已使用的PTY数量

发现也正常,数量剩余很多。

第三步检查/dev/pts文件系统

mount | grep pts

发现没有挂载信息,查看/dev/pts,甚至没有这个目录,那问题就在这里。

自己手动创建目录挂载。

再运行telnetd,检查telnet是否能登录

登录正常,问题解决。

telnetd -F -l /bin/sh &运行,可以免密root登录

相关推荐
松涛和鸣8 小时前
72、IMX6ULL驱动实战:设备树(DTS/DTB)+ GPIO子系统+Platform总线
linux·服务器·arm开发·数据库·单片机
简单中的复杂8 小时前
【避坑指南】RK3576 Linux SDK 编译:解决 Buildroot 卡死在 host-gcc-final 的终极方案
linux·嵌入式硬件
wVelpro9 小时前
如何在Pycharm 2025.3 版本实现虚拟环境“Make available to all projects”
linux·ide·pycharm
程序员老舅9 小时前
C++高并发精髓:无锁队列深度解析
linux·c++·内存管理·c/c++·原子操作·无锁队列
雨中风华10 小时前
Linux, macOS系统实现远程目录访问(等同于windows平台xFsRedir软件的目录重定向)
linux·windows·macos
爱吃生蚝的于勒10 小时前
【Linux】进程信号之捕捉(三)
linux·运维·服务器·c语言·数据结构·c++·学习
The森10 小时前
Linux IO 模型纵深解析 01:从 Unix 传统到 Linux 内核的 IO 第一性原理
linux·服务器·c语言·经验分享·笔记·unix
翼龙云_cloud10 小时前
腾讯云代理商: Linux 云服务器搭建 FTP 服务指南
linux·服务器·腾讯云
纤纡.11 小时前
Linux中SQL 从基础到进阶:五大分类详解与表结构操作(ALTER/DROP)全攻略
linux·数据库·sql
好好学习天天向上~~11 小时前
6_Linux学习总结_自动化构建
linux·学习·自动化