linux下telnet远程登入

telnet原理

当用Telnet登录进入远程计算机系统时,事实上启动了两个程序,一个 叫Telnet客户程序,它运行在你的本地机上;另一个叫Telnet服务器程序,它运行在你要登录的远程计算机上。
本地机上的客户程序要完成如下功能:
1 、建立与服务器的TCP 联接;
2 、从键盘上接收你输入的字符;
3 、把你输入的字符串变成标准格式并送给远程服务器;
4 、从远程服务器接收输出的信息;
5 、把该信息显示在你的屏幕上。

远程计算机的“服务”程序通常被称为“精灵”,它平时不声不响地候在远程计算机上,一接到你的请求,就马上活跃起来,并完成如下功能:
1 、通知你的计算机,远程计算机已经准备好了;
2 、等候你输入命令;
3 、对你的命令作出反应(如显示目录内容,或执行某个程序等);
4 、把执行命令的结果送回给你的计算机;
5 、重新等候你的命令。

客户机上装一个telnet的客户端,服务器上装一个telnet的监听程序(精灵),一般这个监听程序监听的是23号端口。把这个过程简单抽象一下,就是客户端使用telnet工具发送一个命令到服务器端,服务器端监听到了之后就调用系统相关API来执行这些命令,从而达到了客户机远程操作服务器主机的目的。

这里需要注意一点,“把你输入的字符串变成标准格式并送给远程服务器”,指的是接受的字符,要按照一定的协议格式传送到服务器端,而这些字符是通过TCP连接传输的,跟Http有点像。Http是通过TCP连接传输字符,但是数据格式是HTTP协议规定的格式。简单来说,所谓的HTTP协议,FTP协议,SMTP协议,就是各自规定了以什么样的数据包方式在网络上通过TCP管道传输数据。

其实,telnet是以TCP为基础与服务器进行通信,所以它的功能远不止远程登录服务器(远程操纵服务器)。不管是什么协议,如果它基于 tcp/ip,那么你使用 TcpClient(或者 Socket)连接它,然后发点信息,依然能连通。Telnet可以看作是一种TCP的连接工具。

安装telnet

在Ubuntu下的telnet服务需要安装xinetd服务和telnetd服务
1. apt-get install xinetd
2. apt-get install telnetd

配置telnet

1.gedit /etc/inetd.conf
没有则添加如下

注释依次为:
服务名称。和xinetd一样,inetd通过查询/etc/service获得该服务的相关信息。
套接口类型。TCP用stream,UDP用dgram。
该服务使用的通信日志相关参数协议。
inetd是否等到守护进程结束才继续接管端口。wait表示等待(相当于xinetd的wait = yes),nowait表示不等待,inetd每次接到一个请求就启动守护进程的新副本(相当于xinetd的wait = no)。
运行该守护进程的用户身份。
守护进程二进制文件的完整路径及其命令行参数

2.gedit /etc/xinetd.conf

注释:
instances = 60:表示最大连接进程数为60个。
log_type = SYSLOG daemon info:表示使用syslog进行服务登记。
log_on_success= HOST PID:表示设置成功后记录客户机的IP地址的进程ID。
log_on_failure = HOST:表示设置失败后记录客户机的IP地址。
cps = 25 30:表示每秒25个入站连接,如果超过限制,则等待30秒。主要用于对付拒绝服务攻击。

3.gedit /etc/xinetd.d/telnet

注释:
disable = no:表示启用这个服务。
socket_type = stream:表示服务的数据包类型为stream。
wait = no:表示不需等待,即服务将以多线程的方式运行。
user = root:表示执行此服务进程的用户是root。
server = /usr/bin/in.telnetd:启动程序的位置。
log_on_failure += USERID:表示设置失败时,在/etc/xinetd.conf中设置的default值基础之上还把UID添加到系统登记表

重启xinetd

查看telnet状态

telnet端口

telnet端口默认23,一般不做修改,在/etc/services中查看,如果需要从其他端口启动该服务,则可收到配置

telnet远程登入

使用putty进行telnet远程登入,默认端口是23,主机IP是linux下的IP地址,通过ifconfig查看。

备注 #

xinetd 配置参数

日志相关参数

你可能感兴趣的:(Linux积累)