通过Xshell连接虚拟机上的Linux系统并传输本地文件

1、配置网卡服务

1.1、配置网卡参数

在RHEL 8系统中至少有5种网络的配置方法,这里使用的是nmtui命令来配置网络。
在Linux系统终端窗口输入nmtui命令,如下图所示
在这里插入图片描述
回车确认之后,跳转到如下图所示,选择Edit a connection,回车确认
在这里插入图片描述
选择ens160网卡,回车确认,如下图所示

在RHEL 5、RHEL 6系统及其他大多数早期的Linux系统中,网卡的名称一直都是eth0、eth1、eth2、……;在RHEL 7中则变成了类似于eno16777736这样的名字;而在RHEL 8系统中网卡的最新名称是类似于ens160、ens192这样的

在这里插入图片描述
可以看到,上图有两个选项,一个是以太网的网卡 ens160,另一个是桥接网络的网卡 virbro,这里选择 ens160网卡编辑参数

疑问:这里的桥接网络的网卡是干嘛的呢?为什么会有个桥接网络的网卡参数选项?

如下图所示,将IPv4配置的自动改为手动
在这里插入图片描述
按下显示详细信息按钮,对 IPv4 进行配置
在这里插入图片描述
在服务器主机的网络配置信息中填写IP地址和子网掩码 192.168.10.10/24
24表示子网掩码中的前24位为网络号,后8位是主机号(与写成255.255.255.0的效果一样)。
网关、DNS等信息暂可不必填写,等用到时再补充。
在这里插入图片描述
选择到最下方,点击OK保存配置
在这里插入图片描述
最后点击 BACK 返回
在这里插入图片描述
然后选择 Quit 退出
在这里插入图片描述
至此,在Linux系统中配置网络的步骤就结束了。

1.2、激活网卡

如果还没有激活网卡,只需使用Vim编辑器将网卡配置文件(在 /etc/sysconfig/network-scripts/ifcfg-ens160 目录下)中的ONBOOT参数修改成yes,然后重启网卡相关服务即可。

输入以下命令:
vim /etc/sysconfig/network-scripts/ifcfg-ens160

在这里插入图片描述

可以看到,网卡参数中ONBOOT为NO
在这里插入图片描述
按下键盘 i(插入)或者a (附加)键之后开始编辑进入文本编辑模式,按键盘方向键进行定位修改ONBOOT=yes,编辑完成之后按 ESC 返回到命令模式。

在这里插入图片描述
再按下:键,进入到最后行模式,输入 wq 保存&退出 即可

在这里插入图片描述

这里说明一下,vim 命令的用法,进入编辑器有三个模式(命令行模式文本编辑模式最后行模式——》mac 终端 vi 命令跟这个一样):

  • 初次输入 vim /etc/sysconfig/network-scripts/ifcfg-ens160 命令后,进入命令行模式,如下图所示,显示文本内容,此时不能输入内容进行修改
  • 按下键盘i(插入)或者a (附加)键之后开始编辑进入文本编辑模式,按键盘方向键进行定位修改,编辑完成之后按 ESC 返回到命令模式
  • 再按下:键,进入到最后行模式,输入 wq 保存&退出 即可,其中 w 是保存,q 是退出

在这里插入图片描述

疑问:vi 和 vim 命令的区别?

Vim的发布最早可以追溯到1991年,英文全称为Vi Improved。它也是Vi编辑器的提升版本,其中最大的改进当属添加了代码着色功能,在某些编程场景下还能自动修正错误代码。参考:https://www.linuxprobe.com/basic-learning-04.html#41_Vim

当修改完Linux系统中的服务配置文件后,并不会对服务程序立即产生效果。要想让服务程序获取到最新的配置文件,需要手动重启相应的服务,之后就可以看到网络畅通了,输入以下命令,重启相应服务即可

[root@kristoper ~]# nmcli connection reload ens160
[root@kristoper ~]# nmcli connection up ens160
Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/4)
[root@kristoper ~]# ping 192.168.10.10
PING 192.168.10.10 (192.168.10.10) 56(84) bytes of data.
64 bytes from 192.168.10.10: icmp_seq=1 ttl=64 time=0.082 ms
64 bytes from 192.168.10.10: icmp_seq=2 ttl=64 time=0.114 ms
64 bytes from 192.168.10.10: icmp_seq=3 ttl=64 time=0.039 ms
64 bytes from 192.168.10.10: icmp_seq=4 ttl=64 time=0.039 ms
64 bytes from 192.168.10.10: icmp_seq=5 ttl=64 time=0.040 ms
64 bytes from 192.168.10.10: icmp_seq=6 ttl=64 time=0.041 ms
...

^C
--- 192.168.10.10 ping statistics ---
34 packets transmitted, 34 received, 0% packet loss, time 817ms
rtt min/avg/max/mdev = 0.036/0.070/0.340/0.056 ms
[root@kristoper ~]# 


以上 ping 的通说明网卡参数已配置好

1.3、创建网络会话

RHEL和CentOS系统默认使用NetworkManager来提供网络服务,这是一种动态管理网络配置的守护进程,能够让网络设备保持连接状态。可以使用nmcli命令来管理NetworkManager服务程序。nmcli是一款基于命令行的网络配置工具,功能丰富,参数众多。它可以轻松地查看网络信息或网络状态:

[root@kristoper ~]# nmcli connection show

在这里插入图片描述

[root@kristoper ~]# nmcli connection show ens160

在这里插入图片描述
另外,RHEL 8系统支持网络会话功能,允许用户在多个配置文件中快速切换(非常类似于firewalld防火墙服务中的区域技术)。如果我们在公司网络中使用笔记本电脑时需要手动指定网络的IP地址,而回到家中则是使用DHCP自动分配IP地址,这就需要麻烦地频繁修改IP地址,但是使用了网络会话功能后一切就简单多了—只需在不同的使用环境中激活相应的网络会话,就可以实现网络配置信息的自动切换了。

使用nmcli命令并按照connection add con-name type ifname的格式来创建网络会话。假设将公司网络中的网络会话称之为company,将家庭网络中的网络会话称之为house,现在依次创建各自的网络会话。

  • 使用con-name参数指定公司所使用的网络会话名称 company
  • 然后依次用ifname参数指定本机的 网卡名称(千万要以实际环境为准,不一定是ens160)
  • autoconnect no参数将网络会话 设置为默认不被自动激活
  • type参数,指定连接网络类型为以太网
  • 以及用ip4(IPv4地址)及gw4(网关)参数手动 指定网络的IP地址
nmcli connection add con-name company ifname ens160 autoconnect no type ethernet ip4 192.168.10.10/24 gw4 192.168.10.1

在这里插入图片描述
使用con-name参数指定家庭所使用的网络会话名称house。因为要从外部DHCP服务器自动获得IP地址,所以这里不需要进行手动指定。

[root@kristoper ~]# nmcli connection add con-name house type ethernet ifname ens160

在这里插入图片描述
在成功创建网络会话后,可以使用nmcli命令查看创建的所有网络会话:
在这里插入图片描述
使用nmcli命令配置过的网络会话是永久生效的,这样当我们上班后,顺手启动company网络会话,网卡信息就自动配置好了:

[root@kristoper ~]# nmcli connection up company

//查看网络信息
[root@kristoper ~]# ifconfig

在这里插入图片描述
如果大家使用的是虚拟机,请把虚拟机系统的网卡(网络适配器)切换成桥接模式,如下图所示。然后重启虚拟机系统即可。
这样操作过后就能使用家庭中的路由器设备了。

桥接模式下有一个复制物理网络连接状态 选项,建议勾选此选项,此选项可实现虚拟机的网卡状态随着物理机的变化而变化,当本地主机连接的网络切换时,能保证虚拟机网卡获得最新的网络状态,跟物理机保持同一个网段,从而自动获得最新的网络IP。

在这里插入图片描述

桥接模式:直接连接物理网络,跟物理主机同用一个路由器,同一网段,不同ip地址,而且还可以桥接访问同网段内的其它主机。——对应单独的网卡 VMnet 0

NAT模式:(网络地址转换)用于共享本地物理主机的IP地址,物理主机能够连接网络,虚拟机也可以,但是无法访问同网段的其它主机。——对应物理机上的网卡 VMnet 8

主机模式:只与主机直接连接,不能访问网络。——对应物理机上的网卡 VMnet 1

在这里插入图片描述

启动house家庭会话,看一下效果:
这个时候没有启动家庭网络会话之前,是连接不上网络的,虽然虚拟机设置了桥接模式,因为此时本地主机连接的是家庭网络,先前配置的ens160 网卡参数的地址是固定的,与家庭网络地址明显不在同一地址段内,所以在配置了家庭网络会话之后,由于 DHCP 动态分配网络地址,所以这使得和家里的网络在同一网段了,所以才能访问网络。
在这里插入图片描述
启动公司网络会话试试看,很明显也是连接不上网络
在这里插入图片描述
启动家庭会话试试看,可以看出一些端倪了,因为家庭会话直接连上的家里的路由器,直接上午,而上面公司的网络会话很明显自己定义的,不在公司网络范围里,没有网络连接。

[root@kristoper ~]# nmcli connection up house
[root@kristoper ~]# nmcli connection show

在这里插入图片描述
后续不需要网络会话时,直接用delete命令就能删除,特别简单:

[root@kristoper ~]# nmcli connection delete house
Connection 'house' (d848242a-4bdf-4446-9079-6e12ab5d1f15) successfully deleted.
[root@kristoper ~]# nmcli connection delete company 
Connection 'company' (6ac8f3ad-0846-42f4-819a-e1ae84f4da86) successfully deleted.

2、远程控制服务

2.1、配置sshd服务

SSH(Secure Shell)是一种能够以安全的方式提供远程登录的协议,也是目前远程管理Linux系统的首选方式。在此之前,一般使用FTP或Telnet来进行远程登录。但是因为它们以明文的形式在网络中传输账户密码和数据信息,因此很不安全,很容易受到黑客发起的中间人攻击,轻则篡改传输的数据信息,重则直接抓取服务器的账户密码。

想要使用SSH协议来远程管理Linux系统,则需要配置部署sshd服务程序。sshd是基于SSH协议开发的一款远程管理服务程序,不仅使用起来方便快捷,而且能够提供两种安全验证的方法:

  • 基于密码的验证——用账户和密码来验证登录;
  • 基于密钥的验证——需要在本地生成密钥对,然后把密钥对中的公钥上传至服务器,并与服务器中的公钥进行比较;该方式相较来说更安全。

前文曾多次强调“Linux系统中的一切都是文件”,因此在Linux系统中修改服务程序的运行参数,实际上就是在修改程序配置文件的过程。sshd服务的配置信息保存在/etc/ssh/sshd_config文件中。运维人员一般会把保存着最主要配置信息的文件称为主配置文件,而配置文件中有许多以井号(#)开头的注释行,要想让这些配置参数生效,需要在修改参数后再去掉前面的井号。

在RHEL 8系统中,已经默认安装并启用了sshd服务程序。接下来在客户端使用ssh命令远程连接服务器,其格式为“ssh [参数]主机IP地址”,要退出登录则执行exit命令。第一次访问时需要输入yes来确认对方主机的指纹信息:

[root@Client ~]# ssh 192.168.10.10
The authenticity of host '192.168.10.10 (192.168.10.10)' can't be established.
ECDSA key fingerprint is SHA256:5d52kZi1la/FJK4v4jibLBZhLqzGqbJAskZiME6ZXpQ.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '192.168.10.10' (ECDSA) to the list of known hosts.
root@192.168.10.10's password: 此处输入服务器管理员密码
Activate the web console with: systemctl enable --now cockpit.socket

Last login: Fri Jul 24 06:26:58 2020
[root@Server ~]# 
[root@Server ~]# exit
logout
Connection to 192.168.10.10 closed.

如果禁止以root管理员的身份远程登录到服务器,则可以大大降低被黑客暴力破解密码的概率。下面进行相应配置。首先使用Vim文本编辑器打开服务器上的sshd服务主配置文件,然后把第46行#PermitRootLogin yes参数前的井号(#)去掉,并把参数值yes改成no,这样就不再允许root管理员远程登录了。记得最后保存文件并退出。

==提示:实际当中使用 vim 编辑查看 /etc/ssh/sshd_config 文件,并没有内容,很奇怪 ==

[root@Server ~]# vim /etc/ssh/sshd_config 
 ………………省略部分输出信息………………
 43 # Authentication:
 44 
 45 #LoginGraceTime 2m
 46 PermitRootLogin no
 47 #StrictModes yes
 48 #MaxAuthTries 6
 49 #MaxSessions 10
 ………………省略部分输出信息………………

再次提醒的是,一般的服务程序并不会在配置文件修改之后立即获得最新的参数。如果想让新配置文件生效,则需要手动重启相应的服务程序。最好也将这个服务程序加入到开机启动项中,这样系统在下一次启动时,该服务程序便会自动运行,继续为用户提供服务。

[root@Server ~]# systemctl restart sshd
[root@Server ~]# systemctl enable sshd

这样一来,当root管理员再来尝试访问sshd服务程序时,系统会提示“不可访问”的错误信息。虽然sshd服务程序的参数相对比较简单,但这就是在Linux系统中配置服务程序的正确方法。

为了避免后续实验中不能用root管理员账号登录,请大家动手把上面的参数修改 回来:

[root@Server ~]# vim /etc/ssh/sshd_config 
………………省略部分输出信息……………… 
 43 # Authentication:
 44 
 45 #LoginGraceTime 2m
 46 PermitRootLogin yes
 47 #StrictModes yes
 48 #MaxAuthTries 6
 49 #MaxSessions 10 
………………省略部分输出信息………………
[root@Server ~]# systemctl restart sshd 
[root@Server ~]# systemctl enable sshd

2.2、在Windows系统上,使用 Xshell 进行远程连接虚拟机上的Linux系统

这里用到的是 Xmanager-7,这里直接给到破解版链接,需要把插件的4个文件夹直接粘贴到安装目录下,替换掉对应 exe 执行文件即可

如果想使用Windows系统进行访问也没问题。首先确保网络是可以通信的(如果是连接的company网络会话,用Xshell连接会怎样呢?),随后从Xshell、PuTTY、SecureCRT、SSH Secure Shell Client等工具中选择一个喜欢的登录工具,远程连接一下试试看,效果如下图所示。

注意:这里查看了虚拟机上的 linux IP地址为 192.168.0.105(以ens160网卡为准),所以在 Xshell 上 对应连接的地址要一致。
在这里插入图片描述
选择接受并保存即可在Windows上连接到虚拟机的Linux系统(疑问:这里为什么会有Linux主机秘钥?而且选择一次性接受还连接不上?
在这里插入图片描述
使用 Xftp 可以看到 Linux 系统中的文件目录结构了,也可以直接拖动本地文件上传到 linux 系统中
在这里插入图片描述

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值