一、为什么需要远程Linux
相信大家在学习Linux时,要么是使用Linux的虚拟机或者在物理机上直接安装Linux。这样确实非常方便,我们也能直接看到Linux的桌面或者终端。既然我们都能直接看到终端或者Linux的桌面了,那我们为什么还要远程Linux呢?其实,在实际的生产环境中我们对于服务器的控制,基本都采用远程连接。或者在我们的嵌入式开发中,我们如果没有显示器的话,对我们的开发板也采用远程。可能一开始你并不适应远程Linux,觉得这种方法既卡顿部署又麻烦。但是当你习惯了远程Linux的方法以后,你会觉得这种方法非常易用并且高效,能极大提高你的生产效率。下面,我们就来学习一些常见的Linux的远程方法吧!
二、Linux常见的远程方式
在Linux中我们的远程分为了终端远程,文件远程传输,桌面远程。下面我们来详细介绍一下。首先是终端远程,顾名思义就是只有终端和字符的远程,我们通过命令行的方式对Linux进行控制,当然这种远程在你Linux上不管有没有安装图形化都可以使用。当然终端远程需要你具有一定的Linux操作基础。对于Linux文件远程传输我们常常采用Samba和SFTP等服务,这些文件服务能让我们快速的往Linux上传文件并且在传输过程中进行一定的加密。然后就是Linux的远程桌面。这里远程Linux桌面的前提就是Linux安装了桌面的环境。这里我们常用的是VNC桌面和RDP桌面,这些远程桌面协议能让我们通过图形化的方式访问Linux,可以说是非常方便。下面就让我来教大家如何配置这些常见的Linux远程吧!
三、Linux远程终端(SSH)
对于Linux用得最多的终端远程协议,那当然是SSH啦。并且现在在很多终端中也都支持SSH,比如在我们Windows的Powershell中就支持使用SSH直接连接Linux。目前非常多的Linux远程工具都附带了SSH协议,可以说SSH协议已经成为Linux远程终端的标配协议了。下面就让我们来看看,怎么配置SSH吧!
1.SSH工具的选择
既然我们要使用SSH去连接Linux,那么SSH的工具书不可或缺的。下面我会为大家推荐常用的SSH工具,大家根据自己的喜好进行选择。
我首先推荐的当然是Windows自带的SSH工具——位于Powershell中的ssh命令工具,我们可以在打开Powershell后直接使用ssh命令来连接一个Linux服务器,就像这样:
这里的命令也是非常的简单,下面我来解释一下。
首先就是ssh这是ssh命令的关键字。后面的root表示要登录Linux的用户名。@后面就是要远程的Linux的IP地址。是的就是这么简单,如果你的Linux的SSH端口不是默认的22端口,可以加上-p选项指定端口,就像下面这样:
ssh root@39.101.179.176 -p 25565
除了Windows自带的SSH工具,我们还可以选择一些开源的SSH工具,这一类工具往往有精美的界面也支持终端字符高亮,看起来也是非常的赏心悦目。
这里我向大家推荐“WindTerm”远程工具,作为一款在github开源的远程工具,其中就包含了SSH远程与串口终端等常见的远程方式,可以说非常易用,下面是项目的开源地址:
WindTerm开源地址:kingToolbox/WindTerm: A professional cross-platform SSH/Sftp/Shell/Telnet/Serial terminal. (github.com)
大家下载安装好以后点击“会话”:
再点击“新建会话”:
这里我们选择SSH:
这里我们输入主机的IP地址下面选择Linux:
随后点击“连接”:
下面我们输入用于登录Linux的用户名和密码:
后面就登录成功了:
如果大家有更好的SSH工具,当然也可以使用,这里就推荐给大家我最常用的两款SSH工具。
2.在Linux中打开SSH功能
对于不同的发行版,打开SSH的步骤也不同,对于Centos打开SSH就相对会简单一些,对于Ubuntu系列的Linux打开SSH就相对会麻烦一些。下面这两种系统打开SSH功能的方式我都会讲,具体演示这里使用Centos7和Ubuntu20.04进行。其它版本也都是一样的。下面我们分情况讨论:
3.Centos配置SSH功能
首先还是使用“ifconfig”命令查看Linux的IP地址:
这里要保证Linux主机和远程用的主机处于同一个网段或者Linux主机具有公网IP。
我们可以看到这里的Linux主机是在内网的一个网段内。Centos在默认的安装状态下,它的SSH是默认打开的,我们无需进行操作就可以直接连接了。下面我将在Powershell中演示连接:
这里我们输入远程命令后输入密码就连接上了,可以说是非常简单的。
4.Ubuntu配置SSH功能
Ubuntu打开SSH功能可能稍微复杂一些,下面我将使用Ubuntu20.04进行演示。首先登录我们的Ubuntu:
如上图,这里使用Ubuntud的20.04进行演示。
我们打开Ubuntu的终端查看Linux主机的IP地址:
对于Ubuntu,它默认不打开SSH,为了配置方便,我们这里安装一个工具来帮我们配置SSH。我们使用下面的命令来安装SSH工具:
sudo apt install openssh-server
在安装完成以后,我们使用下面的命令来查看openssh有没有启动:
sudo systemctl status sshd
这里我们可以看到openssh服务已经启动了。
如果这里你的openssh服务没有启动的话,使用下面的命令来启动openssh服务:
sudo systemctl start sshd
在openssh服务启动以后,我们就可以准备SSH连接了。我们这里同样使用Powershell来进行远程。使用下面的命令:
ssh chulingxiao@192.167.117.101
我们可以看到这里已经远程到了:
注意,在Ubuntu中最好不要使用root进行远程,尽管你已经设置了root用户的密码,但是仍然可能有一些意想不到的问题。
至此,我们Linux的SSH配置就已经完成了,尽管我们只演示了两个发行版,但是其它的发行版的操作都很类似,大家按照上面的步骤操作即可。
四、Linux远程文件(SFTP)
当我们安装了openssh服务以后,SFTP文件服务是被默认安装的。我们直接就能登录到SFTP服务器。我们可以在windows的Powershell中输入下面的命令来登录SFTP服务器:
sftp username@server_ip
这里和SSH登录时很像,这里的sftp表示关键字,后面的username表示要登录SFTP服务器的用户名,@后面跟着的是服务器的IP地址,这里我使用安装了openssh服务的Ubuntu20.04进行演示:
可以看到,当我们输入命令以后,和SSH一样会提示我们输入密码,这里我们输入用户的密码就登录成功了。
在成功登录SFTP服务器以后,我们就能对我们Linux主机的文件进行操作了,下面我们来看一条向Linux服务器提交文件的命令:
put local_file remote_file
这里的local_file表示的是本机文件路径,remote_file表示的是在Linux主机上的文件路径。
下面我们就来演示一下。加入我想将桌面的这个文件提交到Linux主机:
我们使用下面的命令:
put C:\Users\85884\Desktop\芙宁娜图片合集.zip \home\chulingxiao\芙宁娜图片合集.zip
这里的路径大家尽量使用绝对路径。不管是本机还是Linux主机都使用绝对路径,下面就是上传结果了:
我们在Linux主机中,也可以去到对应的文件夹查看文件:
我们可以看到这里文件已将到文件夹中了。
我们也可以在自己的主机上,远程拉取Linux主机上的文件,我们在Linux的目录中新建一个文件,如图:
我们拉取Linux文件使用的是下面的命令,当然,使用下面命令的前提也是登录SFTP服务器。
get remote_file local_file
这里的get就表示拉取命令,这里的remote_file表示我们要拉取的Linux主机的文件,local_file表示拉取到主机上的文件路径和文件名,我们可以使用下面的命令来拉取上面的“test”文件:
get \home\chulingxiao\test C:\Users\85884\Desktop\test
这里可以看到已经拉取完成了,我们的桌面上也出现了我们拉取过来的文件:
至此,我们SFTP传输文件服务就已经完成了。
五、RDP远程服务搭建
前面的那些远程服务基本都是对Linux进行基本的操作,对于新手来说可能不怎么友好,所以我们还是要建立一个图形化的远程方式,这里我们首先就是推荐大家使用RDP桌面。因为部署简单,并且我们使用Windows自带的远程桌面就能直接连接Linux主机。当然,使用RDP的前提就是,具有Linux的桌面环境,像下面的Ubuntu20.04一样,就是具有桌面环境的:
在有桌面环境以后,我们就可以使用下面的命令直接开始安装RDP了:
sudo apt install xrdp
在安装好xrdp以后,我们可以使用下面的命令来查看xrdp是否启动:
systemctl status xrdp
这里可以看到,我的xrdp已经启动了:
这里查询完以后,按Q退出。
如果你的xrdp没有启动,可以使用下面的命令来启动xrdp:
sudo systemctl start xrdp
在确定xrdp启动成功以后,我们就可以使用Windows的远程桌面来连接Linux主机:
在输入了Linux主机的IP地址以后,点击连接,弹出如下窗口点击“是”:
下面我们要全屏:
我们输入用户名和密码:
注意,如果这里你使用自己的用户登录xrdp,登录是瞬间闪退,就换成root用户登录,这里需要改一下root用户的密码,可以看到,我们已经远程进来了:
登录进来后,点击左上角的“活动”,我们这样也可以使用Ubuntu的各种功能了:
至此,我们RDP的远程环境就搭建完成啦,是不是非常简单,如果你发现你使用RDP连接Linux主机时出现黑屏或者蓝屏可以去浏览器中搜索相关解决方案。注意,这里的RDP连接方式不适用于一些嵌入式开发板,如果你想远程嵌入式开发板建议使用别的方案或者只使用SSH。
六、结语
这里已经向大家介绍了Linux的常见远程方式,希望这些远程方式都能在你的工作和学习中帮到你,那么,感谢大家的观看!