NASなどのSMBサーバーがSMB1、SMB2、SMB3のどれに対応しているかは、nmapのスクリプト(NSE)smb-protocolsで調べられる。サーバーが古くてSMB1にしか対応していない場合、macOSからマウントできない原因の切り分けに役立つ。

$ nmap -Pn --script smb-protocols -p445 192.168.1.10
...
PORT    STATE SERVICE
445/tcp open  microsoft-ds

Host script results:
| smb-protocols:
|   dialects:
|     NT LM 0.12 (SMBv1) [dangerous, but default]
|     2.0.2
|     2.1
|     3.0
|     3.0.2
|_    3.1.1

実行例はnmap 7.992、macOS 27.0.1のもの。接続先は192.168.1.10とする。

nmapはHomebrewでインストールする。

$ brew install nmap

参考: 【macOS】pingは通るのにSMB共有をマウントできない原因を切り分ける

オプションの意味

実行例のオプションは、3つである。

オプション意味
-Pnホストの生存確認(ping)を省略して、ポートスキャンに進む
--script smb-protocolsSMBのプロトコルバージョン(ダイアレクト)を調べるスクリプトを実行する
-p445SMBが使う445番ポートだけを対象にする

-p445を指定すると、スキャン対象が1ポートだけになる。短時間で終わり、サーバーへの負荷も小さい。

-Pnが必要になる場合

-Pnを付けないと、nmapはスキャンの前にホストが起動しているかを確認する。pingに応答しないホストは、起動していても停止中と判断されて、スキャンされない。

$ nmap --script smb-protocols -p445 192.168.1.10
Starting Nmap 7.992 ( https://nmap.org ) at 2026-10-30 07:36 +0900
Note: Host seems down. If it is really up, but blocking our ping probes, try -Pn
Nmap done: 1 IP address (0 hosts up) scanned in 3.03 seconds

Host seems downと表示された場合は、-Pnを付けて実行する。

出力の見方

dialectsに、サーバーが対応しているバージョンが一覧で表示される。

表示SMBのバージョン
NT LM 0.12 (SMBv1)SMB 1.0
2.0.2SMB 2.0.2
2.1SMB 2.1
3.0SMB 3.0
3.0.2SMB 3.0.2
3.1.1SMB 3.1.1

NT LM 0.12 (SMBv1)の行にある[dangerous, but default]は、SMB1が危険とされていることを示す注記である。SMB1に対応するサーバーでは、毎回この注記が付く。

SMB1にしか対応していないサーバー

SMB1にしか対応していないサーバーは、dialectsがNT LM 0.12 (SMBv1)の1行だけになる。

$ nmap -Pn --script smb-protocols -p445 192.168.1.10
...
Host script results:
| smb-protocols:
|   dialects:
|_    NT LM 0.12 (SMBv1) [dangerous, but default]

SMB1専用のサーバーに対して、macOSのmount_smbfsはOperation not supportedで失敗した。SMB2以降に対応するよう、サーバー側の設定やファームウェアを更新する必要がある。

$ mount_smbfs -N '//GUEST:@192.168.1.10/share' ~/mnt/share
mount_smbfs: mount error: //GUEST:@192.168.1.10/share: Operation not supported

SMB1専用のサーバーでも、共有の一覧は取得できる。

参考: 【smbclient】SMBサーバーの共有一覧を確認する (-L)

結果が表示されない場合

smb-protocolsの結果(Host script results)が表示されない場合は、445番ポートに接続できていない。PORTのSTATEを確認する。

STATE意味
open接続できる。smb-protocolsの結果が表示される
closedホストには到達するが、445番ポートでSMBが待ち受けていない
filteredファイアウォールなどで応答が遮断されている。smb-protocolsの結果は表示されない

応答のないIPアドレスに-Pnでスキャンすると、filteredが表示された。

$ nmap -Pn --script smb-protocols -p445 192.0.2.1
...
PORT    STATE    SERVICE
445/tcp filtered microsoft-ds