在桌面新建一个文件夹作为共享文件夹,任意名称均可,接下来在虚拟机中执行命令:
1 2 3 4 5 yum -y install open-vm-tools vmhgfs-fuse .host:/ /mnt/hgfs
执行完毕后需要在虚拟机软件中添加共享文件夹:
做完上述配置后,需要重启虚拟机:
接下来就OK了,为了排除防火墙干扰,最好直接关闭防火墙:
1 2 3 4 5 systemctl stop firewalld systemctl disable firewalld
共享方式二:借助SMB Samba是在Linux系统上实现SMB协议的一个免费软件,由服务器及客户端程序构成。 SMB(Server Messages Block, 信息服务块)是一种在局域网上共享文件和打印机的一种通信协议, 它为局域网内的不同计算机之间提供文件及打印机等资源的共享服务。 SMB协议是客户机/服务器型协议,客户机通过该协议可以访问服务器上的共享文件系统,打印机及其他资源。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 yum install -y samba smbpasswd -a root .... .... smbpasswd -e root
关于samba用户的命令如下:
1 2 3 4 5 6 7 8 9 10 11 smbpasswd -a sambauser smbpasswd -d sambauser smbpasswd -e sambauser smbpasswd -x sambauser
修改samba配置文件:
1 2 3 4 5 6 7 8 9 10 cp /etc/samba/smb.conf /etc/samba/smb.conf.back cd ~mkdir share-folder chmod -R 777 share-folder/ vim /etc/samba/smb.conf
smb.conf:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 [global] workgroup = SAMBA security = user passdb backend = tdbsam printing = cups printcap name = cups load printers = yes cups options = raw [myshare] comment = MyShareFolder path = /root/share-folder writable = yes browseable = Yes create mask = 0664 force create mode = 0664 directory mask = 0775 [printers] comment = All Printers path = /var/tmp printable = Yes create mask = 0600 browseable = No [print$] comment = Printer Drivers path = /var/lib/samba/drivers write list = @printadmin root force group = @printadmin create mask = 0664 directory mask = 0775
共享默认会将用户的主目录共享 , 这是不安全的 , 所以将其注释掉了。
现在启动/停止/重启服务命令都是一致的:
1 2 3 4 5 6 7 8 9 10 11 systemctl start smb systemctl stop smb systemctl restart smb systemctl status smb
如果 Windows 下访问 Linux 下共享目录, 提示没有权限:
1、确保 Linux 下防火墙关闭或者是开放共享目录权限
2、确保 Samba 服务器配置文件 smb.conf 设置没有问题
3、确保 setlinux 关闭 , 可以用 setenforce 0 命令执行; 默认 SELinux 禁止网络上对 Samba 服务器上的共享目录进行写操作
Samb 还需要开放下面四个端口:
1 UDP 137、UDP 138、TCP 139、TCP 445
云服务器文件夹共享 由于云服务器445端口不开放,所以需要修改服务器端口,也就是smb ports = 4455这一句配置:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 [global] workgroup = SAMBA security = user passdb backend = tdbsam printing = cups printcap name = cups load printers = yes cups options = raw smb ports = 4455 [tenent-cloud] comment = MyShareFolder path = /root/tenent-cloud writable = yes browseable = Yes create mask = 0664 force create mode = 0664 directory mask = 0775 [printers] comment = All Printers path = /var/tmp printable = Yes create mask = 0600 browseable = No [print$] comment = Printer Drivers path = /var/lib/samba/drivers write list = @printadmin root force group = @printadmin create mask = 0664 directory mask = 0775
当然也可以定义其他端口,我这里选择的端口是4455,需要在云服务器的安全组配置里进出设置开放4455端口。接下来在Windows上配置端口转发,因为Windows默认配置为445,打开管理员powershell:
1 2 3 4 5 # 配置端口转发 netsh interface portproxy add v4tov4 listenport=445 listenaddress=127.0.0.1 connectport=4455 connectaddress=85.80.220.107 # 删除配置的端口转发 netsh interface portproxy delete v4tov4 listenaddress=85.80.220.107 listenport=4455
上面的例子中,85.80.220.107是云服务的地址,4455是云服务的端口,接下来只需要在本地访问127.0.0.1即可访问到云服务器的服务:
如果访问到的是本地的共享,那么需要把本地的文件共享服务给关闭(必须禁用,再重启电脑):
这样电脑就等于有一个免费的网盘了。