NFS 파일 시스템에 문제가 있습니다. 클라이언트는 서버에 연결할 수 없지만 서버는 요청을 수신하고 클라이언트 액세스 권한을 부여합니다. 구성은 다음과 같습니다.
NFS 서버
- 페도라리눅스 38
/home/user/nfs/
모드 0777이 포함된 폴더- IP 주소는 다음과 같습니다.
193.232.173.2
/etc/export
콘텐츠:/home/user/nfs 193.232.173.251(rw,sync,no_acl,insecure,no_root_squash)
NFS 클라이언트
- UNIX 기반의 디스크 없는 운영 체제(oc2000, RT OS BAGET이라고도 함, UNIX 자체가 아니라 UNIX 기반)
- IP 주소는 다음과 같습니다.
193.232.173.251
- 다음 명령줄을 사용하여 프로그램 코드를 통해 NFS 마운트:
mount -t nfs -o rsize=4096,wsize=4096 193.232.173.2:/home/user/nfs /nfs
다른 명령줄 옵션을 사용할 수 없습니다.
결과
NFS가 마운트되었지만 클라이언트에서(프로그램 코드로도) 읽고 쓸 수 없습니다. NFS 서버는 NFS 버전 2를 지원하지 않고 클라이언트는 NFSv2에서만 작동한다는 것을 발견했습니다.
NFSv2를 지원하는 Linux 커널(버전 6.6.8)을 구축했지만 연결되지 않습니다. 클라이언트는 위의 명령을 전송하고 아무 일도 일어나지 않습니다.
시스템 로그에는 다음 로그가 포함됩니다.
rpc.mountd authenticated mount request from 193.232.173.251:1023 for /home/user/nfs (/home/user/nfs)
rpc.mountd granted access to /home/user/nfs for 193.232.173.251
rpc.mountd nfsd_fh: found 0x55f566742490 path /home/user/nfs
rpc.mountd nfsd_fh: inbuf '193.232.173.251 4 \x408a0300938534b9'
- 클라이언트 옵션 조합을 시도했지만
/etc/export
도움이 되지 않았습니다. - 설정 전환을 시도했지만
/etc/nfs.conf
도움이 되지 않았습니다. [nfsd]
부품은/etc/nfs.conf
다음과 같습니다.debug=1 udp=on tcp=on vers2=y vers3=y vers4=n vers4.0=n vers4.1=n vers4.2=n rdma=y rdma-port=20049
위에 주어진 메시지를 찾기 위해 Linux 소스 코드를 살펴보았지만 아무 소용이 없었습니다.
저 좀 도와 주 시겠어요? NFS를 통해 클라이언트와 서버가 작동하도록 하려면 또 무엇을 해야 합니까?
UPD. 다음은 rpcinfo -p의 출력입니다.
100000 4 tcp 111 portmapper
100000 3 tcp 111 portmapper
100000 2 tcp 111 portmapper
100000 4 udp 111 portmapper
100000 3 udp 111 portmapper
100000 2 udp 111 portmapper
100005 1 udp 20048 mountd
100005 1 tcp 20048 mountd
100024 1 udp 44697 status
100024 1 tcp 37411 status
100005 2 udp 20048 mountd
100005 2 tcp 20048 mountd
100005 3 udp 20048 mountd
100005 3 tcp 20048 mountd
100003 2 tcp 2049 nfs
100003 3 tcp 2049 nfs
100227 2 tcp 2049 nfs_acl
100227 3 tcp 2049 nfs_acl
100003 2 udp 2049 nfs
100003 3 udp 2049 nfs
100227 2 udp 2049 nfs_acl
100227 3 udp 2049 nfs_acl
100021 1 udp 60925 nlockmgr
100021 3 udp 60925 nlockmgr
100021 4 udp 60925 nlockmgr
100021 1 tcp 46315 nlockmgr
100021 3 tcp 46315 nlockmgr
100021 4 tcp 46315 nlockmgr
답변1
다들 감사합니다. 문제가 원래 방식으로 해결되었습니다. 이 클라이언트 컴퓨터의 문서에 따라 Fedora 22로 다운그레이드하고 RPC 및 NFS를 구성했는데... 작동합니다! 클라이언트는 서버에 연결하고 파일을 읽고 쓰기도 합니다!
답변2
NFS 서버에서 (Fedora 38에 대해 이야기하고 있습니다)문제 해결을 위해당신은 원할 것이다
- SELINUX를 끄거나, 시작할 때마다 수동으로 끄거나,
setenforce 0
수정하여/etc/selinux/config
다음으로 설정하세요.permissive
- 방화벽 끄기
/etc/nfs.conf
구문이 모든 곳에서 올바른지 실제로 확인하십시오 .vers<num> = y
가장 먼저 떠오르는 것은 최신 NFSv4가 모두 하나의 포트(2049)에 있다는 것입니다. NFSv3은 mountd
, statd
, lockd
및 에 대한 nfsd
다른 포트 와 함께 포트 111에 있습니다 sm-notify
. /etc/nfs.conf
Fedora38의 nfsv4에서 (현재) 주석 처리된 내용을 볼 수 있습니다 . 우선, 기본적으로 NFSv4로 설정된 현재 Linux 배포판이 NFSv2로 폴백되도록 허용하려면 nfs 서버가 올바른 포트(방화벽 대신)에서 수신 대기하고 있는지 확인하여 nfsv2 클라이언트가 다음과 같은지 확인해야 합니다. .