Ich habe drei Maschinen in Produktion -
machineA 10.66.136.129
machineB 10.66.138.181
machineC 10.66.138.183
Auf all diesen Maschinen ist Ubuntu 12.04 installiert, und ich habe root-Zugriff auf all diese drei Maschinen.
Jetzt soll ich unter Dinge in meinen oben genannten Maschinen tun -
Create mount point /opt/exhibitor/conf
Mount the directory in all servers.
sudo mount <NFS-SERVER>:/opt/exhibitor/conf /opt/exhibitor/conf/
Ich habe /opt/exhibitor/conf
in all diesen drei Rechnern bereits ein Verzeichnis angelegt, wie oben erwähnt.
Jetzt versuche ich einen Mount Point zu erstellen. Also folgte ich dem folgenden Prozess -
Installieren Sie die NFS-Unterstützungsdateien und den NFS-Kernel-Server auf allen drei oben genannten Computern
$ sudo apt-get install nfs-common nfs-kernel-server
Erstellen Sie das freigegebene Verzeichnis auf allen drei oben genannten Computern
$ mkdir /opt/exhibitor/conf/
Bearbeitet die /etc/exports
und fügte den Eintrag wie folgt in allen drei oben genannten Maschinen -
# /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)
#
/opt/exhibitor/conf/ 10.66.136.129(rw)
/opt/exhibitor/conf/ 10.66.138.181(rw)
/opt/exhibitor/conf/ 10.66.138.183(rw)
Ich habe versucht, auf Maschine A wie unten von Maschine B und Maschine C zu montieren, und es gibt mir diese Fehler-
root@machineB:/# sudo mount -t nfs 10.66.136.129:/opt/exhibitor/conf /opt/exhibitor/conf/
mount.nfs: access denied by server while mounting 10.66.136.129:/opt/exhibitor/conf
root@machineC:/# sudo mount -t nfs 10.66.136.129:/opt/exhibitor/conf /opt/exhibitor/conf/
mount.nfs: access denied by server while mounting 10.66.136.129:/opt/exhibitor/conf
Hat meine /etc/exports
Datei gut ausgesehen? Ich bin mir ziemlich sicher, dass ich meine exports
Akte durcheinander gebracht habe . Da ich in allen drei Maschinen den gleichen Inhalt in Exportdatei habe.
Irgendeine Idee, was ich hier falsch mache? Und was wird hier die richtige /exports
Datei sein?
0750
oder wenn der0700
Client, der versucht, das Mounten durchzuführen, mit hoher Wahrscheinlichkeit mit derselben Fehlermeldung fehlschlägt . Ich habe den Host von0750
nach gewechselt0755
und dann ist der Fehler verschwunden und alles war in Ordnung.Antworten:
exportfs
Wenn Sie eine
/etc/exports
Datei auf einem Server erstellen , müssen Sie sicherstellen, dass Sie sie exportieren. Normalerweise möchten Sie diesen Befehl ausführen:Dadurch werden alle Einträge in der Exportdatei exportiert.
showmount
Das andere, was ich oft mache, ist, dass ich von anderen Computern aus jeden Computer überprüfe, der NFS-Freigaben mit dem
showmount
Befehl in das Netzwerk exportiert .Beispiel
Sagen Sie zum Beispiel, ich bin in scully eingeloggt.
fstab
Um diese beim Booten bereitzustellen, fügen Sie diese Zeile Ihren Client-Computern hinzu, die die NFS-Bereitstellungen verwenden möchten.
automounting
Wenn Sie diese Server neu starten möchten, empfehlen wir Ihnen dringend, automounting (
autofs
) einzurichten, anstatt diese Einträge hinzuzufügen/etc/fstab
. Es ist ein bisschen mehr Arbeit, aber die Mühe lohnt sich.Auf diese Weise können Sie die Server unabhängiger voneinander neu starten und den NFS-Mount nur dann erstellen, wenn er tatsächlich benötigt und / oder verwendet wird. Wenn es im Leerlauf läuft, wird es ausgehängt.
Verweise
quelle
exportfs -a
, rannte ichexportfs -rv
. Gibt es einen Unterschied zwischen diesen? Und in meinem Fallshowmount -e 10.66.136.129
mache ich das von Maschine B und Maschine C. richtig?exportfs -rv
nur macht ein reexport + ist wortreich. Der-a
exportiert alles. Wasshowmount -e
ja man kann es von diesen Maschinen laufen oder man die Aktien dienen.Ich habe den gleichen Fehler gesehen (
mount.nfs: access denied by server while mounting...
) und das Problem wurde-o v3
wie folgt per Option behoben :quelle
mount.nfs: Connection timed out
. (Client ist Ubuntu 14.04 LTS 64-Bit. Server ist ein QNAP NFS mit QTS 4.0.2 2016/01/09.)In meinem Fall funktioniert mit NFS4:
In der
/etc/export
Datei auf dem Serverfsid=0
macht das/Path/to/export
zum Stammverzeichnis, wenn Sie die Freigabe mounten.crossmnt
, weil ich einige andere Laufwerke im exportierten Dateisystem habe, auf die ich auch zugreifen möchte.no_root_squash
, weil ich als root-Benutzer (su) von der Client-Seite zugreifen möchte. Ich bin mir ziemlich sicher, dass ich der einzige bin, der das in meinem lokalen Netzwerk kann.Server und Clients sind Ubuntu 14.04 64bit.
Wenn Sie nfs3 verwenden möchten, funktioniert die Antwort von @ fumisky-wells auch für mich.
quelle
Es wurde dieselbe Fehlermeldung angezeigt, und mein Problem wurde dadurch verursacht, dass auf dem Clientcomputer zwei Netzwerkschnittstellen mit demselben LAN verbunden waren. Der Server wurde so konfiguriert, dass er eine bestimmte IP-Adresse erwartet und der Datenverkehr auf der zweiten Schnittstelle mit einer DHCP-IP-Adresse ausgeht. Deshalb habe ich die zweite Schnittstelle so konfiguriert, dass sie eine statische IP-Adresse hat, und der Serverkonfiguration die zweite statische IP-Adresse hinzugefügt.
quelle
/etc/exports
muss auf dem NFS- Server bearbeitet werden, nicht auf den Clients, wie Sie es angegeben haben, da dies vom NFS-Server überprüft wird, wenn ein Client den Zugriff auf eine Freigabe anfordert.Wenn Sie Folgendes in
/etc/exports
den NFS-Server einfügen, sollte es funktionieren:quelle
exportfs -a
?Wenn der nfs-client versucht, die exportierte Freigabe in den Linux-Container einzubinden, sollte der Container im privilegierten Modus ausgeführt werden.
Im Falle eines Hafenarbeiters;
$ docker run -it --rm --privileged ubuntu:14.04
quelle
Für mich war das Problem, dass ich die IP-Adresse
/etc/exports/
des Servers anstelle der des Clients verwendete .Die Sache ist, Sie sollten alle IPS, auf die Sie Zugriff gewähren, auf Servern ablegen
/etc/exports/
quelle
Nachdem ich stundenlang mit derselben Fehlermeldung gekämpft hatte, stellte sich heraus, dass mein Problem nicht komplizierter war als die altmodischen Linux-Dateiberechtigungen auf dem NFS-Host.
Der Ordner, den ich freigeben wollte (
/home/foo/app/share
), hatte die richtigen Berechtigungen, aber da das Basisverzeichnis (/home/foo
) des Benutzers über einen0750
Modus verfügt, konnte NFS nicht darauf zugreifen, um auf das freigegebene Verzeichnis zuzugreifen.Sobald ich das Home-Verzeichnis des Benutzers in den Modus versetzte
0751
, konnte der NFS-Dienst darauf zugreifen und ich konnte die Freigabe von meinem Clientcomputer aus bereitstellen.quelle
Für mich bestand das Problem darin, dass mein Router die verwendete IP-Adresse des Clients so geändert hat, dass der Eintrag
/etc/exports
auf dem Servercomputer nur den Zugriff auf eine IP-Adresse ermöglichte, die nicht mehr verwendet wurde.quelle
Dasselbe kann passieren, wenn Sie versuchen, eine NFS-Freigabe auf einer Virtual Box-Instanz mit dem Netzwerkadapter bereitzustellen, der als konfiguriert ist
NAT
.Durch Auswahl der
Bridged Adapter
Netzwerkeinstellungen der virtuellen Maschine wird dieses Problem behoben.quelle
Ich weiß, dass dies ein alter Thread ist, aber mein Problem hatte mit LXC und AppArmor zu tun .
Das Beenden von AppArmor oder das Hinzufügen eines Ausnahmeprofils hat dieses Problem behoben.
quelle
Dieser Fehler kann auch durch den Versuch verursacht werden, einen verschlüsselten Pfad bereitzustellen. (Zum Beispiel in Ihrem Home-Verzeichnis, wenn Sie es verschlüsseln möchten)
quelle
Die einzige Lösung, die für mich funktionierte, war das Exportieren von Dateisystemen beginnend mit
/srv
. Dies scheint eine Einschränkung (oder zumindest eine Standardoption) von NFSv4 zu sein.Da ich versucht habe, ein USB-Laufwerk zu exportieren, auf das das automatische Laden erfolgt
/media
, brauchte ich eine Möglichkeit, um dieses Laufwerk zu "mounten"/srv
. Um das zu erreichen:Und in
/etc/exports
:Wenn ich
/media/jim/wdportable/videos
direkt exportierte , führte der Versuch, auf dem Client zu mounten, immer zumount.nfs: access denied by server
.Die
-o v3
Lösung funktionierte, aber ich wollte v3 nicht erzwingen.quelle
/media/jim
Ordner gelegen hätte. Wenn sich das Verzeichnis, das Sie freigeben möchten, in einem Verzeichnis mit dem Modus " only"700
oder "750
mode" befindet (oder sich darin befindet) , kann NFS nicht darauf zugreifen. Wenn Sie geändert/media/jim
zu751
, wäre es wahrscheinlich funktionieren.sudo mount -o v3 192.168.0.200:"/media/pi/mydrive" /mnt/nfs-share
(Raspbian auf Raspi 3 B +) habe ich es auch versuchtsudo chmod 751 /media/pi
. Danach brauchte ich nicht-o v3
mehr:sudo mount 192.168.0.200:"/media/pi/mydrive" /mnt/nfs-share
erledigte den Job (nach dem Absteigen). Vielen Dank an @DaleAnderson.Es sollte beachtet werden, dass eine verlinkte Seite, die mich hierher führte, meine richtige Antwort hatte, nämlich dass Sie beim Export NICHT den Platzhalter * in der IP-Adresse verwenden können. Es ist entweder * (alle IP-Adressen) oder wird als Platzhalter in Domänennamen IE: * .domain.com verwendet.
ZB: das ist richtig
Dies wird nicht funktionieren (oder ist zumindest falsch), hat aber jahrelang bei mir funktioniert, bis ich versuchte, den Export von einer Fedora-VM zu mounten.
quelle