Linux远程管理协议(RFB、RDP、Telnet和SSH)
提到远程管理,通常指的是远程管理服务器,而非个人计算机。个人计算机可以随时拿来用,服务器通常放置在机房中,用户无法直接接触到服务器硬件,只能采用远程管理的方式。
远程管理,实际上就是计算机(服务器)之间通过网络进行数据传输(信息交换)的过程,与浏览器需要 HTTP 协议(超文本传输协议)浏览网页一样,远程管理同样需要远程管理协议的支持。
目前,常用的远程管理协议有以下 4 种:
因此,完成相同的操作,使用 RFB 协议传输的数据量会比 RDP 大,而 RDP 对客户端的要求比 RFB 更苛刻,RFB 适用于瘦客户端,而 RDP 适用于低速网络。
相比 Telnet 协议,SSH 协议在发送数据时会对数据进行加密操作,数据传输更安全,因此 SSH 协议几乎在所有应用领域代替了 Telnet 协议。
介于安全性和稳定性的考虑,大部分的服务器都舍弃图形管理界面而选择命令行界面,因此远程管理 Linux 服务器常使用基于 SSH 协议的命令行管理方式。
目前,基于 SSH 协议常用的远程管理工具有 PuTTY、SecureCRT、WinSCP 等,这些管理工具的具体使用下节给大家详细介绍。
远程管理,实际上就是计算机(服务器)之间通过网络进行数据传输(信息交换)的过程,与浏览器需要 HTTP 协议(超文本传输协议)浏览网页一样,远程管理同样需要远程管理协议的支持。
目前,常用的远程管理协议有以下 4 种:
- RDP(remote desktop protocol)协议:远程桌面协议,大部分 Windows 系统都默认支持此协议,Windows 系统中的远程桌面管理就基于该协议。
- RFB(Remote FrameBuffer)协议:图形化远程管理协议,VNC 远程管理工具就基于此协议。
- Telnet:命令行界面远程管理协议,几乎所有的操作系统都默认支持此协议。此协议的特点是,在进行数据传送时使用明文传输的方式,也就是不对数据进行加密。
- SSH(Secure Shell)协议:命令行界面远程管理协议,几乎所有操作系统都默认支持此协议。和 Telnet 不同,该协议在数据传输时会对数据进行加密并压缩,因此使用此协议传输数据既安全速度又快。
RDP 对比 RFB
RDP 协议和 RFB 协议都允许用户通过图形用户界面访问远程系统,但 RFB 协议倾向于传输图像,RDP 协议倾向于传输指令:- RFB 协议会在服务器端将窗口在显存中画好,然后将图像传给客户端,客户端只需要将得到的图像解码显示即可;
- RDP 会将画图的工作交给客户端,服务器端需要根据客户端的显示能力做适当的调整。
因此,完成相同的操作,使用 RFB 协议传输的数据量会比 RDP 大,而 RDP 对客户端的要求比 RFB 更苛刻,RFB 适用于瘦客户端,而 RDP 适用于低速网络。
瘦客户端是相对于胖客户端而言的,比如,人们使用 QQ,需要下载客户端,这属于“胖客户”;反之,通过浏览器就可查阅网络上各种资料,无需再下载其他任何软件,这属于“瘦客户”。简单理解,瘦客户端指的是最大可能减轻客户端的负担,多数工作由服务器端完成;胖客户端则相反。
Telnet 对比 SSH
Telnet 协议和 SSH 协议都是命令行远程管理协议,有共同的应用领域,常用于远程访问服务器。相比 Telnet 协议,SSH 协议在发送数据时会对数据进行加密操作,数据传输更安全,因此 SSH 协议几乎在所有应用领域代替了 Telnet 协议。
在一些测试、无需加密的场合(如局域网),Telnet协议仍常被使用。
Linux远程管理软件
基于以上 4 种远程管理协议,Linux 远程管理服务器的软件可分为以下 3 种:- 类似于 VNC(基于 RFB 协议)的图形远程管理软件,如 Xmanager、VNC VIEWER 以及 TightVNC 等;
- 基于 SSH 协议的命令行操作管理;
- 类似 Webmin 的基于浏览器的远程管理,此种管理方式只提供简单的管理窗口,可用的管理功能有限;
介于安全性和稳定性的考虑,大部分的服务器都舍弃图形管理界面而选择命令行界面,因此远程管理 Linux 服务器常使用基于 SSH 协议的命令行管理方式。
目前,基于 SSH 协议常用的远程管理工具有 PuTTY、SecureCRT、WinSCP 等,这些管理工具的具体使用下节给大家详细介绍。
所有教程
- C语言入门
- C语言编译器
- C语言项目案例
- 数据结构
- C++
- STL
- C++11
- socket
- GCC
- GDB
- Makefile
- OpenCV
- Qt教程
- Unity 3D
- UE4
- 游戏引擎
- Python
- Python并发编程
- TensorFlow
- Django
- NumPy
- Linux
- Shell
- Java教程
- 设计模式
- Java Swing
- Servlet
- JSP教程
- Struts2
- Maven
- Spring
- Spring MVC
- Spring Boot
- Spring Cloud
- Hibernate
- Mybatis
- MySQL教程
- MySQL函数
- NoSQL
- Redis
- MongoDB
- HBase
- Go语言
- C#
- MATLAB
- JavaScript
- Bootstrap
- HTML
- CSS教程
- PHP
- 汇编语言
- TCP/IP
- vi命令
- Android教程
- 区块链
- Docker
- 大数据
- 云计算