计算机网络-应用层-远程终端协议TELNET
TELNET是一个简单的远程终端协议,用户用TELNET就可在其所在地通过TCP连接注册(即登录)到远地的另一台主机上(使用主机名或P地址)。TELNET能将用户的击键传到远地主机,同时也能将远地主机的输出通过TCP连接返回到用户屏幕。这种服务是透明的,因为用户感觉到好像键盘和显示器是直接连在远地主机上。因此, TELNET又称为终端仿真协议 。
TELNET使用客户服务器方式。在本地系统运行TELNET客户进程,而在远地主机则运行TELNET服务器进程。和FTP的情况相似, 服务器中的主进程等待新的请求,并产生从属进程来处理每一个连接。
TELNET能够适应许多计算机和操作系统的差异。例如,对于文本中一行的结束,有的系统使用ASCI码的回车(CR),有的系统使用换行LF),还有的系统使用两个字符,回车-换行(CR-LF)。又如,在中断一个程序时,许多系统使用Control--C,但也有系统使用ESC按键。为了适应这种差异,TELNET定义了数据和命令应怎样通过互联网。这些定义就是所谓的 网络虚拟终端NVT (Network Virtual Terminal)。
NVT的意义: 客户软件把用户的击键和命令转换成NVT格式,并送交服务器。服务器软件把收到的数据和命令从NVT格式转换成远地系统所需的格式。向用户返回数据时,服务器把远地系统的格式转换为NVT格式,本地客户再从NVT格式转换到本地系统所需的格式。
NVT的格式定义很简单。所有的通信都使用8位一个字节。在运转时,NVT使用7位ASCI码传送数据,而当高位置1时用作控制命令。ASCⅡ码共有95个可打印字符(如字母、数字、标点符号)和33个控制字符。所有可打印字符在NVT中的意义和在ASCI码中一样。但NVT只使用了ASCII码的控制字符中的几个。此外,NVT还定义了两字符的CRLF为标准的行结束控刷符。当用户键入回车按键时,TELNET的客户就把它转换为CR-LF再进行传输,而TELNET服务器要把CR-LF转换为远地机器的行结束字符。
TELNET的选项协商(Option Negotiation)使TELNET客户和TELNET服务器可商定使用更多的终端功能,协商的双方是平等的。
一查看本机是否有安装telnet(centOS5默认有安装telnet)
# rpm -qa |grep telnet
如果显示结果为:
telnet-017-39el5
telnet-server-017-39el5
那恭喜你,机器上已经安装了telnet。如果没有安装,请看下一步。
特别说明:
telnet分为telnet-client (简称为telnet)和telnet-server。telnet-client系统(CentOs 55)一般默认已经安装。telnet-server需要单独安装。
二、安装telnet
第一种方法(在线安装):
可使用命令:
#yum install xinetd (注意在root下安装)
#yum install telnet -server(注意在root下安装)
第二种方法(光盘安装法):
cd /光盘/CentOS
rpm -ivh xinetd-2314-10el5i386rpm
rpm -ivh telnet-server-017-39el5i386rpm
特别说明:
1、telnet服务要依靠xinetd服务启动,所以要先安装xinetd服务。所以我们要先安装xinetd,再安装telnet-server。CentOS 55默认没有安装telnet和xinetd服务。
2、CentOS-55-i386-bin-DVD里面有xinetd和telnet-server和安装包!!不需要上网下载!!
三配置telnet
方法一:使用ntsysv,在出现的窗口之中,将 telnet 勾选起来,然后按下 OK 即可!
方法二:使用chkconfig命令直接开启
#chkconfig telnet on
方法三:直接修改配置文件
vi /etc/xinetdd/telnet
一般是这样子的:
# default: yes
# description: The telnet server servestelnet sessions; it uses \
# unencrypted username/password pairs for authentication
service telnet
{
flags = REUSE
socket_type = stream
wait = no
user = root
server =/usr/sbin/intelnetd
log_on_failure += USERID
disable = yes
}
只需要将”disable= yes”改成” disable=no”
四、激活服务
telnet 是挂在 xinetd 底下的,所以自然只要重新激活 xinetd 就能够将 xinetd 里头的设定重新读进来,所以刚刚设定的 telnet 自然
也就可以被激活。
# servicexinetd restart
或者#/etc/rcd/initd/xinetd restart
五iptables防火墙会阻止telnet,所以需要在iptables允许,用如下命令
当你启动telnet服务后,你可以用netstat –tunlp命令来查看telnet服务所使用的端口,可以发现有23。使用下面命令开启这些端口:
iptables -I INPUT -p tcp --dport 23 -jACCEPT
iptables -I INPUT -p udp --dport 23 -jACCEPT
service iptables save //保存
service iptables restart //重启防火墙
或者来点狠的!!关闭防火墙!
service iptables stop
六、可能的问题:
下面我们来看一下二种错误:
第一种:
[root@linuxchao ~]# telnet 192168187
Trying 192168187
telnet: connect to address 192168187: Noroute to host
telnet: Unable to connect to remote host:No route to host
解决方法:这种问题防火墙没有允许telnet服务,连接被阻止,默认CentOS只允许SSH,所以进入其自定义选项,在telnet前打个勾!
第二种
[root@test xinetdd]# telnet 1722513
Trying 1722513
Connected to 1722513 (1722513)
Escape character is '^]'
getnameinfo: localhost: Success
Temporary failure in name resolution: Illegal seek
Connection closed by foreign host
这一个就是/etc/hosts文件配置问题
解决方法:我在里面加两个IP地址,内容如下:
[linux@localhost ~]$ more /etc/hosts
# Do not remove the following line, orvarious programs
# that require network functionality willfail
127001localhostlocaldomainlocalhost
::1localhost6localdomain6localhost6
192168188
192168186
说明:因为客户机的名字不好记就没写进去,内容格式应为127001 pcname
区别如下:
1、SSH是加密的,需要交换密钥。而Telnet是明文的,传输的是明文字符。所以SSH比Telnet更加安全。
2、Telnet是电信(Telecommunications)和网络(Networks)的联合缩写,这是一种在UNIX平台上最为人所熟知的网络协议。SSH代表安全外壳(Secure Shell),它现在是通过互联网访问网络设备和服务器的唯一的主要协议。
3、Telnet使用端口23,它是专门为局域网设计的。SSH默认情况下通过端口22运行;不过,很容易更改这个端口。
4、Telnet不是一种安全通信协议,因为它并不使用任何安全机制,通过网络/互联网传输明文格式的数据,包括密码,所以谁都能嗅探数据包,获得这个重要信息。SSH是一种非常安全的协议,因为它共享并发送经过加密的信息,从而为通过互联网等不安全的网络访问的数据提供了机密性和安全性。
5、Telnet中没有使用任何验证策略及数据加密方法,因而带来了巨大的安全威胁,这就是为什么telnet不再用于通过公共网络访问网络设备和服务器。一旦通讯的数据使用SSH经过加密,就极难解压和读取该数据,所以我们的密码在公共网络上传输也变得很安全。
6、在Linux系统上,telnet很容易使用yum来安装。SSH主要用在所有流行的操作系统上,比如Unix、Solaris、Red-Hat Linux、CentOS和Ubuntu等。
简言之,SSH更安全!SSH是加密的,telnet 是明码传输的,发送的数据被监听后不需要解密就能看到内容。
扩展资料
ssh1和ssh2是两个安全级别的版本。
ssh2的安全性更高。但似乎有的系统的 ssh2 的支持是要单独收费才让用的。
telnet的端口默认是21,ssh和Telnet不兼容,所以他被人设计为默认22端口进行区别。
ssh什么时候使用时要看你想什么时候链接服务器,而且服务器什么时候开ssh服务的。
ssh只有理论,没有实际内容,如果你要实际内容,请看TLS的相关算法部分。
ssh是使用基于一个网络层的加密协议的远程控制方式而已。
至于链接不上,那就要看怎么不能链接了:
1、服务器的ssh服务是否启动
2、防火墙是否打开端口
3、网络是否通畅
4、使用的用户是否可以远程链接ssh进行控制
5、端口是否为22
6、客户端软件是否和服务器端软件兼容
ssh有的时候只是一个过渡传输协议,经过设置,还可以在ssh里面进行链接远程服务器的图形界面进行图形化操作。但这都需要安装相应的支持程序,并且进行相应的设置,还要打开相应的功能。
:ssh
0条评论