NT_STATUS_IO_TIMEOUT을 디버깅하는 방법은 무엇입니까?

NT_STATUS_IO_TIMEOUT을 디버깅하는 방법은 무엇입니까?

로컬 Samba 서버에서 Samba 공유에 액세스하려고 하면 smblcient -L //localhost지연 후 오류 메시지가 나타납니다.

프로토콜 협상 실패: NT_STATUS_IO_TIMEOUT

문제의 원인을 체계적으로 찾기 위한 디버깅 단계는 무엇입니까?

배경:

저는 교육 목적으로 CentOS 7 가상 머신의 삼바 서버에 간단한 공유 폴더를 설정했습니다.

smb.conf 파일에 다음 줄을 추가하고 디렉터리, selinux 구성 및 방화벽 규칙을 만들었습니다.

[sambashare]
comment = sambashare
path = /sambashare
public = yes
writable = yes
write list = +users

답변1

해결책:

/etc/hosts 또는 DNS 서버에서 수동으로 설정해야 하는 서버 이름에 대한 DNS 이름 확인을 구성하지 않았습니다.

디버깅 프로세스:

의 경우NT_STATUS_IO_TIMEOUTtcpdump와 같은 네트워크 트래픽 분석기를 사용해 보십시오. (예: tcpdump -i >네트워크 인터페이스<)

다음 줄이 나타나는 경우:

07:57:54.726390 IP 10.0.2.9.39939 > 10.0.2.1.domain: 20986+ A? server.example.local. (38)
07:57:54.726648 IP 10.0.2.9.39939 > 10.0.2.1.domain: 44015+ AAAA? server.example.local. (38)
07:57:54.727069 IP 10.0.2.9.48743 > 10.0.2.1.domain: 34381+ PTR? 1.2.0.10.in-addr.arpa. (39)
07:57:54.732388 IP 10.0.2.1.domain > 10.0.2.9.39939: 20986 NXDomain* 0/0/0 (38)
07:57:54.733400 IP 10.0.2.1.domain > 10.0.2.9.48743: 34381 NXDomain* 0/0/0 (39)
07:57:54.733642 IP 10.0.2.9.53191 > 10.0.2.1.domain: 24458+ PTR? 9.2.0.10.in-addr.arpa. (39)

이는 smbclient가 DNS 확인 문제인 서버 이름 server.example.local을 확인할 수 없음을 의미합니다.

답변2

Fedora Rawhide 33의 경우 "/etc/samba/smb.conf"에 다음 중 하나가 필요합니다.

client min protocol = CORE

또는

client min protocol = NT1

그리고 "/etc/hosts"에 호스트를 정의합니다:

<ip_address>   REMOTE_DEVICE

답변3

다음 줄을 추가했는데 /etc/samba/smb.conf작동했습니다.

guest ok  = yes

내 공유 매개변수 섹션에 있습니다.

그런 다음 서비스를 다시 시작했는데 제대로 작동했습니다.

관련 정보