从macOS客户端在Ubuntu Linux服务器上挂载NFS卷


14

我有一台Ubuntu 14.04 LTS服务器(在我的情况下是本地VM)。如何使用NFS从Mac OS X Yosemite客户端在Linux服务器上安装目录?

Answers:


35

设置Linux服务器

  1. 按照Ubuntu NFS指南安装NFS服务器:

    sudo apt-get install nfs-kernel-server
    
  2. 编辑/etc/exports

    sudo nano /etc/exports
    

    现在添加类似于以下内容的行:

    /home/ubuntu 172.16.238.0/24(insecure,rw,all_squash,anonuid=1000,anongid=1000,no_subtree_check)
    
    • /home/ubuntu 是要导出的目录
    • 172.16.238.0/24是接受连接的IP地址。Mac客户端的IP地址应在此范围内。使用*允许从任何IP地址。(但是请注意不要使您的NFS服务器可用于整个Internet!)
    • insecure 表示接受来自非特权(较高)端口号的连接
    • rw 表示读写
    • all_squash,anonuid=1000,anongid=1000强制所有读写由具有UID / GID 1000(1000是ubuntu我的服务器上的默认用户/组)的用户/组执行。id在服务器上运行以查找您的UID / GID。您需要这些选项,除非您的Ubuntu服务器和Mac客户端对主要用户使用相同的UID / GID。
    • no_subtree_check 是表演的东西
  3. 保存文件并运行

    sudo exportfs -vra
    

    重新加载NFS导出。(我不确定该-a选项是否必要。)

设置Mac客户端

  1. 编辑auto_master文件:

    sudo nano /etc/auto_master
    

    并将行开头更改/net为以下内容:

    /net            -hosts      -nobrowse,nosuid,locallocks,nfc,actimeo=1
    
    • locallocks在客户端而不是服务器上创建锁。没有此功能,Finder会变得非常缓慢,并且永远需要显示目录。
    • nfc 使UTF-8文件名起作用
    • actimeo=1将属性缓存超时设置得尽可能短。请注意,将其设置为0(或添加noac)会使Finder在服务器上删除文件时不会注意到,因此我们无法使用它。
    • 请注意,我们不在nfsvers=4这里使用。我在Mac上出现了内核恐慌,因此我回到了默认设置(NFSv3)。
  2. 通过运行刷新自动挂载

    sudo automount -vc
    

    (如果您以前尝试挂载NFS卷,首先卸载它,就像这样:sudo umount -f /net/fileserver.local/home/ubuntu

  3. 在Finder菜单中,选择转到->转到文件夹,然后输入/net/SERVER_HOST_NAME,例如/net/fileserver.local

    您应该在其中找到导出的目录,例如在/net/fileserver.local/home/ubuntu。将此目录拖到Finder侧边栏中,以方便将来访问。


另外,有什么方法可以修复权限。我必须从Mac访问我的文件的唯一方法是给777个权限,我想分享:(否则系统显示我一条消息,告诉我我没有权限浏览文件夹。
卡洛斯·维加

@carlosvega all_squash,anonuid=1000,anongid=1000选项为我处理权限-Ubuntu 客户端上UID 1000拥有的所有内容都可以从Mac客户端访问,所以没有问题,因此无需更改为777。–
Jo Liss

5
简短的评论,如果您只是想在Mac端“即时”安装,这对我sudo mount -t nfs -o resvport 172.16.238.x:/home/ubuntu /Users/xyz/ubuntu
Scott Carlson

适用于Mac OSX Sierra和Ubuntu 16.04
Antonios Hadjigeorgalis

2
人们不知道这个绝妙的答案背后有多少反复试验。特别是在安装(或安装rsync)非MacOS服务器时,“ nfc”部分是CRUCIAL 。最初您不会注意到,但是OS X上的UTF-8不同于其他地方。没有它,您的文件名很可能会出现乱码,并且需要数小时才能修复。我知道我不能用评论说“谢谢”,所以在这里就结束了;)
DanielSmedegaardBuus
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.