Windows Server 端配置

开启必要的服务组件

以共享 Windows Server 2016 系统下的文件为例。

  1. 进入 服务器管理器 页面, 选择工具栏上 工具 > 服务

  2. 找到 ServerFunction Discovery Resource PublicationSSDP DiscoveryUPnP Device HostComputer Browser 这 5 个服务,并启动。操作如下:

    1. 右键点击 Server,选择 属性

    2. 启动类型 选择 自动,并点击 应用

    3. 服务状态 选择 启动,并点击 确定

Function Discovery Resource PublicationSSDP DiscoveryUPnP Device HostComputer Browser 也进行同样的操作。

说明

共享无法开启网络发现主要原因是 "网络发现" 所依赖的服务没有启用,或者被禁用。

配置网卡选项

  1. 打开 控制面板,点击左侧的 更改适配器设置

  2. 右键网卡,选择 属性

  3. 在弹出的对话框中勾中 Microsoft 网络客户端Microsoft 网络的文件和打印机共享,并点击 确定

  4. 点击左侧的 更改高级共享设置

  5. 确保网络为 当前配置文件 项下的各个与共享相关的选项都启用了。

    faq win share 1

安装 SMB 1.0/CIFS 文件共享支持

  1. 进入 服务器管理器,选择工具栏的 管理 > 添加角色和功能

  2. 在弹出的对话框中勾中 SMB 1.0/CIFS 文件共享支持SMBBandwidth Limit,点击 下一步

  3. 选择 安装,等待安装结束。

配置防火墙入站\出站规则

  1. 网络和共享中心 选择左下角的 Windows 防火墙

  2. 进入 Windows 防火墙 页面,选择 高级设置

  3. 选择 入站规则,找到如下规则,都选择启用。

    faq win share 2

创建文件进行共享

  1. 在云服务器 1 中创建一个文件夹 client1 ,右键该文件,选择 属性

  2. 选择 共享 标签页,点击 共享

  3. 选择一个共享用户,这里我们选择 everyone,然后点击 添加

    faq win share 3
  4. 根据需求选择权限,这里我们选择 读取/写入

    faq win share 4
  5. 点击 共享 后,会显示你的文件夹已共享,点击 完成

  6. 进入 client1 文件夹,创建一个 text 文档。

Windows客户端访问

  1. 登录另一台 Windows 云服务器,同样需要重复上述的配置步骤,配置完成后进入到 我的电脑 > 网络

    faq win share 5

    可以看到 2 台云服务器已经位于同一个网络中,其中 i-t8j3zdhd 是之前创建了共享文件夹 1 的云服务器,双击 i-t8j3zdhd 云服务器,我们可以看到共享的文件夹 client1 和文件夹中的文件 text。

    faq win share 6
    faq win share 7

    现在已经可以看到云服务器 1 中共享的内容了。

  2. 现在测试下客户端云服务器 2 的写入权限,在上边的文件路径中,我们创建一个文档 text2。

    faq win share 8
  3. 登录云服务器 1,直接进入到 C 盘,client 文件夹。

    faq win share 9

    看到云服务器 2 创建的文件在云服务器 1 中也可以看到了。至此 Windows 间的文件共享已完成。

Linux 客户端访问

安装 samba 客户端

这里,以 CentOS 7.7 64bit 系统作为客户端。

# yum install samba-client
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
 * base: ftp.sjtu.edu.cn
 * extras: mirrors.163.com
 * updates: ftp.sjtu.edu.cn
Resolving Dependencies
--> Running transaction check
---> Package samba-client.x86_64 0:4.10.4-11.el7_8 will be installed
--> Processing Dependency: samba-common-libs = 4.10.4-11.el7_8 for package: samba-client-4.10.4-11.el7_8.x86_64
--> Processing Dependency: samba-common = 4.10.4-11.el7_8 for package: samba-client-4.10.4-11.el7_8.x86_64
--> Processing Dependency: samba-common = 4.10.4-11.el7_8 for package: samba-client-4.10.4-11.el7_8.x86_64
--> Processing Dependency: samba-client-libs = 4.10.4-11.el7_8 for package: samba-client-4.10.4-11.el7_8.x86_64
--> Processing Dependency: libsmbclient = 4.10.4-11.el7_8 for package: samba-client-4.10.4-11.el7_8.x86_64
...

Installed:
  samba-client.x86_64 0:4.10.4-11.el7_8
Dependency Installed:
  avahi-libs.x86_64 0:0.6.31-20.el7             cups-libs.x86_64 1:1.6.3-43.el7          gnutls.x86_64 0:3.3.29-9.el7_6                libarchive.x86_64 0:3.1.2-14.el7_7
  libldb.x86_64 0:1.5.4-1.el7                   libsmbclient.x86_64 0:4.10.4-11.el7_8    libtalloc.x86_64 0:2.1.16-1.el7               libtdb.x86_64 0:1.3.18-1.el7
  libtevent.x86_64 0:0.9.39-1.el7               libwbclient.x86_64 0:4.10.4-11.el7_8     nettle.x86_64 0:2.7.1-8.el7                   pyldb.x86_64 0:1.5.4-1.el7
  pytalloc.x86_64 0:2.1.16-1.el7                python-tdb.x86_64 0:1.3.18-1.el7         samba-client-libs.x86_64 0:4.10.4-11.el7_8    samba-common.noarch 0:4.10.4-11.el7_8
  samba-common-libs.x86_64 0:4.10.4-11.el7_8    samba-libs.x86_64 0:4.10.4-11.el7_8      trousers.x86_64 0:0.3.14-2.el7
Complete!

登录 server 端

# smbclient //192.168.2.21/client1
Enter SAMBA\root's password:
Try "help" to get a list of possible commands.
smb: \>l
  .                                   D        0  Fri Jun 26 13:23:01 2020
  ..                                  D        0  Fri Jun 26 13:23:01 2020
  text.txt                            A        0  Fri Jun 26 11:42:21 2020
  text2.txt                           A        0  Fri Jun 26 13:22:58 2020

		12978687 blocks of size 4096. 9332037 blocks available

可以看到 server 端的文件了。下一步需要把 server 端的共享目录挂载到本地。

安装 cifs-utils 软件包

# yum instal cifs-utils
Loaded plugins: fastestmirror
No such command: instal. Please use /usr/bin/yum --help
[root@i-1mhlm0mp ~]# yum install cifs-utils
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
 * base: ftp.sjtu.edu.cn
 * extras: mirrors.163.com
 * updates: ftp.sjtu.edu.cn
Resolving Dependencies
--> Running transaction check
---> Package cifs-utils.x86_64 0:6.2-10.el7 will be installed
--> Processing Dependency: keyutils for package: cifs-utils-6.2-10.el7.x86_64
...
Installed:
  cifs-utils.x86_64 0:6.2-10.el7
Dependency Installed:
  keyutils.x86_64 0:1.5.8-3.el7                                           Complete!

Linux 客户端挂载共享文件夹到本地

# mount -t cifs  //192.168.2.21/client1  /mnt/
Password for root@//192.168.2.21/client1:
[root@i-1mhlm0mp ~]# df -h
Filesystem              Size  Used Avail Use% Mounted on
devtmpfs                486M     0  486M   0% /dev
tmpfs                   496M     0  496M   0% /dev/shm
tmpfs                   496M   13M  483M   3% /run
tmpfs                   496M     0  496M   0% /sys/fs/cgroup
/dev/vda1                20G  1.4G   18G   8% /
tmpfs                   100M     0  100M   0% /run/user/0
//192.168.2.21/client1   50G   14G   36G  29% /mnt

进入到 /mnt 挂载点,写入一些数据。

# cd /mnt/
[root@i-1mhlm0mp mnt]# ll
total 0
-rwxr-xr-x 1 root root 0 Jun 26 13:22 text2.txt
-rwxr-xr-x 1 root root 0 Jun 26 11:42 text.txt
[root@i-1mhlm0mp mnt]# touch {1..5}
[root@i-1mhlm0mp mnt]# ls
1  2  3  4  5  text2.txt  text.txt

我们到 server 端看下是否可以看到 Linux 客户端写入的数据。

faq win share 10

可以看到,Linux 客户端写入的数据已经可以在 server 端看到了。