楠木轩

高级Linux运维工程师养成记-如何远程连接Linux

由 俎巧玲 发布于 科技

如何远程连接Linux

Linux用户

在安装CentOS8.2时,设置过root用户的密码,同时也创建了用户guanglei。其中root是Linux的管理员账户,类似Windows的Administrator,在生产环境使用root账号时需要小心操作,因为他有自杀的能力(rm -rf /),在高级Linux运维工程师养成记系列中,没有特殊说明都是使用root用户操作,因为普通用户的权限忒小,可能在执行某些命令时没有权限执行。

Linux系统会给每个用户一个ID,其中root用户的ID是0,而普通用户的ID是1000开始编号。

Linux终端

通常的终端指的是鼠标、键盘、显示器的物理终端,而这里的终端都是软件提供的,一台服务器可以提供多个终端来提供给多个用户使用,每个终端都有不同的类型,可以通过tty命令查看当前登录的终端类型

[guanglei@centos8 ~]$ tty/dev/pts/0

/dev/pts/0表示第一个伪终端,终端的编号从0开始,然后依次递增,后面使用XShell远程连接Linux时登录的终端也是伪终端。

除了伪终端以外,Linux还提供了6个虚拟终端,可以使用Ctrl+Alt+F1-F6之间来切换。其中Ctrl+Alt+F2是图形终端,其他的都是基于命令的字符终端。

当登录到CentOS8.2上时,使用Ctrl+Alt+F5切换到第5个终端,然后输入tty命令查看终端类型,/dev/tty5表示第5个虚拟终端。

终端登录

[root@centos8 ~]#tty/dev/tty5

who命令可以查看当前登录的终端信息

[guanglei@centos8 ~]$ whoguanglei tty2         2020-08-25 19:57 (tty2)guanglei pts/0        2020-08-25 17:59 (10.0.0.1)root     pts/1        2020-08-25 19:05 (10.0.0.1)root     pts/2        2020-08-25 19:10 (10.0.0.1)root     pts/3        2020-08-25 19:22 (10.0.0.1)guanglei pts/5        2020-08-25 19:59 (10.0.0.1)

这种终端的切换只是临时切换,如果想要从图形界面切换到字符界面,可以在root用户登录后使用命令init 3实现

[root@centos8 ~]# init 3 # 从图形界面切换到字符界面[root@centos8 ~]# runlevel # 查看当前运行级别5 3

从字符界面切换到图形界面使用命令init 5实现

[root@centos8 ~]# init 5[root@centos8 ~]# runlevel3 5

图形界面相比字符界面更加占用内存,使用free -h可以查看系统的内存使用情况

图形界面内存占用情况

[root@centos8 ~]# free -h #查看内存              total        used        free      shared  buff/cache   availableMem:          7.8Gi       844Mi       5.9Gi        10Mi       1.0Gi       6.7GiSwap:         4.0Gi          0B       4.0Gi[root@centos8 ~]# runlevel3 5

字符界面内存占用情况

[root@centos8 ~]# free -h              total        used        free      shared  buff/cache   availableMem:          7.8Gi       426Mi       6.4Gi       9.0Mi       1.0Gi       7.1GiSwap:         4.0Gi          0B       4.0Gi

通过对比发现CentOS8.2的图形界面内存使用844M,而字符界面只有426M。在生成环境通常会关闭图形界面,只用字符界面。

远程连接Linux远程连接准备

目前在VMWare WorkStation中安装了三台虚拟机,分别是CentOS7.8,CentOS8.2,Ubuntu Server20.04,在实际的工作场景中通常都是使用远程连接工具来登录服务器,然后进行日常的运维工作。目前主流的远程工具有XShell,MobaXterm,但是遗憾的是它们目前(2020/08/25)都只支持Windows系统,macOS系统的同学可以使用SecureCRT

在连接服务器之前,首先需要获取服务的IP地址,使用hostname -I命令就可以获取服务器的IP地址

CentOS8获取IP地址

[root@centos8 ~]# hostname -I10.0.0.100 192.168.122.1

CentOS7.8获取IP地址

[root@centos7 ~]# hostname -I10.0.0.102 192.168.122.1

Ubuntu Server 20.04获取IP地址

guanglei@ubuntu-server:~$ hostname -I10.0.0.101 

获取到IP地址之后,在XShell所在的物理机(Windows)上打开终端,然后使用ping命令来ping刚刚所获取到的三台服务器的ip,如果ping不通是无法使用XShell连接的。

ping 10.0.0.100ping 10.0.0.101ping 10.0.0.102

ping

如果网络都是通的,还要检测端口是否通畅,因为SSH服务默认开启的是22端口,检测端口可以使用telnet命令

telnet 10.0.0.100 22

这里以10.0.0.100的机器为例,如果telnet 10.0.0.100 22能够返回SSH服务的版本,表示端口通畅。

如果服务器的SSH端口通畅,那么此时就可以使用XShell或者是MobaXterm来远程连接三台服务器了。

使用XShell远程连接LinuxXShell7 远程连接Linux

我这里已经提前安装了XSHell 7Beta版,XShell是收费的软件,但是目前使用的XShell Beta 7版本可以免费使用,并且连接了3台服务器,根据会话名称就可以辨别出来连接的用户、IP和服务器版本。

那么XShell是如何配置连接?XShell连接服务器,首先新建会话

新建

设置会话的名称、主机以及端口

设置用户账号信息,然后点击连接

此时会以普通用户账号guanglei登录10.0.0.100服务器

XShell个性化定制

设置每秒自动重连

键盘设置

外观设置

会话设置总览

使用 MobaXtrem远程连接LinuxMobaXtrem下载

除了XShell以外,还可以使用MobaXtrem来远程连接Linux

首先去官网下载MobaXtrem

MobaXtrem分为免费版和收费版,免费版只支持12个会话

选择MobaXtrem Home Edition v20.3

下载成功后会得到一个压缩包,该压缩包包含安装程序MobaXtrem_installer_20_3.msi和数据文件

因为MobaXtrem的产商在国外,下载时选择复制下载链接到迅雷下载

MobaXtrem安装

MobaXtrem_installer_20_3.msi是Windows下的安装程序,双击就可以进行安装

1.开始安装

2.同意许可协议

3.选择安装路径

4.准备安装

5.安装状态

6.安装完成

MobaXtrem远程连接linux

1.选择会话

2.设置会话

3.输入账号的密码

4.保存密码

5.输入主密码

该密码在下次启动MobaXterm时会提示需要输入

输入master password

登录成功

MobaXtrem基本使用

MobaXtrem提供了Remote Monitoring,可以用于监控远程服务器的硬件信息。

SFTP视图可以实现文件的上传和下载,默认展示的是当前登录用户的家目录

MobaXtrem个性化设置
  1. 开启MobaXtrem右键黏贴如果你使用过SecureCRT(另一款远程SSH连接工具),它默认是支持鼠标左键选中文本,右键粘贴文本。MobaXtrem中也支持,不过默认是关闭的,这里可以在菜单栏settings开启MobaXtrem的右键粘贴功能

2.定制字体