sambaサーバへの接続がバージョン1から変えられない

オンラインストレージ(samba)へ接続した際、smbutilで接続状況を調べると

SMB_NEGOTIATE SMBV_NEG_SMB1_ENABLED

SMB_NEGOTIATE SMBV_NEG_SMB2_ENABLED

SMB_NEGOTIATE SMBV_NEG_SMB3_ENABLED

となっているのに、SMB_VERSIONは「SMB_1」になります。


ネット情報を便りに /etc や、~/Library/Preferences にnsmb.confを作り

[default]

smb_neg=smb3_only

などしてみましたが変わりません。


バージョン3で接続するにはどうすれば良いのでしょうか?

ちなみに、AFPで接続するよりSMBだと5倍位速度が遅いので、接続バージョンを変えて試行してみたいのです。

iMac (21.5-inch, Late 2013), macOS Sierra (10.12.4)

投稿日 2017/05/07 22:05

返信
返信: 6

2017/06/15 16:41 jo7wwa への返信

自己解決しました。

SMBのネゴシエーションが1〜3まで「ENABLED」になっていたのでサーバー側は疑っていなかったのですが、smb.confでコメントアウトになっている「MAX PROTOCOL」がデフォルトで「NT1」(CIFS)だったことが原因でした。

試しに値を「SMB2」にしたところSMB_VERSIONが「SMB_2.002」となり、気になっていたSMB_SHARE_TYPEも「DISK」になりました。


なんでネゴシエーションとプロトコルが別々なのか?とか、それによってシェアタイプが変わるってろういう事?とか、色々疑問は残りましたがとりあえず解決です。


そもそも解決したかった接続速度も少し向上したので更に詰めていきたいと思います。

2017/05/10 21:10 jo7wwa への返信

"man nsmb.conf"によると、SMBバージョンは"protocol_vers_map"で設定するようです。


MacBook$ cat /etc/nsmb.conf

[default]

protocol_vers_map=4


ただ、私の環境(BUFFALO HDW-PDU3)ではエラーとなって接続できませんでしたが...


MacBook$ mount -t smbfs "//192.168.14.1/HDW-PDU3" "/Users/Shared/HDW-PDU3"

mount_smbfs: server connection failed: Socket is not connected


下記URLにSMB Version3で接続した設定があります。

https://superuser.com/questions/1170636/why-is-there-a-write-speed-difference-between-dd-cp-rsync-and-macos-finder-to

2017/05/10 23:35 jo7wwa への返信

smb接続が遅いのは、el capitanから導入されたセキュリティ対策のsigningためということです。これをdisableすれば速くなるということです(もちろんsigningがスムースに行われるようにするのが正しい対応)。

やり方は、ターミナルで、以下のように管理者権限でnsmb.confファイルを作って再起動ということです。

sudo echo "[default]" >/etc/nsmb.conf

sudo echo signing_required=no >>/etc/nsmb.conf


もしまだ試されてないなら、試されてみては?

https://forum.promise.com/thread/fix-for-smb-sanlink-2/

(綴りなど違ってるといけないので、元記事を参照してください)


この記事の最後にAppleのdeveloper forumにも同じことを書いてるとあります。

2017/06/01 00:28 jo7wwa への返信

ちょっと前の投稿ですが、未だにつまづいていて、少し状況に進展(?)があったものですから再投稿です。


その後、新たにWindowsで共有(SMB)フォルダを作り接続し、smbutilで接続状況をみたところ「SMB_3.02」で接続できていることがわかりました。つまり、クライアント(Sierra)側の問題は無いと思われます。


次に「SMB_1」でしか繋げなかった時との違いを見ると「SMB_SHARE_TYPE」が

SMB_1の時は「UNKNOWN」

SMB_3.02の時は「DISK」

という違いがありました。


これが原因でSMB_1でしか繋げないのかどうかは分からないのですが、サーバー側でSMB_SHARE_TYPEを「DISK」に変えればと思い調べたのですが分かりません。


smbサーバはCentOSでsamba3で稼働しています。

smb.confのどの値を変えればいいのでしょう?

2017/05/10 22:13 hohokihai への返信

hohokihaiさん、返信ありがとうございます。


私も途中で、Sierraのnsmb.confの書式が変わっている事に気づき、protocol_vers_mapの値を色々と変えてみたのですが「7」以外は「接続に問題が〜」となり繋ぐことができませんでした。


SMB3_ENABLEDになっているのに、何でなんでしょうかね。

異なるSMBサーバー2台で同じような状況です。

2017/05/10 23:48 はに への返信

はにさん、ご返信ありがとうございます。


signing_required の設定ですが、私の英語力が確かならSMB2以上で要求される項目なので、そもそもSMB1でしか繋がっていない私にはまだ先の話でした。

man nsmb.conf で signing_req_vers(signing要求バージョン)のデフォルトが「6」(SMB 2/3)。


ダメ元でそれも試したのですが、速度は変わりませんでした。

このスレッドはシステム、またはAppleコミュニティチームによってロックされました。 問題解決の参考になる情報であれば、どの投稿にでも投票いただけます。またコミュニティで他の回答を検索することもできます。

sambaサーバへの接続がバージョン1から変えられない

Apple サポートコミュニティへようこそ
Apple ユーザ同士でお使いの製品について助け合うフォーラムです。Apple Account を使ってご参加ください。