以 Ubuntu 为例。
Ubuntu 服务器端设置
1. 进入 root 权限,安装 NFS 服务:
- apt-get update
- apt-get install nfs-kernel-server
复制代码 2. 创建共享目录:
- mkdir /data
- chown nobody:nogroup /data
- chmod 777 /data
复制代码 3. 配置 /etc/exports 文件:
添加:
- /data 192.168.1.0/24(rw,sync,insecure,no_subtree_check,no_root_squash)
复制代码
- rw:读写权限。
- sync:确保数据实时同步写入到磁盘,防止数据丢失。
- insecure:允许从非特权端口发起的连接。
- no_subtree_check:关闭子目录查抄,提高性能。
- no_root_squash:允许客户端以 root 身份访问(适用特定需求)。
4. 重新加载 NFS 配置
5. 启动并查抄 NFS 服务
- systemctl restart nfs-kernel-server
- systemctl enable nfs-kernel-server
- systemctl status nfs-kernel-server
复制代码 6. 查抄共享目录:
Mac 客户端设置
在 Mac 中可以通过下令行和图形界面连接到 NFS 服务器。
1. 通过下令行 mount 挂载
- mkdir ~/NFS
- mount -t nfs 192.168.1.111:/data ~/NFS
复制代码 2. 通过图形界面连接到 NFS 服务器
在 Mac 上,点击桌面菜单栏中的 前去 > 连接服务器。在弹出的窗口中,在服务器地点栏输入以下内容:
3. 自动挂载
打开 /etc/fstab:
添加:
- 192.168.1.100:/data /Users/your_username/NFS nfs rw,auto,nofail 0 0
复制代码 即可!
常见问题排查
1. 权限不足
- 确保共享目录的权限适配你的需求(如 777 开放权限)。
- 查抄 Mac 客户端用户是否有写权限。
2. 防火墙问题
在 Ubuntu 上允许 NFS 服务通过防火墙:
- ufw allow from 192.168.1.0/24 to any port nfs
- ufw allow from 192.168.2.0/24 to any port nfs
复制代码 3. 挂载失败
- 确保 Mac 可以 ping 通 Ubuntu。
- 确认 /etc/exports 文件中配置无误。
4. 多个子网
如果客户端所属多个子网网段,需将每个网段都写上.
- /data 192.168.1.0/24(rw,sync,insecure,no_subtree_check,no_root_squash)
- /data 192.168.2.0/24(rw,sync,insecure,no_subtree_check,no_root_squash)
复制代码 5. insecure 参数未配置
如果 MacOS 访问不到,切记必要将 insecure 参数加上。这个问题许多同砚都碰到过,可以展开详细的说说。
insecure 的作用
insecure 是 macOS 挂载 NFS 时的关键配置,特殊是使用 Finder 挂载。如果没有这个选项,macOS 使用的高端口会被服务器拒绝,从而导致挂载失败。
默认情况下,NFS 服务器只担当从 特权端口(小于1024) 发起的连接。这是因为只有 root 用户可以或许使用特权端口,从而防止平常用户模拟特权连接。
添加 insecure 后,NFS 服务器会担当来自 非特权端口(大于1024) 的连接。这是为了兼容一些客户端(比方 macOS Finder)在非特权端口发起的请求。
insecure 的潜伏安全问题
- 默认情况下,要求客户端使用特权端口是一种简单的安全措施,可以减少平常用户伪装成受信任客户端的风险。
- 启用 insecure 后,攻击者可以从非特权端口发起请求,更容易伪造连接。
- 如果你的网络环境不安全(如公网或存在不受信任的装备),启用 insecure 大概会允许未经授权的客户端连接并访问数据。
- 如果同时启用了 no_root_squash,恶意客户端大概以 root 身份访问共享目录,导致数据被修改或删除。
何时使用 insecure 是可以担当的?
在以了局景中,insecure 是可以担当的:
- 如果你的 NFS 服务器和客户端在一个受信任的局域网中,且没有外部访问(如防火墙限制),使用
insecure 是可以担当的。
- 一些客户端(如 macOS Finder)必要使用非特权端口才能挂载 NFS,因此 insecure 是必须的。
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。 |