嵌入式linux开发,启用busybox的telnetd服务

article/2025/10/13 22:02:42

        Telnet协议是TCP/IP协议族中的一员,是Internet远程登录服务的标准协议和主要方式。它为用户提供了在本地计算机上完成远程主机工作的能力。在终端使用者的电脑上使用telnet程序,用它连接到服务器。终端使用者可以在telnet程序中输入命令,这些命令会在服务器上运行,就像直接在服务器的控制台上输入一样。可以在本地就能控制服务器。要开始一个telnet会话,必须输入用户名和密码来登录服务器。Telnet是常用的远程控制Web服务器的方法。

一、启用用户登录

https://blog.csdn.net/weixin_43782998/article/details/121285658

二、busybox

        telnet需要一个交互的登录界面,须要有getty、login和passwd程序。如果没有,无法实现telnet。此三个程序可由busybox生成。

        1、telnet、telnetd

Networking Utilities --->[*]  telnet[*]    Pass TERM type to remote host{*}    Pass USER type to remote host[*]  telnetd[*]    Support standalone telnetd (not innetd only)[*]      Support -w SEC option (inetd wati mode)

2、 inetd

Networking Utilities --->[*]  inetd

3、mdev

Linux System Utilities --->[*]  mdev[*]    Support /etc/mdev.conf[*]      Support subdirs/symlinks[*]        Support regular expressions substitutions when renaming device[*]      Support command executiong at device addition/removal[*]    Support loading of firmwares

 

 三、kernel

        修改内核配置,启用Legacy (BSD) PTY support。

Device Drivers --->Character devices --->-*-  Unix98 PTY support[]  Support multiple instances of devpts[*]  Legacy (BSD) PTY support(256)  Maximum number of legacy PTY in use

 四、rootfs

1、/etc/services

        直接拷贝Ubuntu下的对应文件。

2、/etc/inetd.conf

# /etc/inetd.conf:  see inetd(8) for further informations.
#
# Internet server configuration database
#
# If you want to disable an entry so it isn't touched during
# package updates just comment it out with a single '#' character.
#
# <service_name> <sock_type> <proto> <flags> <user> <server_path> <args>
#
#:INTERNAL: Internal services
#echo           stream  tcp     nowait  root    internal
#echo           dgram   udp     wait    root    internal
#chargen        stream  tcp     nowait  root    internal
#chargen        dgram   udp     wait    root    internal
#discard                stream  tcp     nowait  root    internal
#discard                dgram   udp     wait    root    internal
#daytime                stream  tcp     nowait  root    internal
#daytime        dgram   udp     wait    root    internal
#time           stream  tcp     nowait  root    internal
#time           dgram   udp     wait    root    internali# These are standard services.
#telnet  stream  tcp     nowait  root    /usr/sbin/telnetd   telnetd -i
tftp    dgram   udp     wait    nobody  /bin/tftpd
ftp     stream  tcp     nowait  root    /usr/sbin/ftpd      bftpd

3、/etc/rc.d/netd

        须追加执行权限。

#!/bin/shbase=inetd# See how we were called.
case "$1" instart)/usr/sbin/$base;;stop)pid=`/bin/pidof $base`if [ -n "$pid" ]; thenkill -9 $pidfi;;
esacexit 0

4、/etc/hostname

moshui

5、/etc/fstab

proc  /proc      proc    defaults     0      0
none  /var/shm   shm     defaults     0      0
sysfs /sys       sysfs   defaults     0      0
none  /tmp   ramfs     defaults     0      0
none  /mnt   ramfs     defaults     0      0

6、/etc/mdev.conf

sd[a-z][0-9] 0:0 666 @/etc/hotplug/usb/usb_insert
sd[a-z] 0:0 666 $/etc/hotplug/usb/usb_remove
mmcblk[0-9]p[0-9] 0:0 660 @/etc/hotplug/sd/sd_insert
mmcblk[0-9] 0:0 660 $/etc/hotplug/sd/sd_remove

 或 

mmcblk([0-9]+)p([0-9]+) 0:0 660 */sbin/automount.sh $MDEV X${ACTION}
mmcblk([0-9]+)          0:0 660 */sbin/automount.sh $MDEV X${ACTION}
sd([a-z]+)([0-9]+)      0:0 660 */sbin/automount.sh $MDEV X${ACTION}
sd([a-z]+)              0:0 660 */sbin/automount.sh $MDEV X${ACTION}
#mtdblock([0-9]+)        0:0 660 */sbin/automount.sh $MDEV X${ACTION}

 /sbin/automount.sh,须追加执行权限。 

#! /bin/sh# debugging message
#echo "MDEV=$1 : ACTION=$2 : SUBSYSTEM=$SUBSYSTEM : DEVPATH=$DEVPATH : DEVNAME=$DEVNAME" >> /dev/consoleif [ "$1" == "" ]; thenecho "parameter is none" > /tmp/error.txtexit 1
fiMNT=$1
#if [ $(echo $1 | grep mmcblk) ]; then
#       if [ $(echo $1 | grep p[25]) ]; then
#               MNT=sdcard2
#       else
#               MNT=sdcard
#       fi
#elif [ $(echo $1 | grep sd) ]; then
#       if [ $(echo $1 | grep p[25]) ]; then
#               MNT=nandcard2
#       else
#               MNT=nandcard
#       fi
#fi# there is no ACTION, it is for initial population
if [ "$2" = "X" ]; thenmounted=`mount | grep $1 | wc -l`if [ $mounted -ge 1 ]; then# mounted, assume the ACTION is remove#ACT=Xremove# only set add for initial populationACT=Xaddelse# not mounted, assume the ACTION is addACT=Xaddfi
elseACT=$2
fiif [ "$ACT" = "Xremove" ]; then# umount the deviceecho "$ACT /mnt/$1" >> /tmp/mdev.logif ! umount -l "/mnt/$1"; thenexit 1elserm -f "/mnt/$MNT"echo "[Umount FS]: /dev/$1 -X-> /mnt/$MNT" > /dev/consolefiif ! rmdir "/mnt/$1"; thenexit 1fi
else# mount the devicemounted=`mount | grep $1 | wc -l`#echo "par=$1,mounted=$mounted,MNT=$MNT" > /dev/consoleif [ $mounted -ge 1 ]; then#echo "device $1 is already mounted" > /dev/consoleexit 0fiif ! mkdir -p "/mnt/$1"; thenexit 1fiif [ $(echo $1 | grep mtd) ]; thenif mount -t jffs2 "/dev/$1" "/mnt/$1"; thenecho "[Mount JFFS2]: /dev/$1 --> /mnt/$MNT" > /dev/consoleecho "$ACT /mnt/$1" >> /tmp/mdev.logelif mount -t yaffs2 -o"inband-tags" "/dev/$1" "/mnt/$1"; thenecho "[Mount YAFFS2]: /dev/$1 --> /mnt/$MNT" > /dev/consoleecho "$ACT /mnt/$1" >> /tmp/mdev.logelif mount -t ubifs "/dev/$1" "/mnt/$1"; thenecho "[Mount UBIFS]: /dev/$1 --> /mnt/$MNT" > /dev/consoleecho "$ACT /mnt/$1" >> /tmp/mdev.logelse# failed to mount, clean up mountpointif ! rmdir "/mnt/$1"; thenexit 1fifielse# try vfat onlyif mount -t vfat -o noatime,shortname=mixed,utf8 "/dev/$1" "/mnt/$1"; thenln -s /mnt/$1 /mnt/$MNTecho "[Mount VFAT]: /dev/$1 --> /mnt/$MNT" > /dev/consoleecho "$ACT /mnt/$1" >> /tmp/mdev.logelse# failed to mount, clean up mountpointif ! rmdir "/mnt/$1"; thenexit 1fiexit 1fifi
fi

7、/etc/init.d/rcS

hostname -F /etc/hostnameecho /sbin/mdev > /proc/sys/kernel/hotplug
/sbin/mdev -smkdir -p /dev/pts
mount -t devpts devpts /dev/pts
或
mount -n -t devpts none /dev/pts -o mode=0622mkdir /dev/pts
mount devpts -t devpts /dev/pts  //加载devpts文件系统inetd
或
/etc/rc.d/netd start


http://chatgpt.dhexx.cn/article/tpWDudo5.shtml

相关文章

Telnet| 开启Telnet服务(Linux,Windows)

文章目录 简介Linux下安装开启Telnet服务Windows10中开启Telnet服务 简介 Telnet协议是一种应用层协议&#xff0c;使用于互联网及局域网中&#xff0c;使用虚拟终端机的形式&#xff0c;提供双向、以文字字符串为主的命令行接口交互功能。属于TCP/IP协议族的其中之一&#xf…

linux开发板开启telnetd

需求:linux开发板开启telnetd, pc上SercureCRT连接; 前提: 开发板和pc能ping通; 1. 开发板端 在脚本 /etc/init.d/rcS中添加; mount -t devpts devpts /dev/pts telnetd -l /bin/login 2. sercureCRT端 协议选择Telnet,主机名为开发板端ip地址;点击连接即可; 参考: 开发板…

telnet与http

本博客基于【win10开启了telnet】【未开启自行百度开启即可】 遇到的问题&#xff1a; 一开始用 winr 打开了cmd, 然后输入telnet进入了telnet, 再然后输入了telnet www.hit.edu.cn 80(本以为会连接上&#xff0c;结果出现【无效指令。需要帮助…】 //还以为是我telnet出了问题…

TELNET协议

参考链接&#xff1a;https://blog.csdn.net/luo104660577/article/details/47001105 1、Telnet协议的目的是提供一个相对通用的&#xff0c;双向的&#xff0c;面向八位字节的通信方法&#xff0c;允许界面终端设备和面向终端的过程能通过一个标准过程进行互相交互。应用Teln…

【telnet的用法】

1.首先需要本地pc支持telent.找到程序中心&#xff0c;打开windows功能&#xff0c;勾选telnet客户端。 telnet命令&#xff1a; 3.执行telnt命令&#xff1a; telnet 33.44.55.66 5001即可&#xff0c;注意端口号这里不加 &#xff1a; 如果联网了可以不用telnet&#xff…

Telnet 使用

01简介 telnet是一个实用的远程连接命令&#xff0c;采用的是TCP/IP协议。它为用户提供了在本地计算机上完成远程主机工作的能力&#xff0c;在终端使用者的电脑上使用telnet程序&#xff0c;用它连接到服务器。终端使用者可以在telnet程序中输入命令&#xff0c;这些命令会在服…

Telnet详解

------ Oracle中文开发者社区 ------ 如果你想要学习编程,关注本博客,持续获得技术支持,持续获得技术咨询

计算机开启telnet服务,Telnet服务是什么?如何开启Telnet服务

Telnet服务是什么&#xff1f;Telnet服务器软件是我们最常用的远程登录服务器软件&#xff0c;是一种典型的客户机/服务器模型的服务&#xff0c;它应用Telnet协议来工作。那么&#xff0c;什么是Telnet协议&#xff1f;它都具备哪些特点呢&#xff1f; Telnet是位于OSI模型的第…

telnet介绍

介绍 Telnet 是一个应用程序&#xff0c;用于连接到远程主机的命令行终端界面。网络和系统管理员使用此应用程序来配置和管理服务器、路由器、交换机等网络设备。此应用程序基于面向连接的传输控制协议 (TCP)。默认情况下&#xff0c;telnet 服务器在端口 23 上侦听来自客户端…

telnet-server

telnet-server 安装 安装 yum install telnet telnet-server xinetd -y # 开启服务 systemctl start telnet.socket systemctl start xinetd# 设置开机自启 systemctl enable xinetd.service systemctl enable telnet.socket

Telnet使用

一.简介 Telnet是常用的远程登录手段&#xff0c;有两种操作模式&#xff1a;Telnet命令模式和Telnet会话模式。连接到Telnet服务器后&#xff0c;Telnet客户端会自动进入Telnet会话模式&#xff0c;此模式最常见。在会话模式下&#xff0c;所有击键将通过网络发送到Telnet服务…

telnet的使用

背景&#xff1a;-----如下图 在做telnet 192.168.15.128的时候出现报错&#xff0c;说明连接被拒。 解决过程如下&#xff1a; telnet的使用 &#xff08;1&#xff09;安装telnet 在查看的时候如果没有telnet服务&#xff0c;那么进行安装&#xff1a;yum -y install teln…

Telnet用法

什么是Telnet&#xff1f; 对于Telnet的认识&#xff0c;不同的人持有不同的观点&#xff0c;可以把Telnet当成一种通信协议&#xff0c;但是对于入侵者而言&#xff0c;Telnet只是一种远程登录的工具。一旦入侵者与远程主机建立了Telnet连接&#xff0c;入侵者便可以使用目标主…

7.telnetd服务

(1)网络正常后&#xff0c;运行命令 telnetd& 就可以启动单板telnet服务&#xff0c;然后才能使用telnet登录到单板。 (2)进入 xshell 登陆账号和密码即可. (1)修改root密码 passwd命令修改即可,默认密码为空.

java web聊天室原理_java web利用mvc结构实现简单聊天室功能

简单聊天室采用各种内部对象不适用数据库实现。 一个聊天室要实现的基本功能是&#xff1a; 1.用户登录进入聊天室&#xff0c; 2.用户发言 3.用户可以看见别人发言 刚才算是简单的需求分析了&#xff0c;现在就应该是进行mvc结构的设计&#xff1a; 1.视图&#xff0c;有登陆页…

基于Springboot的聊天室Web系统设计

基于Springboot的聊天室Web系统设计 目录 基于Springboot的聊天室Web系统设计 一、背景二、创建项目三、代码实现四、总结五、参考文献 一、背景 WebSocket简介 WebSocket是一种在单个TCP连接上进行全双工通信的协议。WebSocket使得客户端和服务器之间的数据交换变得更加简单&…

Javaweb 聊天室

Javaweb 聊天室 2020.5.13更新&#xff1a; 最近有很多小伙伴私信我&#xff0c;跑不动这个项目&#xff0c;数据库报错之类的。然后我自己也去clone下来重新更新了一下&#xff0c;因为之前是用 eclipse 做的&#xff0c;我现在已经不用了&#xff0c;所以用 idea 重新跑了一…

WebSocket实现简单的web聊天室

WebSocket实现简单的web聊天室 1.需要Tomcat7.0所以服务器 2.需要JDK7.0 3.手工加入Tomcat7.0中lib目录下的一下三个包catalina.jar、tomcat-coyote.jar、websocket-api.jar 4.项目部署后&#xff0c;请将服务器中当前项目下的catalina.jar、tomcat-coyote.jar、websocket-api.…

web网络聊天室

花了四天时间做了一个简单的web聊天室 前端页面效果大概是下面这个样子 1.登陆界面 2.注册界面 这里首先会检查用户名是否重复&#xff0c; 如果重复&#xff0c;会提示你用户名已存在 反正显示可用 3.聊天室界面 登陆成功会在左边显示登陆人的名称以及当前在线人数。 然后…

web聊天室实现

后端&#xff1a; package com.jsx.chat;import java.io.IOException; import java.text.SimpleDateFormat; import java.util.Date; import java.util.HashMap; import java.util.Map; import java.util.concurrent.CopyOnWriteArraySet;import javax.websocket.OnClose; imp…