文件共享-win10到Linux

  • 前言
  • 一、介绍
  • 二、部署过程
  • 方法一:Samba
  • 1、Linux上安装samba软件
  • 2、在windows上设置共享目录
  • 3、挂载使用
  • 报错:
  • 方法二:NFS
  • Server端配置
  • Client端配置
  • 方法三:hgfs
  • 首先我们将共享目录设置下,
  • 接着重新安装Vmware-tools,
  • 三、使用场景


前言

因为需要搭建centos的ftp本地源,一开始是将软件下载到虚机中,经过一段时间之后发现所需要下载的软件包类型还是很多并且占用的容量还是非常大的,这时候就要考虑下了。

现在软件包时放在一个虚机中的,预先分配了100G的空间,经过昨天的ceph和centos7.9两种源的软件包已经将100G空间使用完毕了,我接下来会下载更多的软件包到本地源,那么我们还要将软件包放到虚机中吗?

  • 虚机可以做快照有一定的安全性但是下载的软件包越来越大,快照占用的空间也会越来越大,如果哪天快照丢失无法恢复了之前的软件包就等于白瞎了!

这样的话就不如将windows本地的空间共享到Linux虚机中所有下载的软件包都放在本地的硬盘中,就是虚机出问题了,软件包在本地存储起来,可以再创建一个虚机来进行ftp源的搭建。

一、介绍

首先,一说起文件共享我想到的方式就是三种ftp、nfs、samba,之前倒是做过在两台Linux操作系统之间做文件共享使用过这三种方式,但是现在的情况是在我的windows10【家庭版】和我通过Vmware虚机创建的Centos7.6的虚机之间进行文件共享,这个操作是没有做过的所以写个博客记录下。

接着说下我下面实现文件共享的三种方式:

  • Samba
  • NFS
  • Vmware-tools
  1. samba 互联网文件系统,他是Linux系统上实现SMB协议的免费软件,是C/S架构的。samba可以在局域网中共享文件和打印机,我这是用来共享文件。
    简单说,它就是用来解决和windows的文件互传问题,不是Linux不能使用,如果是两台Linux环境我更喜欢使用NFS,一般windows和Linux是使用samba;
    samba最大的特点就是【samba主要解决的是Linux和windows之间的共享】
  2. nfs Network File System 网络文件系统,它是基于Linux内核的文件系统,最大的功能就是可以通过网络,让不同的机器、不同的操作系统可以共享彼此的文件。
    简单来说,NFS是早先Linux中出现的一种共享文件的方式,如果是两台Linux系统的话,我使用的都是nfs来进行文件共享,
    NFS最大的特点就是【在Linux中共享非常方便】
  3. Vmware-tools ,第三种方式是通过Vmware软件在安装虚机的时候启动的Vmware-tools来实现将windows目录共享到创建的虚机中,
    简单来说就是通过Vmware软件来进行实现,最方便的就是我们只需要编写好配置文件每次重启虚机都会自动挂载到对应的位置,不需要我们操心这中间过了什么。
    我最终选择的也是这种办法!!!

二、部署过程

方法一:Samba

安装过程:

  • 首先是在Linux上安装软件
  • 然后在windows中创建共享目录然后创建一个对应的用户,

PS:我因为window版本是【家庭版】所以没有用户安全策略所以安装过程还是和网上的步骤有些不同的,

1、Linux上安装samba软件

PS:当我们使用到(smbclient)命令的时候,就是samba-client软件包提供的,

yum install samba samba-client

WINDOWS NFS共享使用IP nfs共享设置win10_windows 10


WINDOWS NFS共享使用IP nfs共享设置win10_centos_02

接着修改下工作组,

PS:在samba的配置文件中是有默认的工作组的,如果是和windows共享的话那么我们就需要设置下了,

查看下工作组

WORKGROUP

WINDOWS NFS共享使用IP nfs共享设置win10_重启_03

我们可以编辑配置文件在【global】全局下面找到workgroup工作组,然后进行修改

vim /etc/samba/smb.conf
[global]
        workgroup = WORKGROUP

WINDOWS NFS共享使用IP nfs共享设置win10_重启_04

最后我们启动samba服务并设置为开机自启

systemctl enable --now smb.service 
systemctl status smb.service

WINDOWS NFS共享使用IP nfs共享设置win10_WINDOWS NFS共享使用IP_05

2、在windows上设置共享目录

准备好你的共享目录,我的是“ftp-linux-package”

操作过程:选择目录——》右击选择【属性】——》选择【共享】、【高级共享】——》将【共享此文件夹】前面进行勾选,然后点击【权限】——》将【完全控制和更改】权限设置为允许——》最后点击应用

WINDOWS NFS共享使用IP nfs共享设置win10_linux_06

因为我的是window10【家庭版】所以没有【用户安全策略】那就没法设置匿名模式了,那么我就手动的创建一个用户,

PS:创建一个root用户设置密码为123然后加入到管理员administrators组中,

net user root 123 /add
net localgroup administrators root /add

WINDOWS NFS共享使用IP nfs共享设置win10_WINDOWS NFS共享使用IP_07

选择【开始】——》点击【设置】——》选择【账户】——》点击【家庭和其他用户】,就可以查看到我们刚才创建的用户了,

WINDOWS NFS共享使用IP nfs共享设置win10_windows 10_08


或者还可以通过控制面板查看

在【搜索】中输入“控制面板”——》点击【控制面板】——》选择【用户账户】——》选择【用户账户】——》点击【管理其他用户】,也是可以看到我们创建的用户的,

WINDOWS NFS共享使用IP nfs共享设置win10_重启_09

3、挂载使用

现在我们就可以回到Linux系统中先查看下,

PS:这里密码是123,就是我们刚才创建时候的设置的

smbclient -L 192.168.144.1

WINDOWS NFS共享使用IP nfs共享设置win10_重启_10


创建挂载点

mkdir /root/samba/

WINDOWS NFS共享使用IP nfs共享设置win10_WINDOWS NFS共享使用IP_11

这时候我们进行挂载——》挂载成功

mount -t cifs -o vers=2.0,username="root",password="123" //192.168.144.1/ftp-linux-package /root/samba/

WINDOWS NFS共享使用IP nfs共享设置win10_WINDOWS NFS共享使用IP_12

验证

PS:我们可以进入挂载目录创建个文件,,写入内容,然后查看下,

cd /root/samba/
echo 222 >> test2.txt
cat test*

WINDOWS NFS共享使用IP nfs共享设置win10_centos_13

报错:

PS:如果遇到这种报错可以加一个参数【vers=2.0】

mount error(112): Host is down

WINDOWS NFS共享使用IP nfs共享设置win10_linux_14

现在samba实现window到Linux的文件共享就算部署完成了,而且已经验证了,我们共享到Linux本地是可以正常的创建和编辑文件的,这就证明没问题。

方法二:NFS

Hane WIN NFS SERVER软件下载

软件安装过程一路默认就好了,安装完成之后查看下软件的安装目录(C:\Program Files (x86)\nfsd)

启动之后就是下面的界面

WINDOWS NFS共享使用IP nfs共享设置win10_windows 10_15

Server端配置

软件安装完成之后我们还需要做几项操作完成设置,

  • 首先是设置共享目录,因为NFS是一种文件系统,就是将本地的空间准备好挂载出去,让其他人使用,就是要选择一个块盘符、指定一个目录;
  • 接着我们需要在防火墙放通三个端口,111,1058,2049,因为我们是开始防火墙的所以需要设置两种规则,TCP和UDP都是需要设置的;
  • 最后就是启动服务,现在服务端的配置就完成了;

1、修改共享目录

共享目录就是指定我们本机要共享出去目录是哪个,

WINDOWS NFS共享使用IP nfs共享设置win10_windows 10_16


这个根据实际情况自己选择,我的是在C盘

WINDOWS NFS共享使用IP nfs共享设置win10_重启_17

百度网上的教程是:

选择输出——》选择【编辑输出表文件】——》修改【exports】——》保存

但是我们按照这个过程修改完保存的时候提示我不是管理员权限无法报错,这就尴尬了,

WINDOWS NFS共享使用IP nfs共享设置win10_WINDOWS NFS共享使用IP_18

具体情况具体分析,这里修改的【表文件】应该是NFS服务的配置文件,和在Linux上面一样,就是制定一个目录将他共享出去,那么我们可以在NFS服务的安装目录中找到这个文件才对,找下!

安装路径:C:\Program Files (x86)\nfsd

PS:这里别死抄,你的软件安装到哪就到那里去找,别复制我的路径

WINDOWS NFS共享使用IP nfs共享设置win10_WINDOWS NFS共享使用IP_19

这样我们直接打开这个文件进行编辑就好了,完成之后点击保存就OK了,

# exports example

C:\ftp-linux-package -public -name:nfs

WINDOWS NFS共享使用IP nfs共享设置win10_windows 10_20

1.1、编辑文件

# exports example

C:\ftp-linux-package -public -name:nfs

解释:

  • C:\ftp-linux-package 这是我准备的共享目
  • public 设置目录权限为公共
  • -name:nfs 修改共享目录名字为nfs

2、重启服务

编辑完成之后我们是需要重启服务让修改的配置生效的,根据百度出来的内容,重启步骤:

点击【开始】——》找到安装的Hane WIN软件——》选择【重启所有服务】

WINDOWS NFS共享使用IP nfs共享设置win10_重启_21

点击之后会启动一个字符终端提示我们是否继续执行操作?——》输入【Y】,但是输出很多的(拒绝访问),这表示因为权限的原因导致没法正常执行,

WINDOWS NFS共享使用IP nfs共享设置win10_linux_22

这种情况就刺激了,因为我使用的是win10 电脑,可能是操作系统有哪些机制导致的没有权限重启,这种情况下我们可以找打重启操作的可执行文件来选择【管理员权限】进行重启操作

我们还是可以选择【开始】——》找到【Hane WIN】——》选择【重启所有服务】——》右击【更多】——》选择【打开文件位置】

WINDOWS NFS共享使用IP nfs共享设置win10_linux_23


接着选择【重启所有服务】快捷标识——》右击选择【打开文件所在位置】,这时候就找到了重启所有服务的可执行文件了,

WINDOWS NFS共享使用IP nfs共享设置win10_centos_24

这时候我们选择【RestartService.bat】——》右键选择【以管理员身份执行】,就可以成功重启服务了,

WINDOWS NFS共享使用IP nfs共享设置win10_重启_25


这时候在查看共享目录的设置就上去了,

WINDOWS NFS共享使用IP nfs共享设置win10_重启_26

3、防火墙端口

上面我们已经将NFS服务的共享目录设置好了,并且经过重启服务已经让配置生效了,但是在windows上还是没有,因为我是开启防火墙的情况,但是为了一个NFS服务将防火墙关闭还是不值当的,那么就将NFS服务需要的端口放通了,

首先查看下NFS需要放通的端口有哪些,111/1058/2049,由于tcp协议和UDB协议都是使用的那么就需要创建两条

WINDOWS NFS共享使用IP nfs共享设置win10_centos_27

现在服务是启动状态,那么端口应该都是打开的,我们可以查看下

WIN+r——》输入【cmd】打开终端——》输入【netstat -ano】

这是tcp的链接状态

WINDOWS NFS共享使用IP nfs共享设置win10_centos_28

下面这是UDP的三个端口,

WINDOWS NFS共享使用IP nfs共享设置win10_centos_29


接着设置防火墙

点击【开始】——》选择【设置】——》点击【网络和internet】——》在状态选项下面找到【windows防火墙】——》选择【高级设置】,我们就可以看到下面界面

WINDOWS NFS共享使用IP nfs共享设置win10_WINDOWS NFS共享使用IP_30


点击【入站规则】——》右击【新建规则】——》选择【端口】,下一步

WINDOWS NFS共享使用IP nfs共享设置win10_重启_31

选择协议,我们TCP和UDP都是需要创建的,先选择【TCP】——》下面选择【特定本地端口】输入(111,1058,2049),这里使用英文状态下使用逗号间隔

WINDOWS NFS共享使用IP nfs共享设置win10_centos_32

在操作这里选择【允许连接】

WINDOWS NFS共享使用IP nfs共享设置win10_centos_33

配置作用域这里默认就好,

WINDOWS NFS共享使用IP nfs共享设置win10_windows 10_34


最后名字这里自己写,我写的是hane-ftp

WINDOWS NFS共享使用IP nfs共享设置win10_windows 10_35

然后以同样的操作将三个端口用UDP的协议再添加一遍,

最后结果就是这样的

WINDOWS NFS共享使用IP nfs共享设置win10_WINDOWS NFS共享使用IP_36

我们可以点击进来查看下,设置的端口是没问题的,

WINDOWS NFS共享使用IP nfs共享设置win10_linux_37

到现在Server端就没有问题了,

Client端配置

我们打开client端,我这里使用的是centos7.6的Linux虚机,

可以在Linux端将nfs软件安装上

yum install nfs-utils

WINDOWS NFS共享使用IP nfs共享设置win10_linux_38

我们可以使用命令查看下windows设置的NFS共享目录,可以查看到!

showmount -e 192.168.144.1

WINDOWS NFS共享使用IP nfs共享设置win10_windows 10_39

我们可以手动创建一个挂载目录,然后使用命令挂载,然后查看下是四百多G,应该是将C盘的容量都算上了,

mkdir /mnt/nfs
mount -t nfs 192.168.144.1:/nfs /mnt/nfs
#df -h
Filesystem               Size  Used Avail Use% Mounted on
192.168.144.1:/nfs       476G  109G  367G  23% /mnt/nfs

WINDOWS NFS共享使用IP nfs共享设置win10_WINDOWS NFS共享使用IP_40

当NFS挂载上来之后我们可以查看下端口,在Linux端是可以看到111端口的,

WINDOWS NFS共享使用IP nfs共享设置win10_重启_41

测试:

进入到挂载目录,我们创建一个文件,写入一个111,然后到windows上可以查看到,这样我们就可以将window的空间挂载到Linux系统中使用了,

WINDOWS NFS共享使用IP nfs共享设置win10_linux_42

WINDOWS NFS共享使用IP nfs共享设置win10_centos_43

开机自动启动:

首先编写fstab自动挂载文件,

vim /etc/fstab 
192.168.144.1:/nfs /mnt/nfs nfs defaults 0 0

WINDOWS NFS共享使用IP nfs共享设置win10_centos_44

手动将nfs解挂载,然后执行fstab文件,验证下语句编写是否成功,nfs有挂载上去了,

umount /mnt/nfs/
mount -a

PS:编写fstab文件一定要检查,如果语法有错误是没法正常开机的,一定要检查、检查、检查!!!

WINDOWS NFS共享使用IP nfs共享设置win10_centos_45

总结:

使用NFS实现将windows的硬盘空间共享到Linux系统中,过程简单概述就是:windows安装好NFS软件,设置共享目录,设置防火墙规则,然后Linux端就比较方便了,直接挂载就可以,我是为了方便才安装了一个nfs软件,

整体来说安装过程还不是太复杂的,但是使用方面还是有一定的疑问的,

方法三:hgfs

hgfs是通过Vmware设置共享文件夹然后通过vmware-tools来帮助我们进行目录的共享,

首先我们将共享目录设置下,

选择虚机,右击选择【设置】——》点击【选项】——》选择【共享文件夹】——》点击【总是启动】——》

WINDOWS NFS共享使用IP nfs共享设置win10_centos_46

在共享文件夹——》文件夹——》点击【添加】——》选择【下一步】——》点击【浏览】——》选择我们选择的共享目录——》点击【下一步】——》选择【启动此共享】——》点击【完成】

WINDOWS NFS共享使用IP nfs共享设置win10_WINDOWS NFS共享使用IP_47


WINDOWS NFS共享使用IP nfs共享设置win10_重启_48

现在我们就在虚机中启动了共享文件夹功能并且已经将我们要共享的windows文件夹添加上去了,

WINDOWS NFS共享使用IP nfs共享设置win10_windows 10_49

接着重新安装Vmware-tools,

但是现在是没法直接使用的,我们在系统中也是没法查看到的,我们需要通过vmware tools功能将文件夹挂载到我们的centos系统当中去,

右击虚机选项卡——》选择【重新安装Vmware Tools】

WINDOWS NFS共享使用IP nfs共享设置win10_windows 10_50


这时候在虚机下面会有提示,我们需要将光驱中挂载的镜像先摘掉,重新安装Vmware tools的压缩包需要加载到光驱中,我们才能正常使用,

WINDOWS NFS共享使用IP nfs共享设置win10_linux_51


我们可以在虚机的右下角,找到一个圆圈的标识,就是我们虚机的虚拟光驱了,右击选择【设置】——》我们可以看到vmware tools的镜像已经加载进来了,

WINDOWS NFS共享使用IP nfs共享设置win10_windows 10_52

接着我们进入到虚机中挂载光驱

mount /dev/sr0 /mnt/
df -h

WINDOWS NFS共享使用IP nfs共享设置win10_windows 10_53

我们可以查看下光驱中的内容,那个压缩包就是我们要安装东西,我们需要将光驱中的内容都拷贝出来,然后进行操作,

WINDOWS NFS共享使用IP nfs共享设置win10_linux_54

创建一个目录将光驱中的内容都拷贝进去

mkdir /root/vmware-tools/
cp /mnt/* /root/vmware-tools/
ll -g /root/vmware-tools/

WINDOWS NFS共享使用IP nfs共享设置win10_windows 10_55


我们进入目录将压缩包解压掉,解压出来的就是一个目录,进入目录我们执行一个脚本就可以了,脚本执行过程中,全程默认就好

cd /root/vmware-tools/
tar -zxf VMwareTools-10.3.22-15902021.tar.gz 

cd vmware-tools-distrib/
./vmware-install.pl

WINDOWS NFS共享使用IP nfs共享设置win10_linux_56

默认vmware-tools将共享文件夹是挂载到/mnt/hgfs目录下面的,他是开机挂载的,所以我们重启也是这个路径,

WINDOWS NFS共享使用IP nfs共享设置win10_WINDOWS NFS共享使用IP_57

如果你想修改挂载的点的话,这就不是去fstab文件中了,而是到vmware-tools文件中修改,

vim /etc/init.d/vmware-tools

WINDOWS NFS共享使用IP nfs共享设置win10_centos_58

我们可以通过查找关键字(hgfs)来进行查找,挂载的路径是以变量的方式存在的,直接修改这个变量就可以了,

WINDOWS NFS共享使用IP nfs共享设置win10_linux_59

我们将挂载在修改为nfs目录,

WINDOWS NFS共享使用IP nfs共享设置win10_linux_60

重启下机器,看看情况,

WINDOWS NFS共享使用IP nfs共享设置win10_centos_61


这时候他的挂载带你就是在nfs下面了,

WINDOWS NFS共享使用IP nfs共享设置win10_linux_62

三、使用场景

我的目的?——》准备本地的ftp源,这是需要下载大量的软件包的,——》开始软件包是在虚机中存放的,

  • 感觉不安全,虚机这个东西还是有风险的,也许哪天挂了,无法恢复的话,会导致不可用
  • 容量问题,我已经添加了一个100G的空间,现在添加了centos7的源、epel源、mysql、zabbix、Q版OpenStack五个源软件包已经使用了七十八G了,尝试将ceph软件包下载,这是一部分就有20G直接将挂载盘的容量给撑爆了,
  • 存放方式,放在虚机中如果想找软件你是需要启动虚机然后将软件包下载的,在windows上是没法直接找到的,如果是使用文件共享的方式将windows的盘挂载过来,那么可以在windows上直接找到对应的rpm软件包,

使用文件共享之后——》文件共享就是将windows本地C盘的空间共享到Linux虚机上,将软件包下载到这里,保持下载的数据包可用,但是这有出现了问题

  • 如果使用nfs方式,每次启动电脑都要将Hane WIN软件启动,增加了启动时间
  • NFS是通过网络进行挂载的,如果网络有变动是否会导致挂载失效,因为windows10操作系统下,启动虚机是没法通过xshell直接连接的,还需要重新启动下Vmware的虚拟网卡才可以访问,这导致了网络不稳定,不确定NFS能够正常、平稳的挂载在Linux上使用
  • 传输速率,之前放在虚机的硬盘上本地硬盘DAS传输速率MAX,现在使用NFS等网络挂载,这就比较悬了,
  • 文件系统不同,我们Linux虚机的文件系统是xfs的,但是NFS共享上去的是nfs格式,不同文件格式的文件传输的时候占用的大小是不同的,这个使用的时候也是要注意的,

最终我还是选择使用第三种方式,通过Vmware-tools来实现文件共享!!!