Montar el volumen NFS en el servidor Ubuntu Linux desde el cliente macOS

14

Tengo un servidor Ubuntu 14.04 LTS (una VM local en mi caso). ¿Cómo monte un directorio en el servidor Linux desde un cliente Mac OS X Yosemite, usando NFS?

Jo Liss
fuente

Respuestas:

35

Configurar el servidor Linux

  1. Instale el servidor NFS según la guía Ubuntu NFS :

    sudo apt-get install nfs-kernel-server
    
  2. Editar /etc/exports:

    sudo nano /etc/exports
    

    Ahora agregue una línea similar a esta:

    /home/ubuntu 172.16.238.0/24(insecure,rw,all_squash,anonuid=1000,anongid=1000,no_subtree_check)
    
    • /home/ubuntu es el directorio para exportar
    • 172.16.238.0/24son las direcciones IP para aceptar conexiones. La dirección IP del cliente Mac debe estar en este rango. Use *para permitir desde cualquier dirección IP. (¡Pero tenga cuidado de no hacer que su servidor NFS esté disponible para todo Internet!)
    • insecure significa aceptar conexiones de números de puerto no privilegiados (superiores)
    • rw significa lectura-escritura
    • all_squash,anonuid=1000,anongid=1000obliga al usuario / grupo a realizar todas las lecturas y escrituras con UID / GID 1000 (1000 es el ubuntuusuario / grupo predeterminado en mi servidor). Ejecute iden el servidor para averiguar su UID / GID. Necesita estas opciones a menos que su servidor Ubuntu y su cliente Mac utilicen el mismo UID / GID para el usuario principal.
    • no_subtree_check es una cosa de rendimiento
  3. Guarda el archivo y ejecuta

    sudo exportfs -vra
    

    para recargar las exportaciones NFS. (No estoy seguro de si la -aopción es necesaria).

Configurar el cliente Mac

  1. Edite el archivo auto_master :

    sudo nano /etc/auto_master
    

    y cambie la línea que comienza /netpor la siguiente:

    /net            -hosts      -nobrowse,nosuid,locallocks,nfc,actimeo=1
    
    • locallockscrea bloqueos en el cliente en lugar de en el servidor. Sin esto, Finder se vuelve muy lento y tarda una eternidad en mostrar directorios.
    • nfc hace que los nombres de archivo UTF-8 funcionen
    • actimeo=1configura el tiempo de espera de caché de atributos lo más corto posible. Tenga en cuenta que establecerlo en 0(o agregar noac) hace que Finder no se dé cuenta cuando se elimina un archivo en el servidor, por lo que no podemos usarlo.
    • Tenga en cuenta que no estamos usando nfsvers=4aquí. Obtuve kernel panics en la Mac con esto, así que volví a la configuración predeterminada (NFSv3).
  2. Actualice los montajes automáticos ejecutando

    sudo automount -vc
    

    (Si anteriormente trató de montar un volumen NFS, desmontarlo primero, así: sudo umount -f /net/fileserver.local/home/ubuntu)

  3. En el menú Finder, seleccione Ir -> Ir a la carpeta y escriba /net/SERVER_HOST_NAME, por ejemplo /net/fileserver.local.

    Debería encontrar su directorio exportado allí, por ejemplo, en /net/fileserver.local/home/ubuntu. Arrastre este directorio a la barra lateral del Finder para facilitar el acceso en el futuro.

Jo Liss
fuente
Además, ¿hay alguna forma de arreglar los permisos? La única forma en que tengo que acceder a mis archivos desde Mac es otorgando permisos 777 a la carpeta que quiero compartir :( de lo contrario, el sistema me muestra un mensaje diciéndome que no tengo permisos para explorar la carpeta.
Carlos Vega
@carlosvega Las all_squash,anonuid=1000,anongid=1000opciones se encargan de los permisos para mí: todo lo que pertenece a UID 1000 en el servidor Ubuntu se puede acceder desde el cliente Mac sin ningún problema, por lo que no hay necesidad de cambiarlo a 777.
Jo Liss
55
Solo un comentario rápido, si solo desea montar "sobre la marcha" en el lado de Mac, esto funciona para mí:sudo mount -t nfs -o resvport 172.16.238.x:/home/ubuntu /Users/xyz/ubuntu
Scott Carlson
funciona para mí con Mac OSX Sierra y Ubuntu 16.04
Antonios Hadjigeorgalis
2
La gente no se da cuenta de cuánto prueba y error hay detrás de esta brillante respuesta. Especialmente la parte "nfc" es CRUCIAL cuando se montan (o rsyncing) servidores que no son MacOS. Al principio no lo notará, pero el UTF-8 no es el mismo en OS X que en cualquier otro lugar. Sin él, sus nombres de archivo podrían muy bien ser confusos y requerir horas y horas para solucionarlos más adelante. Sé que no puedo usar un comentario para decir "gracias", así que lo terminaré aquí;)
DanielSmedegaardBuus