使用Centos7虚拟机时,想要从主机传一些文件到虚拟机,需要使用FTP传输,在主机上装上的CuteFTP的软件,对虚拟机进行配置。
1,首先,要保证虚拟机能够上网
一般装好虚拟机后,只要主机连了网,虚拟机也是有网的,这里简单的介绍一下吧。
首先设置网络连接模式。点击虚拟机 - >设置 - >网络适配器,可以发现有三种模式:桥接模式,NAT模式和仅主机模式,如图1.1:
图1.1
其中:
1)桥接模式:桥接模式下,虚拟机使用的是主机的真实网卡与主机进行通信,如图1.2所示,其中的WLAN2(本地无线连接)和以太网(本地有线连接)就是主机的两个真实网卡,VMNET0和vmnet8的则是两个虚拟网卡。在这种情况下,虚拟机将会占用一个真实网段的IP地址,因此,虚拟机还可以和同一网段的其他计算机进行通信,相当于一台真实的计算机。但是,由于会占用真实的IP地址,因此,在人较多的情况下,可能会发生IP地址冲突。
2)NAT模式:使用的是虚拟网卡vmnet8的,这种模式下,虚拟机可以联网,也可以与主机进行通信,但是不能与其他计算机通信,好处是不占用真实IP地址。
3)仅主机模式(Host Only):这种模式与NAT模式差不多,区别是它在没有联网的情况下也能与主机进行通信。
图1.2
本文使用的是NAT模式。
然后,点击编辑 - >虚拟网络编辑器,选择启用本地DHCP服务,(一般默认都是启用的)。可以点击更改设置来选择是否启用DHCP服务,有的文章是禁止DHCP服务的,这里我选择启用DHCP服务,同样可以完成目标。记住这里的子网地址192.168.21.0,后面会用到。
图1.3
启用了DHCP后,保存,去虚拟机查看虚拟机的IP地址,使用如下命令:
ip addr
(在之前的centos版本使用的是ifconfig命令,不过这个命令已经被弃用了,故使用上述命令)
所得的结果如图1.4所示:
图1.4
其中,ens33是虚拟机的网卡(之前的系统中用的是eth0、eth1、...等来表示网卡的) ,可以看到,虚拟机为系统动态分配了IP地址,此时虚拟机可以连上网络,但是,虚拟机与主机之间不能通信,要通信的话需要为虚拟机分配一个固定的IP地址。
2、为虚拟机配置固定IP地址
使用以下命令打开配置文件ifcfg-ens33,来配置虚拟机的IP地址,
sudo vim /etc/sysconfig/network-scripts/ifcfg-ens33
在最后一行添加IP地址:
IPADDR = 192.168.21.88
如图2.1所示:
图2.1
这个IP地址只要是和图1.3子网地址同一个网段的都可以,除了192.168.21.1和192.168.21.2,这两个分别是主机虚拟网卡VMnet8的IP地址和网关地址(个人理解,如有错误,请指出)。
保存并退出后,重启一下网络服务:
service network restart
然后查看ip地址,结果如图2.2:
图2.2
可以看到,已经为系统分配了固定ip地址192.168.21.88,可以使用ping命令ping通。
此时,虚拟机就可以和主机进行通信了,可以使用SceureCRT连接虚拟机,如图2.3所示:
图2.3
但是此时,还不能使用FTP。
3,安装VSFTPD服务
要使用CuteFTP的连接虚拟机,首先虚拟机系统上要有FTP服务。目前较常用的FTP服务有vsftpd的和proftpd的,本文使用的是vsftpd的服务。
使用如下命令安装vsftpd的:
sudo yum -y install vsftpd
然后开启vsftpd的服务:
service vsftpd start
需要对vsftpd做一些配置,才能成功的使用ftp,进入到/ etc / vsftpd目录下,可以看到下面三个文件:ftpusers,user_list和vsftpd.conf。前面两个文件是用户访问控制列表文件,可以用来控制哪些用户被禁止登录ftp.vsftpd.conf是主配置文件,可以配置FTP的读写权限等,这些在很多其他博客都有,就不详细说明了,本文的主要设置如图3.1:
图3.1
配置完成,使用FTP命令连接自身,看看vsftpd的是否能正常使用:
ftp 192.168.21.88
输入用户名和密码(我使用的是本地用户),发现并不能连上FTP,报错信息是:
500OOPS:无法读取chroot()列表文件:/ etc / vsftpd / chroot_list
这个信息表示用户没有变更根目录的权限,解决方案如下:
在/ etc / vsftpd目录下新建文件chroot_list,并在其中添加用户名:
sudo vim / etc / vsftpd / chroot_list
进入后,将允许访问的用户用户名添加进去,如,笔者的本地用户是同业,就将同业写入了该文件,保存退出然后重启vsftpd的服务:
service vsftpd restart
再使用FTP命令查看的话,发现可以连上的ftp了,如图3.2所示:
图3.2
此时,再使用的CuteFTP,就可以连上虚拟机,并传输文件了,如图3.3:
图3.3
4,不能使用FTP服务的一些常见解决方法
如果在上述情况下还不能使用FTP服务,那么有可能是虚拟机的防火墙打开了,阻止了21端口的访问可以选择关闭防火墙,关闭防护墙命令如下:
systemctl stop firewalld
如果还是不行,可能是系统防护等级太高,可以选择关闭SELinux的服务:
sudo vim / etc / selinux / config
将其中SELINUX =执行改为SELINUX =禁用即可,如图4.1
图4.1
用sestatus命令查看了SELinux的状态:
可见SELinux的以关闭。
东西有点多,写的可能有点乱,还在学习中,望谅解。
注:这是之前本人在CSDN上发的一篇博客,为了方便,就转到博客园这边来了。