Debian 9.6 の LXDE 環境で、file manager として PCManFM を使用している。local な file を見る際には日本語の filename を含めて問題なく使用できるが、Synology DS218+ の network folder に接続出来ない状態だった。
いくら local とはいえ SMB1 は使いたくなかったので、Synology DS218+ 側で SMB protocol の制限を掛けている。
Maximum SMB protocol : SMB3 Minimum SMB protocol : SMB2 and Large MTU
この制限が理由で接続できない事は分かっていた。Minimum protocol を SMB1 にすれば接続できる事も確認していた。
折角なので、PCManFM で SMB2 以上で接続できるように設定してみた。
PCManFM の smb 対応
PCManFM では、smb や nfs等の様々な network filesystem に gvfs を使用して接続している。debian 9.6 では /usr/share/gvfs/mounts 以下に設定ファイルが存在していて、smb については以下の様になっている。
/usr/share/gvfs/mounts/smb.mount:
[Mount] Type=smb-share Exec=/usr/lib/gvfs/gvfsd-smb AutoMount=false Scheme=smb
gvfsd-smb command で実際の処理を行っている。link している lib を調べてみる。
$ ldd /usr/lib/gvfs/gvfsd-smb | grep -e libsmb -e libsamba libsmbclient.so.0 => /usr/lib/x86_64-linux-gnu/libsmbclient.so.0 (0x00007f7680585000) libsamba-util.so.0 => /usr/lib/x86_64-linux-gnu/libsamba-util.so.0 (0x00007f767e99b000) liblibsmb.so.0 => /usr/lib/x86_64-linux-gnu/samba/liblibsmb.so.0 (0x00007f767e32b000) libsamba-errors.so.1 => /usr/lib/x86_64-linux-gnu/libsamba-errors.so.1 (0x00007f767ddc8000) libsamba-security.so.0 => /usr/lib/x86_64-linux-gnu/samba/libsamba-security.so.0 (0x00007f767d9a6000) libsmbconf.so.0 => /usr/lib/x86_64-linux-gnu/libsmbconf.so.0 (0x00007f767d72c000) libsamba3-util.so.0 => /usr/lib/x86_64-linux-gnu/samba/libsamba3-util.so.0 (0x00007f767d523000) libsamba-debug.so.0 => /usr/lib/x86_64-linux-gnu/samba/libsamba-debug.so.0 (0x00007f767d107000) libsmbregistry.so.0 => /usr/lib/x86_64-linux-gnu/samba/libsmbregistry.so.0 (0x00007f767bfe7000) libsamba-hostconfig.so.0 => /usr/lib/x86_64-linux-gnu/libsamba-hostconfig.so.0 (0x00007f7678381000) libsmb-transport.so.0 => /usr/lib/x86_64-linux-gnu/samba/libsmb-transport.so.0 (0x00007f767817b000) libsamba-credentials.so.0 => /usr/lib/x86_64-linux-gnu/libsamba-credentials.so.0 (0x00007f7677f69000) libsamba-sockets.so.0 => /usr/lib/x86_64-linux-gnu/samba/libsamba-sockets.so.0 (0x00007f76771eb000) libsmbd-shim.so.0 => /usr/lib/x86_64-linux-gnu/samba/libsmbd-shim.so.0 (0x00007f76763d0000) libsamba-modules.so.0 => /usr/lib/x86_64-linux-gnu/samba/libsamba-modules.so.0 (0x00007f7673103000)
なので、libsmbclient を含む samba の library を使用して、smb server への接続を確立している事が分かる。
libsmbclient の設定
www.samba.gr.jp
www.atmarkit.co.jp
これらのサイトの情報より、
- /etc/samba/smb.conf
- ~/.smb/smb.conf.append
の何れかに client max protocol を指定すれば出来そうな感じ。
client max protocol の指定
~/.smb/smb.conf.append
$ cat ~/.smb/smb.conf.append [global] client max protocol = SMB3 client min protocol = SMB2
- /etc/samba/smb.conf でも同じ様に機能する。
- client max protocol と client min protocol の両方を指定すると、browsing が出来なくなるが、ip address を直に指定すれば接続できる。
- client max protocol だけを指定すると、browsing も出来て smb server が見えるようになる。
結果
- PCManFM で SMB2 以上で smb server へ接続する事が出来た。
- libsmbclient を使用している他の software でも同様に使えると思う。
- man smb.conf や他のサイトを見ると、automatic negotiation されるので設定不要と書かれているが、実際には client max protocol を指定しないと接続出来なかった。
- client min protocol で SMB2 を指定すると browsing が出来なかった。今の使い方だと browsing までは不要なので、このまま使用してみる。
![【NAS HDDセット】Synology DS218 & Seagate HDD [2ベイ / HDD IronWolf-4TBx2台同梱 / 64bitクアッドコアCPU 2GBメモリ搭載] 【NAS HDDセット】Synology DS218 & Seagate HDD [2ベイ / HDD IronWolf-4TBx2台同梱 / 64bitクアッドコアCPU 2GBメモリ搭載]](https://images-fe.ssl-images-amazon.com/images/I/41MVm0JJv%2BL._SL160_.jpg)
【NAS HDDセット】Synology DS218 & Seagate HDD [2ベイ / HDD IronWolf-4TBx2台同梱 / 64bitクアッドコアCPU 2GBメモリ搭載]
- 出版社/メーカー: Synology
- 発売日: 2018/08/01
- メディア: Personal Computers
- この商品を含むブログを見る