1. 介绍
要想实现Hyper-v 与虚拟机共享文件夹,方式有很多,其他的方式我看过,但是都没有实现出来,所以我使用了vsftp来操作。
物理机系统windwos 10 ,虚拟机为linux cenos7
2. vsftp
2.1 安装
安装时最好指定版本号,否则下次会下载最新的版本,有可能会出现问题
1 2 3 4 | #-y 表示安装时不询问,直接选择yes yum install -y vsftpd-3.0.2 #检查安装是否成功 vsftpd -v |
2.2 启动服务
1 2 3 4 5 6 | #启动ftp命令 service vsftpd start #停止ftp命令# service vsftpd stop #重启ftp命令 service vsftpd restart |
2.3 设置开机自启vsftpd服务
1 | chkconfig vsftpd on |
2.3 禁用linux防火墙
centos默认有安装防火墙,但是命令记不住,所以直接安装iptables
1 | yum install iptables-services |
临时停止防火墙,下次系统重启又会恢复:
1 | systemctl stop firewalld |
永久禁用防火墙
1 | systemctl disable firewalld.service |
查看端口21是否被使用
1 2 3 4 | #安装lsof yum install lsof #查看端口信息 lsof -i:21 |
使用windows的telnet查看21端口是否能正常访问
1 | telnet 192.168.24.200 21 |
2.3 vsftp的配置
ftp的配置文件主要有三个,位于/etc/vsftpd/目录下,分别是:
- ftpusers 该文件用来指定那些用户不能访问ftp服务器。
- user_list 该文件用来指示的默认账户在默认情况下也不能访问ftp
- vsftpd.conf vsftpd的主配置文件
2.4 用户类型
- 匿名用户:不需要登录,就能直接访问文件夹
- 本地用户:需要在linux上先创建ftp用户,访问时需要登录才能访问文件夹
2.4 匿名用户操作
切换目录:有的版本可能默认地址不同
1 | cd /etc/vsftpd/ |
修改vsftpd.conf文件
1 | vi vsftpd.conf |
去掉以下两行前面的’#'号(开启匿名用户的权限:上传文件,修改,新增文件夹等)
1 2 | anon_upload_enable=YES anon_mkdir_write_enable=YES |
访问:
在文件系统中输入ftp://ip 进行访问共享文件夹,默认的共享文件夹是linux系统下的/var/ftp。此ip表示你的linux的ip
2.5 本地用户
创建账号和密码
创建ftpUser账号
1 | useradd ftpUser |
为这个账号设置密码
1 | passwd ftpUser |
重启一下vsftp服务
1 | service vsftpd restart |
在windows的文件系统下访问ftp://ip ,此时会弹出一个框让你输入密码,你就输入刚刚创建的用户密码就行了
2.6 设置默认的共享文件夹
如何修改 vsftpd 的默认根目录 /var/ftp/ 到另一个目录?
默认配置下,匿名用户登录 vsftpd 服务后的根目录是 /var/ftp/; 系统用户登录 vsftpd 服务后的根目录是系统用户的home目录。
若要修改登录 vsftpd 服务后的根目录,只要修改 /etc/vsftpd/vsftpd.conf 文件即可。 假设我现在想让匿名用户登录后访问/var/ftp/,本地用户登录后访问/usr/local/ftp-share目录。则加入下面三行代码
1 2 3 4 5 6 7 8 9 10 | #本地用户访问的目录 local_root=/usr/local/ftp-share #匿名用户访问的目录 anon_root=/var/ftp #是否将所有用户限制在主目录,YES为启用 NO禁用,最好不加,会出现问题 #chroot_local_user=YES 如果你一定要加chroot_local_user属性,那么就把下面这个也同时加上,用来限制时添加写的权限 #allow_writeable_chroot=YES |
chroot_local_user=YES这个配置最好不要加,否则会出现登录不了的情况,登录后一直重新弹出登录框。
如果你一定要加这个属性,那么把allow_writeable_chroot=YES也加上即可。我已测试过可以
重启服务
1 | service vsftpd restart |
再次访问即可
2.7 注意文件权限的问题
像上面我们已经设置本地用户登录后访问/usr/local/ftp-share目录,但是ftp-share是我们使用linux的root用户创建的,要想在windows系统上也能操作它的话,需要给这个文件夹加上权限:
1 | chmod -R 777 /usr/local/ftp-share |
因为你在windows上面登录的其实就是ftpUser用户,所以要让ftpUser用户能够操作/ftp-share这个文件夹才行。
2.8 禁用掉selinux服务
如果不禁掉,会没有权限对共享文件夹进行新增删除等操作
禁用有两种方式:
第一种是临时禁用
1 | setenforce 0 |
第二种就是永久禁用,需要修改文件,并且重启服务器
1 | vim /etc/selinux/config |
然后将这个文件的SELINUX属性修改下
1 | SELINUX=disabled |
修改保存后,要重启一下服务器
查看状态输入以下命令
1 | getenforce |
Enforcing是开启状态
Permissive 是临时禁用了(警告模式,将该事件记录下来,依然允许执行)
disable 永久禁用了
2.9 切换账号
如果你是第一次连接ftp服务器,那么会默认使用匿名用户进行访问,如果想要切换用户: