ローカルのSambaサーバーからsmblcient -L //localhost
を使用してSamba共有にアクセスしようとすると、遅延後にエラーメッセージが表示される
プロトコルネゴシエーションに失敗しました:NT_STATUS_IO_TIMEOUT
この問題の根本を体系的に取得するためのデバッグ手順は何ですか?
背景:
私自身のトレーニング目的で、CentOS 7仮想マシン上のsambaサーバー上に単純な共有フォルダーをセットアップしています。
次の行をsmb.confファイルに追加し、ディレクトリ、selinux設定、ファイアウォールルールを作成しました。
[sambashare]
comment = sambashare
path = /sambashare
public = yes
writable = yes
write list = +users
ソリューション:
サーバー名のDNS名前解決を構成していないため、/ etc/hostsに手動で、またはDNSサーバーでサーバー名を設定する必要があります。
デバッグプロセス:
NT_STATUS_IO_TIMEOUTの場合は、tcpdumpなどのネットワークトラフィックアナライザを使用してみてください。 (例:tcpdump -i> network interface <)
次の行が表示された場合:
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を解決できないことを意味します。
Fedora Rawhide 33では、「/ etc/samba/smb.conf」で次のいずれかを使用する必要がありました。
client min protocol = CORE
または
client min protocol = NT1
「/ etc/hosts」でホストを定義します。
<ip_address> REMOTE_DEVICE
/etc/samba/smb.conf
に次の行を追加しましたが、機能します。
guest ok = yes
私の共有パラメータのセクションで。
次に、サービスを再起動しましたが、完全に機能します