home Sonstiges Linux OpenBSD Links

NFS (Network File System) dient unter Linux und Unix allgemein dazu, Dateien für andere Nutzer freizugeben. Man kann es praktisch mit einer Freigabe und Windosekisten vergleichen. Als NFS-Server werden alle Rechner bezeichnet, die Dateien bereitstellen. Clienten nutzen diese Resourcen. Ein Server kann natürlich auch gleichzeitig Client eines anderen NFS-Servers sein ;).


Server

Die folgenden Angaben beziehen sich auf einen 2.2.17-Kernel:
Filesystems / Network File Systems / NFS filesystem support und NFS server support aktiveren und dann den Kernel neu compilieren und installieren. Als nächstes sollte man die aktuellen nfs-utils runterladen. Diese findet man unter http://nfs.sourceforge.net/. Installiert werden diese nach der Standartmethode: ./configure; make; make install
Wenn man will, das die NFS-Dienste beim Booten des Servers automatisch gestartet werden sollen, muß man folgende Datei anlegen (die Pfade sind auf Debian abgestimmt):

/etc/init.d/nfsservice:
#!/bin/sh
#
# Start NFS.

case "$1" in
  start)
        echo "Starting NFS"
        /sbin/portmap
        /usr/sbin/rpc.lockd
        /usr/sbin/rpc.mountd
        /usr/sbin/rpc.nfsd
        /usr/sbin/rpc.statd
        /usr/sbin/rpc.rquotad
        /usr/sbin/exportfs -ra
        ;;
  stop)
        echo "Stopping NFS"
        /usr/sbin/exportfs -au
        killall lockd
        killall rpc.rquotad
        killall rpc.statd
        killall nfsd
        killall rpc.mountd
        killall portmap
        killall rpciod
        ;;
  *)
        echo "Usage: /etc/init.d/nfsservice {start|stop}"
        exit 1
        ;;
esac

exit 0
Der einzige Nachteil ist hier, das bei "stop" 3 Prozesse weiterhin laufen bleiben (nfsd, rpciod, lockd). Nach einiger Zeit kann man sie aber mit kill beseitgen. Falls jemand eine Lösung des Problemes weis, wäre es nett, mir eine Mail zu schicken ;)

Damit der NFS-Service automatisch gestartet wird, muß noch ein symbolischer Link gesetzt werden:
# cd /etc/rc2.d/
# ln -s ../init.d/nfsservice S90nfsservice

Für das Runterfahren ebenfalls...
# cd /etc/rc6.d/
# ln -s ../init.d/nfsservice K20nfsservice
# cd /etc/rc0.d/
# ln -s ../init.d/nfsservice K20nfsservice


Danach muß die Datei /etc/exports editiert werden. In dieser Datei werden die Freigaben festgelegt.

/etc/exports
#Verzeichnis Client1-Optionen Client2-Optionen usw...
/nfs         192.168.44.1(ro) 192.168.44.44(ro)
# auch ganze Netze sind moeglich...
/usr/src     192.168.44.0/255.255.255.0(ro)
# ro Verzeichnis ist für Client nur lesbar
# rw Verzeichnis ist für Client auch beschreibar


Jetzt wird festgelegt, welche Clients überhaupt auf den NFS-Server dürfen:

/etc/hosts.allow
# in dem Beispiel wird das ganze Netz 192.168.44 "freigeschaltet"
portmap: 192.168.44.0/255.255.255.0
lockd: 192.168.44.0/255.255.255.0
rquotad: 192.168.44.0/255.255.255.0
mountd: 192.168.44.0/255.255.255.0
statd: 192.168.44.0/255.255.255.0


In der nächsten Datei sind wird ganz mißtrauisch und trauen keinen. Wer NFS benutzen darf, ist somit über /etc/hosts.allow geregelt.

/etc/hosts.deny
portmap:ALL


Nun den NFS-Server mit /etc/init.d/nfsservice start starten und an einen Cleint testen, ob es funktioniert ;)


Client

Bei dem Client muß im Kernel nur das NFS-File System Support aktiviert sein. Dieses ist bei den meisten Standartdistributionen der Fall. Danach mountet man ein Verzeichnis des NFS-Servers mit folgenden Befehl:

# mount -t nfs 192.168.44.1:/nfs /mnt

zurück zur Linuxübersicht
Letzte Aktualisierung dieser Seite: 8. Februar 2001