CentOS访问Windows10的共享目录
关于Windows共享目录所有你想知道的都记录在这里了
零、先说明具体环境
Windows 10专业版 1909,18363.778,ip为: 192.168.1.27
VMware Workstation Pro 15.5.0
VMware 安装 CentOS 7.7,最小化安装,ip为: 192.168.1.32
注意Vmware的虚拟机网络,要选择 【桥接模式】,这样其它机子才能访问到虚拟机。
一、Win10设置不用帐号密码的共享目录
1. 新建共享目录
选择需要共享的目录,比如说 D:\PUBLIC
在该目录点击右键 —> 选择“属性” —> 选择标签“共享” —> 下拉选项选择“Everyone” —> 点击“添加”按键 —> 修改“权限级别”为“读取/写入” —> 点击下边“共享”按键 —> 点击“完成“按键。
2. 设置网络共享中心
打开 控制面板 —> 网络和Internet —> 网络和共享中心
Win10的这个【网络和共享中心】隐藏的比较深,还真不好找。这有个快速打开 网络和共享中心的办法:可以用【Win+R】运行,复制输入以下命令:(有点长哈)
control /name Microsoft.NetworkAndSharingCenter
网络和共享中心 —> 更改高级共享设置 —> 展示“所有网络” —> 拉到最底下 —> 密码保护的共享,修改为“无密码保护的共享“ —> 保存更改。
设置完成。
检测一下,【Win+R】运行,输入 \\192.168.1.27
,可以看到 public
目录,也不需要用户名密码。
3. 设置防火墙
正常情况下,不需要修改防火墙设置。但是当你确认共享设置无误,就是访问不了时,你可以尝试先关闭防火墙。
用【Win+R】运行,复制输入以下命令打开Windows防火墙设置界面:
Firewall.cpl
点击左侧的 “启用或关闭Windows Defender防火墙” —> 关闭防火墙 —> 确定。
如果不想(不能)停用防火墙,也可以在防火墙的“高级设置”中,修改规则,确保打开 TCP 端口 445。
在设置后重新启动 Windows。
二、Win10设置必须帐号和密码的共享目录
1. 新建一个专门用于访问共享目录的用户
右键“此电脑” —> 点“管理”菜单项,打开“计算机管理”面板 —> 选择“系统工具–本地用户和组” —> 选择“用户” —> 右键“新用户(N)…” —> 输入用户名密码 —> 取消“下次登录时须更改密码” —> 选中“用户不能更改密码”,选中“密码永不过期” —> 点击“创建”。
2. 设置共享的文件夹
选择需要共享的目录,比如说 D:\PRIVATE
在该目录点击右键 —> 选择“属性” —> 选择标签“共享” —> 下拉选项选择上一步新建的用户odin
—> 点击“添加”按键 —> 修改“权限级别”为“读取/写入” —> 点击下边“共享”按键 —> 点击“完成“按键。
三、设置CentOS7访问Windows10的共享目录
1. 安装Samba软件
Win10的共享目录,就是Samba协议,我们要在Linux访问,就得安装Samba客户端软件。
yum -y install samba-client cifs-utils
smbclient -L //192.168.1.27 -N
输出内容如下:
Sharename Type Comment
--------- ---- -------
ADMIN$ Disk 远程管理
C$ Disk 默认共享
D$ Disk 默认共享
E$ Disk 默认共享
IPC$ IPC 远程 IPC
PRIVATE Disk
PUBLIC Disk 这里是说明文字
Reconnecting with SMB1 for workgroup listing.
do_connect: Connection to 192.168.1.27 failed (Error NT_STATUS_RESOURCE_NAME_NOT_FOUND)
Failed to connect with SMB1 -- no workgroup available
忽略掉默认共享那些内容,可以看到 192.168.1.27
有2个共享,PRIVATE
和 PUBLIC
,就是本文前面设置的那两个共享目录。
后面显示的 SMB1 出错,并没有关系,忽略它就行。
这只是出于安全考虑,Win10的1709版本之后默认关闭了 SMB1.0/CIFS文件共享支持。网上有很多资料,说解决办法是去设置 启用Win10的SMB1.0/CIFS文件共享支持。这里反对这种做法。
这都 2020 年啦,你确定还要使用 1983 年的 SMB1.0协议吗?三十多年了,不管是从安全,还是从传输速度考虑都不应该用它。
mkdir /mnt/public
mkdir /mnt/private
mount.cifs //192.168.1.27/public /mnt/public
提示输入密码,随便回车就行。因为这个是不用帐号密码的共享目录
mount.cifs //192.168.1.27/private /mnt/private
提示输入密码,我们输入正确密码,也报错。必须用下面的方式:
mount.cifs -o username="用户名",password="密码" //192.168.1.27/private /mnt/private
对应本文所设置的用户名密码,是这样子:
mount.cifs -o username="odin",password="123456" //192.168.1.27/private /mnt/private
然后就跟操作本地文件一样正常操作了。用完后,可以这样解除远程共享目录:
umount /mnt/public
umount /mnt/private
2. 设置CentOS开机自动挂载
自动加载方式1
编辑 /etc/fstab,添加下面一行
//192.168.1.27/private /mnt/private cifs username=odin,password=123456,gid=www,uid=www 0 0
其中username、password参数是 Windows的共享账户和密码 gid、uid是挂载到linux时文件所属用户组和用户名
自动加载方式2(推荐使用)
将加载命令,写到 rc.local 开机启动脚本中去
echo 'mount.cifs -o username="odin",password="123456",gid=www,uid=www //192.168.1.27/private /mnt/private' >> /etc/rc.d/rc.local
chmod +x /etc/rc.d/rc.local
推荐使用方式2,因为改fstab方式,如果加载失败(Win10共享关掉了,Win10没开机之类),有可能导致CentOS开机失败。