mount.nfs: Zugriff vom Server beim Mounten verweigert


12

Auf meinem Ubuntu-System habe ich diese Zeile in / etc / fstab:

myserver:/home/me /mnt/me nfs rsize=8192,wsize=8192,timeo=14,intr

Wenn ich es tue

sudo mount -a

Ich bekomme:

mount.nfs: access denied by server while mounting myserver:/home/me

Wie kann ich dieses Problem diagnostizieren? Der NFS-Server ist ebenfalls Ubuntu.

Zusätzliche Details: Ich kann diese NFS-Freigabe problemlos von anderen Ubuntu-Clients im selben Netzwerk bereitstellen. Der problematische Client unterscheidet sich jedoch darin, dass er in VirtualBox auf einem Windows-System ausgeführt wird. Ich kann "myserver" vom problematischen Client aus gut anpingen.

EDIT: / etc / exportiert auf "myserver":

/home/me *(rw,all_squash,async,no_subtree_check,anonuid=1000,anongid=1000)

/etc/hosts.allow und /etc/hosts.deny auf "myserver" sind beide Kommentare. Und denken Sie daran, dass ich eine gute Verbindung von anderen Clients im selben Netzwerk herstellen kann.


Haben Sie versucht, die Protokolldateien auf dem Remote-Ubuntu-NFS-Server zu verfolgen? Überprüfen Sie, ob versucht wird, nfs von der virtuellen Maschine in der Windows-Box aus bereitzustellen.
Patrick R

Welche Protokolldateien genau?
JoelFan

Wird in / var / log / messages etwas angezeigt?
Matt Simmons

Antworten:


22

Fand es!

Eines der Protokolle hatte die Zeile:

refused mount request from 192.168.1.108 for /home/me (/home/me): illegal port 64112

Ich habe gegoogelt und festgestellt, dass ich, da der Port über 1024 ist, die entsprechende Option in der entsprechenden Zeile in / etc / export auf dem Server hinzufügen muss. Sobald ich das getan habe (und exportfs -r ausgeführt habe), hat der Mount -a auf dem Client funktioniert.


3
Während dies funktioniert, kann jetzt jeder Nicht-Root-Benutzer vorgeben, eine neue Instanz von NFS zu sein und Zugriff auf alle Ihre Dateien zu haben. Weiß jemand, ob es eine Möglichkeit gibt, den NFS-Client dazu zu bringen, diese hohen Portnummern nicht mehr zu verwenden?
Semi

Vielen Dank dafür, hat meinen Arsch gerettet. War bereit, nach STUNDEN des Googelns aufzugeben. Ich habe es nicht in den Protokollen gesehen, weil ich nach "nfs" gesucht habe, aber dies ist tatsächlich mein "mountd" protokolliert.
Cory J

1
@Cory J, danke, dass du dir die Zeit genommen hast, mich wissen zu lassen, dass es geholfen hat! Ihr Kommentar hat mich dazu gebracht, diese Frage noch einmal zu betrachten und ich sehe, dass sie über 12.000 Aufrufe hat! Wahrscheinlich hat es anderen Menschen geholfen, aber Sie sind der einzige, der "Danke" gesagt hat! :)
JoelFan

10

Diese Frage bezieht sich darauf, wie das Netzwerk für Ihre VM eingerichtet ist.

Standardmäßig verfügen Sie mit VirtualBox über ein NAT- Netzwerk. Was zur Portübersetzung führt .

Schritt für Schritt ergibt dies:

  1. Der NFS-Client verwendet einen reservierten Port (<1024 ... der nur von root geöffnet werden kann -> gesichert)
  2. Virtualbox führt die Portübersetzung (NAT) durch -> Client-Port ist jetzt größer als 1024
  3. Der NFS-Server lehnt die Verbindung für diesen unsicheren Port ab.

Wie von @JoelFan erwähnt, besteht eine Lösung darin, die insecureOption auf den Server festzulegen . Dies ist eine schnelle Lösung, aber ... unsicher;)

Was den Fall für mich (auf sichere Weise) behoben hat, war der Wechsel von NAT zu Bridge- Netzwerk für diese VM. Auf diese Weise hat mein VM eine eigene IP-Adresse und es wird keine Portübersetzung durchgeführt.


2

Ratet mal, was ... für mich war die Ursache für genau denselben Fehler eine Versionsinkongruenz zwischen meinem NFS-Client und dem Server.

Die Protokolle waren still, als wäre nichts passiert, und nur nfswatch, das auf der Serverseite ausgeführt wurde, half mir, die Situation zu klären.

Das Problem wurde durch Hinzufügen der Option nfsver mount auf der Clientseite behoben:

server:/path   /mount/point   nfs   nfsvers=3   0 0

Das war auch mein Problem. Debian 6 (Squeeze) mit mountinstalliertem Paket v2.17.2-9. Lösung hat funktioniert.
Alastair Irvine

1

Haben Sie überprüft, ob die Namensauflösung auf dem Server für den Client, der eine Verbindung herstellen möchte, korrekt ist (und in der Exportdatei aufgeführt ist)?


siehe meine Änderungen in der Frage ... Ich
erlaube

0

Überprüfen Sie die Dateien hosts.allowund hosts.denyob der Client korrekt eingegeben wurde. Wenn dies nicht hilft, senden Sie bitte Ihre Exportdatei.


siehe meine Änderungen in der Frage
JoelFan

0

Falls dies anderen Personen hilft, habe ich ein Synology NAS und der NFS-Punkt hat dem Pfad tatsächlich ein weiteres Element hinzugefügt.

Ich habe versucht, "xxx.xxx.xxx.xxx/folder" zu mounten, da dies in Windows der Fall ist. Aber für Ubuntu mit NFS musste ich "xxx.xxx.xxx.xxx/volume1/folder" verwenden.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.