开发者

MacOS实现连接Linux NFS服务器过程

目录
  • Ubuntu 服务器端设置
    • 1. 进入 root 权限,安装 NFS 服务
    • 2. 创建共享目录
    • 3. 配置 /etc/exports 文件
    • 4. 重新加载 NFS 配置
    • 5. 启动并检查 NFS 服务
    • 6. 检查共享目录
  • MAC 客户端设置
    • 1. 通过命令行 mount 挂载
    • 2. 通过图形界面连接到 NFS 服务器
    • 3. 自动挂载
  • 常见问题排查
    • 1. 权限不足
    • 2. 防火墙问题
    • 3. 挂载失败
    • 4. 多个子网
    • 5. insecure 参数未配置
      • insecure 的作用
      • inse编程客栈cure 的潜在安全问题
      • 何时使用 insecure 是可以接受的?
  • 总结

    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 文件

     vi /etc/exports
    

    添加:

    /data 192.168.1.0/24(rw,sync,insecure,no_subtree_check,no_root_squash)
    
    • rw:读写权限。
    • sync:确保数据实时同步写入到磁盘,防止数据丢失。
    • insecure:允许从非特权端口发起的连接。
    • no_subtree_check:关闭子目录检查js,提高性能。
    • no_root_squash:允许客户端以 root 身份访问(适用特定需求)。

    4. 重新加载 NFS 配置

    exportfs -rav
    

    5. 启动并检查 NFS 服务

    systemctl restart nfs-kernel-server
    systemctl enable nfs-kernel-server
    systemctl status nfs-kernel-server
    

    6. 检查共享目录

    exportfs -v
    

    Mac 客户端设置

    在 Mac 中可以通过命令行和图形界面连接到 NFS 服务器。

    1. 通过命令行 mount 挂载

    mkdir ~/NFS
    mount -t nfs 192.168.1.111:/data ~/NFS
    

    2. 通过图形界面连接到 NFS 服务器

    在 Mac 上,点击桌面菜单栏中的 前往 > 连接服务器。

    在弹出的窗口中,在服务器地址栏输入以下内容:

    MacOS实现连接Linux NFS服务器过程

    3. 自动挂载

    打开 /etc/fstab:

    vi /etcqvOkvfnfxB/fstab
    

    添加:

    192.168.1.100:/data /Users/your_username/NFS nfs rw,auto,nofail 0 0
    

    即可!

    常见问题排查

    1. 权限不足

    • 确保共享目录的权限适配你的需求(如 777 开放权限)。
    • 检查 Mac 客户端用户是否有写权限。

    2. 防http://www.devze.com火墙问题

    在 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 是必需的。

    总结

    以上为个人经验,希望能给大家一个参考,也希望大家多多支持编程客栈(www.devze.com)。

    0

    上一篇:

    下一篇:

    精彩评论

    暂无评论...
    验证码 换一张
    取 消

    最新运维

    运维排行榜