NFS (Network File System) ist ein stabiles und einfach einzurichtendes Protokoll mit dem Daten über ein Netzwerk übertragen werden können.
Folgendes Howto erklärt wie wir unter Debian Wheezy einen NFS Server einrichten und mit einem Client auf die NFS Freigabe zugreifen können. Es werden folgende Systeme verwendet.
- Server: 192.168.0.1
- Client: 192.168.0.2
NFS Server installieren
Folgende Packete werden auf dem Server installiert
1 |
apt-get install nfs-kernel-server nfs-common |
Freigaben einrichten
Als erstes legen wir einen Ordner an, den wir für den Client freigeben möchten und setzen den Eigentümer auf nobody.
1 2 |
mkdir /home/client_1 chown nobody:nogroup /home/client_1 |
Nun müssen wir diese Ordner noch für den Zugriff freigeben. Dies konfigurieren wir in der Datei /etc/exports
1 |
nano /etc/exports |
1 2 3 4 5 6 7 8 9 10 11 12 |
# /etc/exports: the access control list for filesystems which may be exported # to NFS clients. See exports(5). # # Example for NFSv2 and NFSv3: # /srv/homes hostname1(rw,sync,no_subtree_check) hostname2(ro,sync,no_subtree_check) # # Example for NFSv4: # /srv/nfs4 gss/krb5i(rw,sync,fsid=0,crossmnt,no_subtree_check) # /srv/nfs4/homes gss/krb5i(rw,sync,no_subtree_check) # /home/client_1 192.168.0.2(rw,sync,no_subtree_check) |
Hier konfigurieren wir dass der Client mit der IP-Adresse 192.168.0.2 auf die Freigabe zugreifen darf. Alternativ könnten wir auch unserem komplettem Subnetz den Zugriff mit 192.168.0.0/24 erlauben. Nachdem wir diese Einstellung vorgenommen haben, starten wir den NFS Server neu.
1 |
/etc/init.d/nfs-kernel-server restart |
NFS Freigabe auf dem Client einhängen
Zuerst müssen wir folgendes Packet auf dem Client installieren
1 |
apt-get install nfs-common |
Als nächstes legen wir auch auf dem Client einen Ordner an in den wir die Freigabe einhängen möchten
1 |
mkdir -p /mnt/nfs/home/client_1 |
Danach mounten wir die die Freigabe in den Ordner
1 |
mount 192.168.0.1:/home/client_1 /mnt/nfs/home/client_1 |
Mit df -h sollten wir das eingehängte NFS Verzeichnis jetzt sehen können.
1 |
df -h |
1 2 3 |
Filesystem Size Used Avail Use% Mounted on ... 192.168.0.1:/home/client_1 1.8T 195M 1.7T 1% /mnt/nfs/home/client_1 |
NFS beim hochfahren einhängen
Im oben beschriebenem Teil haben wir das NFS Laufwerk mit dem Befehl mount eingehängt. Das Problem hierbei ist, dass dieser Befehl nach jedem neustart wieder ausgeführt werden muss. Die Problem können wir lösen indem wir die fstab erweitern.
1 |
nano /etc/fstab |
1 2 3 |
# device mountpoint fs-type options dump fsckord ... 192.168.0.1:/home/client_1 /mnt/nfs/home/client_1 nfs rw,hard,intr 0 0 |
Die Option hard bedeutet dass wenn der Server mal nicht erreichbar sein sollte, der Client wartet bis er wieder eine Verbindung aufbauen kann. Die Option intr erlaubt es einem wartenden Programm den Vorgang dennoch zu killen.
Jetzt sollte auch nach einem neustart der Client automatisch wieder eine Verbindung zum NFS Server aufbauen. Ob die so ist können wir wieder mit df -h prüfen.
hi, hab deine anleitung nachgestellt unter wheezy (frische installation) aber ich kann einfach nicht vom netzwerk die nfs freigabe „mounten“.
showmount -e ip zeigt mit den export zwar an, aber mehr geht nicht.
hast du vielleicht noch etwas gemacht, hier aber nicht erwähnt?
vielen dank + sonst super anleitung
schtebo
Hallo,
mir geht es genauso, wie schtebo, bis auf einen Unterschied: NFSv3 funktioniert, NFSv4 funktioniert nicht.
Nur mein Ziel ist NFSv4. Dafür habe ich noch keine funktionierende Anleitung gefunden und habe es auch schon vorher mit OpenSuse 13.2 probiert, sowie mit einigen Suse-Versionen davor. Ohne Erfolg.
Mir fällt nur auf, das in Deinem Howto der Eintrag für das NFSv4 Rootverzeichnis fehlt. Was das Absicht?
Vielen Dank schon einmal für jegliche Hilfe.
Hallo
danke du hast mir sehr geholfen
bei mir hat alles einwandfrei geklappt 🙂
Lg
falls das mit NFSv4 nicht richtig klappt, gibt es Abhilfe. Das Geheimnis liegt in der Datei „/etc/exports“. Dort muss die NFS-Freigabe mit ausgeschriebener Subnetzmaske erfolgen. Also z.B.:
# /etc/exports: the access control list for filesystems which may be exported …
/srv/nfs_shares/client1 192.168.0.2/255.255.255.2(fsid=2,rw,async,no_subtree_check)
/srv/nfs_shares/client2 192.168.0.2/255.255.255.3(fsid=2,rw,async,no_subtree_check)
/srv/nfs_shares/alle 192.168.0.2/255.255.255.0(fsid=2,rw,async,no_subtree_check)
# …
Man kann bei den Options noch die jeweiligen Zugriffs-IDs mit angeben, was den Rechtekram etwas erleichtert: „anongid=100,anonuid=1000“ mit nem Komma hinter „no_subtree_check“ eingefügt. Natürlich müssen group- und user-ID entspr. angepasst werden.
HTH
hab blödsinn geschrieben. Die subnetzmaske muss natürlich überall „255.255.255.0“ lauten. Bitte beim moderieren berichtigen.
Tut mir leid, ich sollte sowas nicht mehr um diese Uhrzeit machen.
und die Adressen in der Reihenfolge
192.168.0.2
192.168.0.3
192.168.0.0
nochmal sorry