常用几种远程控制协议总结(telnet,rlogin,ssh,rfb,rdp)

一般的远程访问步骤:

(1)选定某一种远程访问协议,如RDP,VNC,SSH,TelNet等;

(2)分别安装对应协议的"服务端软件"和"客户端软件";

(3)在服务端启动对应的协议,并进行一些自定义的服务配置;

(4)通过客户端远程连接。

一、Telnet协议

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

  1. Telnet服务的安装

Telnet有两个安装包:telnet-server和telnet

telnet-server安装包是服务器端的安装包,telnet是客户端的安装包,一般系统默认都已经安装了这两个包,可以先使用此命令查询:

rpm --q telnet-server

1)启动和停止Telnet服务

Telnet不像其它服务(如HTTP和FTP等)一样作为独立的守护进程运行,它使用xinetd程序管理,这样不但能提高安全性,而且还能使用xinetd对Telnet服务进行配置管理。

Telnet服务安装后默认并不会被xinetd启用,可以通过修改文件/etc/xinetd.d/telnet将其启用。编辑文件/etc/xinetd.d/telnet,找到语句disable=yes,将其改为disable=no即可。

2)Telnet服务的配置

2.1)Telnet服务最大连接数

可以通过编辑文件/etc/xinetd.d/telnet,在花括号{}中添加语句instances=3来配置telnet服务的最大连接数,这里的3指telnet服务同时只允许3个连接。

2.2) Telnet服务的端口

Telnet服务默认的端口为23,出于安生性考虑,可以更改服务器监听的端口,通过编辑文件/etc/services来修改各个服务的端口,找到telnet选项,修改其数值即可。如要改为2323,即:

telnet 2323/tcp

telnet 2323/udp

  1. Telnet客户端的使用

通过telnet命令即可登录

如Telnet服务器的IP地址为192.168.1.109

在客户端(windows和linux)命令行里输入:

复制代码
telnet 192.168.1.109

然后输入用户和口令即可,在这里,系统不允许root用户通过telnet登录,所以这个用户是除root用户的其它用户,登录后可以使用su -- 命令切换成root用户,这样就OK了。

注:telnet在传输机制上是有安全漏洞的,因为它在传输数据时使用明文机制。

二、Rlogin协议

Rlogin最初是是现在unix系统中的远程登录协议。由于客户端进程和服务器进程已经事先知道了对方的操作系统类型,因此也就省去了选项协商机制。

默认使用TCP 513端口。

rlogin使用:

复制代码
# chkconfig --list //检测rlogin服务是否开启

# chkconfig rlogin on //开启rlogin服务
复制代码
//指定用户名登录(也可以直接rlogin IP登录)
# rlogin 192.168.1.88 -l hnlinux

Passord:
Last login:Mon May 28 15:30:25 from 192.168.1.88

注:总的来说,rlogin与telnet协议类似,在传输机制上是有安全漏洞的,因为它在传输数据时使用明文机制。

三、SSH协议

SSH 为 Secure Shell 的缩写,由 IETF 的网络工作小组(Network Working Group)所制定;SSH 为建立在应用层和传输层基础上的安全协议。SSH 是目前较可靠,专为远程登录会话和其它网络服务提供安全性的协议。利用 SSH 协议可以有效防止远程管理过程中的信息泄露问题。

SSH有两个不兼容的版本------SSH1和SSH2。

SSH1采用DES、3DES、Blowfish和RC4等对称加密算法保护数据安全传输,而对称加密算法的密钥是通过非对称加密算法(RSA)来完成交换的。SSH1使用循环冗余校验码(CRC)来保证数据的完整性,但是后来发现这种方法有缺陷。

SSH2避免了RSA的专利问题,并修补了CRC的缺陷。SSH2用数字签名算法(DSA)和Diffie-Hellman(DH)算法代替RSA来完成对称密钥的交换,用消息证实代码(HMAC)来代替CRC。同时SSH2增加了AES和Twofish等对称加密算法。

  1. ssh安装

Linux下广泛使用免费的OpenSSH程序来实现ssh协议,它同时支持SSH1和SSH2协议,Openssh软件包包括两部分:openssh-server和openssh-client,它们分别打包在不同的RPM包中,同时都需要依赖openssh软件包。

可以使用如下命令检查是否已经安装OpenSSH

复制代码
rpm –qa openssh

(1) SSH服务的配置

配置SSH服务的运行参数,主要是通过修改配置文件/etc/ssh/sshd_config来实现的,这里面的选项特别多,但大部分都是使用#注释的,这是因为SSH服务使用默认配置已经能够很好的工作了

设置SSH服务监听的端口号

#port 22

设置使用SSH协议的顺序

#protocol 2,1

设置SSH服务器绑定的IP地址

#listenaddress 0.0.0.0

设置是否允许root管理员登录

#permitrootlogin yes

设置是否允许空密码用户登录

#permitemptypasswords no

设置是否使用口令认证方式

#passwordauthentication yes

每次修改配置文件/etc/ssh/sshd_config后,都需要重新启动SSH服务才能使新的配置生效。

(2) 启动和停止SSH服务

复制代码
/etc/init.d/sshd start|stop|restart|status

2.SSH客户端的使用

(1)linux客户端

在linux客户端,可以使用命令ssh登录,如果SSH服务器的IP地址为192.168.1.109,登录命令如下:

复制代码
//ssh 用户名@主机名或主机IP
ssh root@192.168.1.109

根据提示输入口令即可,这个口令是root用户的口令,所以登录之后就是root用户身份了。

(2)windows客户端

在windows客户端是无法使用ssh命令的,但是有许多SSH客户程序,如Xshell,SecureCRT,putty等。推荐使用免费的PuTTY程序,它小巧好用,而且是一款无需安装的绿色软件。

注:(1)SSH是比较可靠的的远程登录和其他安全服务的协议,它采用了数据加密机制,能够防止DNS欺骗和IP欺骗。(2)所传输的数据是经过压缩的,因此相对来说加快了传输速度。

四、RFB协议-VNC就是基于此协议

RFB协议即图形化远程管理协议,vnc远程管理工具就是基于此协议。

Telnet和SSH服务只能实现基于字符界面的远程控制,利用VNC可以实现图形化的远程控制。VNC是virtual network computing的缩写,也就是虚拟网络计算机,VNC软件由两个部分组成:VNC server和VNC viewer,用户需要将VNC server安装在被控制的计算机上,然后在主控制端执行VNC viewer控制被控制端。

1.安装vnc-server

首先可以用如下命令查询VNC服务是否安装:

复制代码
rpm -q vnc-server

如果未安装,则使用如下命令安装:

复制代码
yum install vnc-server

//或者使用下载的vnc的rpm包安装
rpm -ivh vnc-server-4.1.2-9.el5.x86_64.rpm

2.配置vnc用户,密码及桌面号,重启vnc服务

第一步:root用户登录系统,命令行输入vi /etc/sysconfig/vncservers 回车

第二步:按i建进入编辑,在最末端加入每一个用户的配置信息,注意每个用户有不同的桌面配置号,一定不要相同。如下配置:

复制代码
VNCSERVERS="2:root 3:ymx 4:wjx 5:wxy"
VNCSERVERARGS[2]="-geometry 1360x768"
VNCSERVERARGS[3]="-geometry 1364x768"
VNCSERVERARGS[4]="-geometry 1362x768"
VNCSERVERARGS[5]="-geometry 1362x768"

2:root 3:ymx 4:wjx 5:wxy'中的'2 3 4 5'是为每一个用户桌面号,和[2]、[3]、[4]、[5]对应;

第三步:编辑完毕后,按esc键------>按shift +X键,回车保存配置。

添加完成后,vnc服务每次启动时都会自动创建这些桌面号。如果只需要启动桌面号为1的桌面可以执行命令"vncserver:1",使用"service vncserver start"会启动全部vnc桌面服务。

注:1.vnc服务使用的TCP端口号从5900开始例如桌面号为1,则使用的端口号为5901,桌面号为2,则使用的端口号为5902。基于java的vnc客户程序web服务TCP端口号从5800开始,即5801、5802,以此类推

2.ymx,wjx等用户需要提前使用useradd命令创建至系统。

第四步:配置每一个vnc用户的登录密码

注:要对每一个用户进行设置,设置前要用第一步的命令su -- ymx切换进入ymx用户shell下。

如果vnc用户中有root则不用切换(默认root用户登录系统的话),不过使用root用户运行vnc是不安全的行为,如果有vnc未授权访问漏洞时会造成很大威胁,应该以最小普通权限身份运行。

① 执行su -ymx命令

② 执行vncpasswd命令,对ymx用户进行设置VNC登录密码,输入两边密码。

重复以上两步对其它用户进行VNC登录密码设置

第五步:root用户登录系统,在终端命令行输入service vncserver restart 重新启动vnc服务,使之前的配置生效。(vnc启动和停止可以用service vncserver start|stop命令)

  1. 将vncserver设置为随系统启动
复制代码
chkconfig vncserver on

或者: chkconfig vncserver --level 5 on

4.客户端连接及使用

a、在linux下,运行vncviewer命令即可,安装方法和vnc server相似,服务器地址如192.168.1.11:1

b、在windows下,运行windows版本的vncviewer即可,用法与linux下相近。

c、用浏览器(平台无关),作为java applet来实现,以形如http://192.168.1.11:5801 的方式来启动

注:如果连接不上可能是因为防火墙阻拦,可以用 service iptables status或ps axf | grep iptables查看防火墙状态。

解决的话,可以关闭防火墙

复制代码
service  iptables  stop

也可以在防火墙规则中开放相关端口(假如vnc端口号为5901,5902)

复制代码
iptables -I INPUT -p tcp --dport 5901:5902 -j ACCEPTiptables -A INPUT -p tcp --dport 5901:5902 -j ACCEPT
//在iptables文件末尾添加完之后,记得保存并重启iptables生效

五、RDP协议-远程桌面连接

RDP应用广泛,基本各平台上均可使用。Windows自带RDP,其Mstsc(Microsoft terminal service client)就是一 个典型的应用,默认监听TCP端口3389和UDP端口3389。它使得远程用户能够通过鼠标、键盘等在应用程序间进行通信。

  1. Windows远程控制Linux

通过RDP协议,Windows远程控制Linux的时候,Windows不需要安装什么,只需要在Linux上安装对应的软件即可,即所谓的RDP服务器。

(1)Linux安装xrdp (RDP服务器)

希望在Windows上用RDP协议远程登录到Linux系统比较麻烦,需要xrdp。它是一个RDP服务端,可以让我们用远程桌面方式登录到Linux系统。

首先要安装xrdp。

复制代码
sudo apt install xrdp

(2)启动xrdp服务(linux要启动RDP协议的服务才行,即要允许远程访问)。

复制代码
sudo systemctl enable xrdp
sudo systemctl start xrdp

现在应该可以使用Windows自带的远程桌面工具来连接到Linux系统了。

  1. Linux远程控制Windows电脑

可以通过grdesktop软件来控制远程Windows(图形化界面),也可以使用rdesktop 软件(命令行)

安装命令

复制代码
sudo apt install grdesktop

安装之后打开软件输入IP,用户名,密码等信息即可连接。

当然对应的Windows系统别忘了开启允许远程连接到本计算机,否则用什么客户端也是无法连接的。

注:RDP支持图形化界面,但需要处理图像界面,占用CPU较高。另一个缺点就是如果平台不同的话,显示效果其实是很差的,RDP协议还是在Windows间使用比较适合。

相关推荐
大霞上仙31 分钟前
Ubuntu系统电脑没有WiFi适配器
linux·运维·电脑
Karoku0661 小时前
【企业级分布式系统】Zabbix监控系统与部署安装
运维·服务器·数据库·redis·mysql·zabbix
为什么这亚子1 小时前
九、Go语言快速入门之map
运维·开发语言·后端·算法·云原生·golang·云计算
布值倒区什么name1 小时前
bug日常记录responded with a status of 413 (Request Entity Too Large)
运维·服务器·bug
。puppy2 小时前
HCIP--3实验- 链路聚合,VLAN间通讯,Super VLAN,MSTP,VRRPip配置,OSPF(静态路由,环回,缺省,空接口),NAT
运维·服务器
颇有几分姿色2 小时前
深入理解 Linux 内存管理:free 命令详解
linux·运维·服务器
光芒再现dev3 小时前
已解决,部署GPTSoVITS报错‘AsyncRequest‘ object has no attribute ‘_json_response_data‘
运维·python·gpt·语言模型·自然语言处理
AndyFrank3 小时前
mac crontab 不能使用问题简记
linux·运维·macos
成都古河云4 小时前
智慧场馆:安全、节能与智能化管理的未来
大数据·运维·人工智能·安全·智慧城市
算法与编程之美4 小时前
文件的写入与读取
linux·运维·服务器