mount.nfs : Ubuntu 컴퓨터에 마운트하는 동안 서버에서 액세스가 거부 되었습니까? be exported #

생산중인 기계는 세 대입니다.

machineA    10.66.136.129
machineB    10.66.138.181
machineC    10.66.138.183

그리고 그 모든 컴퓨터에는 Ubuntu 12.04가 설치되어 있으며 그 세 컴퓨터 모두에 대한 루트 액세스 권한이 있습니다.

이제 위의 컴퓨터에서 아래 작업을 수행해야합니다.

Create mount point /opt/exhibitor/conf
Mount the directory in all servers.
 sudo mount <NFS-SERVER>:/opt/exhibitor/conf /opt/exhibitor/conf/

/opt/exhibitor/conf위에서 언급 한 것처럼 세 컴퓨터 모두에 이미 디렉토리를 만들었습니다 .

이제 마운트 포인트를 만들려고합니다. 그래서 나는 아래 과정을 따랐다.

위의 세 시스템 모두에 NFS 지원 파일 및 NFS 커널 서버 설치

$ sudo apt-get install nfs-common nfs-kernel-server

위의 세 시스템 모두에서 공유 디렉토리를 작성하십시오.

$ mkdir /opt/exhibitor/conf/

/etc/exports위의 세 시스템 모두에서 다음과 같이 항목을 편집 하고 추가했습니다.

# /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)

machineB와 machineC에서 아래와 같이 machineA에 마운트를 시도했지만이 오류가 발생합니다.

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

/etc/exports파일이 좋아 보였습니까 ? exports파일 이 엉망 입니다. 내보내기 파일의 세 컴퓨터 모두에 동일한 내용이 있습니다.

내가 여기서 뭘 잘못하고 있는지 알아? 그리고 /exports여기에 올바른 파일은 무엇입니까?



답변

exportfs

/etc/exports서버 에서 파일 을 작성할 때 파일을 내 보내야합니다. 일반적으로이 명령을 실행하려고합니다.

$ exportfs -a

내보내기 파일의 모든 항목을 내 보냅니다.

쇼 마운트

내가 자주 수행하는 다른 작업은 다른 컴퓨터에서 showmount명령을 사용하여 NFS 공유를 네트워크로 내보내는 컴퓨터를 확인하는 것입니다 .

$ showmount -e <NFS server name>

예를 들어 내가 스컬하게 로그인했다고 가정 해보십시오.

$ showmount -e mulder
Export list for mulder:
/export/raid1/isos     192.168.1.0/24
/export/raid1/proj     192.168.1.0/24
/export/raid1/data     192.168.1.0/24
/export/raid1/home     192.168.1.0/24
/export/raid1/packages 192.168.1.0/24

fstab

부팅시 이들을 마운트하려면 NFS 마운트를 사용하려는 클라이언트 시스템에이 라인을 추가하십시오.

server:/shared/dir /opt/mounted/dir nfs rsize=8192,wsize=8192,timeo=14,intr

자동 마운팅

이러한 서버를 재부팅하려는 경우이 autofs항목을에 추가하는 대신 자동 마운팅 ( ) 을 설정하는 것이 좋습니다 /etc/fstab. 좀 더 많은 작업이지만 노력할만한 가치가 있습니다.

그렇게하면 서버를 서로 독립적으로 재부팅 할 수 있으며 실제로 필요하거나 사용중인 경우에만 NFS 마운트를 생성 할 수 있습니다. 유휴 상태가되면 마운트가 해제됩니다.

참고 문헌


답변

동일한 오류 ( mount.nfs: access denied by server while mounting...)가 표시 -o v3되고 다음과 같이 옵션으로 문제가 해결되었습니다 .

$ sudo mount -o v3 a-nfs-server:/path/to/export /path/to/mount
  • 서버는 Ubuntu 14.04 64 비트 LTS입니다.
  • 클라이언트는 CentOS 6.5 64 비트입니다.

답변

내 경우에는 nfs4를 사용하여 작동합니다.

$ sudo mount -t nfs4 서버 이름 : / / path / to / mount

/etc/export서버 의 파일에서

/Path/to/export 192.168.1.0/24(rw,sync,fsid=0,no_root_squash,crossmnt,no_subtree_check,no_acl)

fsid=0/Path/to/export공유를 마운트 할 때 루트 디렉토리를 만듭니다 .

crossmnt내 보낸 파일 시스템에 액세스하려는 다른 드라이브가 있기 때문입니다.

no_root_squash클라이언트 측에서 루트 사용자 (su)로 액세스하고 싶습니다. 로컬 네트워크에서 내가 할 수있는 유일한 사람이라고 확신합니다.

서버와 클라이언트는 Ubuntu 14.04 64 비트입니다.

nfs3을 사용하려면 @ fumisky-wells의 대답이 저에게 효과적입니다.


답변

동일한 오류 메시지가 표시되고 클라이언트 시스템에 두 개의 네트워크 인터페이스가 동일한 LAN에 연결되어있는 것으로 나타났습니다. 서버가 특정 IP 주소를 예상하도록 구성되었으며 dhcp IP 주소가있는 두 번째 인터페이스에서 트래픽이 발생했습니다. 그래서 방금 두 번째 인터페이스가 고정 IP 주소를 갖도록 구성하고 두 번째 고정 IP 주소를 서버 구성에 추가했습니다.


답변

/etc/exports클라이언트가 공유에 대한 액세스를 요청할 때 NFS 서버에서 확인하므로 사용자가 말한대로 클라이언트가 아닌 NFS 서버 시스템에서 클라이언트를 편집해야합니다 .

/etc/exportsNFS 서버에 다음을 넣으면 작동합니다.

/opt/exhibitor/conf 10.66.136.129(rw)
/opt/exhibitor/conf 10.66.138.181(rw)
/opt/exhibitor/conf 10.66.138.183(rw)

답변

nfs-client가 Linux 컨테이너 내에 내 보낸 공유를 마운트하려고 시도하면 컨테이너가 권한 모드로 실행되어야합니다.

도커의 경우;

$ docker run -it --rm --privileged ubuntu:14.04


답변

나에게 문제는 클라이언트/etc/exports/ 대신 서버의 IP 주소를 사용하고 있다는 것입니다.

문제는 서버에 액세스 권한을 부여한 모든 IP를 넣어야한다는 것입니다. /etc/exports/