
完成本课程后,学习者将能够:
***
在好租上班的时候,把开发机的目录映射到本地的磁盘目录,每个人只关心web目录中的开发代码,而不用考虑服务的搭建环境、比如PHP或者Nginx需要的扩展,这样大大方便了小伙伴们的开发效率,通过网络访问远程文件,实现文件共享是提高开发效率的基石,网络文件共享是企业 IT 架构中核心需求之一,其核心目标是让不同主机通过网络访问远程文件,实现 “文件即服务”。
企业级文件共享服务NFS(Network File System)和 Samba,Linux版本 Centos7.9,分别挂载到windows和其他的Linux上。
1、yum 安装 NFS 服务,设置服务开机自启, 启动服务。
sudo yum install -y nfs-utils rpcbind
# 设置服务开机自启
sudo systemctl enable rpcbind
sudo systemctl enable nfs-server
sudo systemctl enable nfs-lock
sudo systemctl enable nfs-idmap
# 启动服务
sudo systemctl start rpcbind
sudo systemctl start nfs-server
sudo systemctl start nfs-lock
sudo systemctl start nfs-idmap2、创建共享目录/home/wwwroot/share, 这里是web服务的目录,并设置权限。
# 创建共享目录
sudo mkdir -p /home/wwwroot/share
# 设置目录权限
sudo chmod -R 755 /home/wwwroot/share
sudo chown -R nobody:nobody /home/wwwroot/share3、配置 NFS 共享参数,对于共享参数要做一点详细的说明和解释,搭建NFS服务后,配置文件是不存在的需要手动去创建。
# 编辑exports文件
sudo vim /etc/exports
# 允许整个网段读写访问
/home/wwwroot/share 192.168.1.0/24(rw,sync,no_subtree_check)
# 允许特定IP只读访问
/home/wwwroot/share 192.168.1.100(ro,sync,no_subtree_check)
# 允许多个网段访问
/home/wwwroot/share 192.168.1.0/24(rw,sync) 10.0.0.0/8(ro,sync)
# 匿名访问配置
/home/wwwroot/share *(rw,sync,no_root_squash)配置说明:
*,表示允许所有访问chmod 755)。sync服务端同步写入,async 服务端异步写入root_squash无特权用户、root_squash 客户端 root 权限(极度危险),no_all_squash 保留客户端普通用户的 UID/GID(与服务端一致时才能正常访问)。# 重新导出共享目录
sudo exportfs -ra
# 查看共享情况
sudo exportfs -v
# 重新加载NFS服务
sudo systemctl reload nfs-server4、配置防火墙,允许外部网络访问,配置完别忘了重启服务。
# 添加NFS服务到防火墙
sudo firewall-cmd --permanent --add-service=nfs
sudo firewall-cmd --permanent --add-service=mountd
sudo firewall-cmd --permanent --add-service=rpc-bind
sudo firewall-cmd --reload
# 或者手动指定端口
sudo firewall-cmd --permanent --add-port=2049/tcp
sudo firewall-cmd --permanent --add-port=20048/tcp
sudo firewall-cmd --permanent --add-port=111/tcp
sudo firewall-cmd --permanent --add-port=111/udp
sudo firewall-cmd --reload5、验证NFS服务状态
# 查看NFS服务状态
systemctl status nfs-server
# 查看RPC服务注册情况
rpcinfo -p
# 查看本机共享列表
showmount -e localhost
# 查看共享统计
nfsstat -s所有的准备都有就绪,到了这里Nfs服务的搭建就完毕了。
1、安装NFS 客户端

在 Windows 11 上测试 NFS 服务,Windows 11的家庭版需要先升级到专业版,家庭版没有Nfs服务的,安装步骤如下:

2、添加本地磁盘映射
这是最直观的方法,适用于大多数用户。
Win + E)。驱动器:选择一个你喜欢的驱动器号(例如:Z:)。
文件夹:输入你的 NFS 共享地址。格式为:\\服务器IP地址或主机名\共享路径。
\,而不是 NFS 标准的正斜杠 /。\\192.168.31.148\home\wwwroot\share点击 “完成”。
NFS Windows 11 乱码
典型,是由于 Windows 和 Linux 系统默认的字符编码不同导致的。CentOS 通常使用 UTF-8 编码,而 Windows 的 NFS 客户端默认使用 GBK 编码,因此在跨平台读写中文文件名时就会出现乱码。
乱码成因:在CentOS终端里看到的文件名已经是乱码,说明问题出在Windows写入时。因为Windows NFS客户端使用GBK编码写入,而Linux系统用UTF-8解读,导致乱码。
这是微软官方提供的一个解决方案,通过让Windows系统全局支持UTF-8编码来根治此问题,
intl.cpl,并打开它。
在NFS文件服务,在进行win/Unix/Linux共享时会发生乱码的情况,是因为Nfs 核心定位是Unix/Linux 系统间的原生文件共享。它允许客户端将服务器的共享目录 “挂载” 到本地文件系统,后续访问该目录时,操作逻辑与本地文件完全一致,这就产生Samba,一个跨 Windows 与 Unix 的兼容方案。
1、安装samba服务
sudo yum update -y
sudo yum install -y samba samba-client samba-common2、配置
配置参数说明:
[samba]:共享名称,客户端访问时会显示此名称comment:对共享目录的描述path:要共享的目录路径public:是否允许匿名访问,no 表示不允许writable:是否允许写入操作,yes 表示允许valid users:允许访问的用户,这里指定为 starkcreate mask:新创建文件的权限掩码[samba]
comment = Stark's shared directory
path = /home/share
public = no
writable = yes
valid users = stark
create mask = 0644
directory mask = 0755
browseable = yes 写服务配置的时候,建议先备份在进行配置:
sudo cp /etc/samba/smb.conf /etc/samba/smb.conf.back
sudo vim /etc/samba/smb.conf3、创建 Samba 用户,这里需要注意的点是这个用户必须是已存在的系统用户,用来额外的管理Samba 服务,也就是和Samba 服务进行授权和关联,这里设置的密码是 m123456。
[stark@bogon share]$ sudo smbpasswd -a stark
New SMB password:
Retype new SMB password:
Added user stark.授权后,需要启用smbba用户。
#启用smbba用户
[stark@localhost share]$ sudo smbpasswd -e stark
Enabled user stark.4、配置权限
sudo chmod 755 /home/share
sudo chown stark:stark /home/share5、配置防火墙和SELinux
sudo firewall-cmd --permanent --add-service=samba
sudo firewall-cmd --reload
sudo semanage fcontext -a -t samba_share_t "/home/share(/.*)?"
sudo restorecon -Rv /home/share6、启动并设置开机自启
#启动samba服务
sudo systemctl start smb
#设置开机自启
sudo systemctl enable smb
#检查服务状态
sudo systemctl status smb1、安装Samba 客户端

在 Windows 11 上测试 NFS 服务,Windows 11的家庭版需要先升级到专业版,家庭版没有Nfs服务的,安装步骤如下:
2、添加本地磁盘映射

这是最直观的方法,适用于大多数用户。
Win + E)。添加一个网络位置:\\\192.168.31.148\share,这个share是配置里的[]名称,不然链接不上,此处哭晕!
文件夹:输入你的 NFS 共享地址。格式为:\\服务器IP地址或主机名\共享路径。
点击 “完成”。
Win11 在本地映射的Nfs、和Samba的服务就搞定了!

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。