web-dev-qa-db-ja.com

プロトコル2.0でNautilusマウントSMB共有を作成する

Nautilus経由でSMB共有をマウントすると、転送速度が遅くなります。そこで、掘り下げて、CLI経由で共有をマウントし、具体的にはプロトコルバージョンを2.0に設定すると、はるかに高速になることがわかりました。

CLIで使用するコマンドは次のとおりです。

Sudo mount -t cifs -o vers=2.0,username=Lukas,password=xxxx,uid=1000,gid=1000 //nas/video /media/lukas/nas

共有をマウントするときにNautilusにバージョン2.0を使用させるにはどうすればよいですか?

  • Nautilusバージョンは「GNOME nautilus 3.26.3」です
  • Gnomeシェルのバージョンは「GNOME Shell 3.28.3」です
  • Ubuntuバージョンは「18.04.1 LTS」です
7
Lukas Knuth

興味のある方は別の提案があります。 sambaクライアントがNASにアクセスする方法をいじる代わりに-必要に応じてSMB2/3を単独で使用するため、これは不要であるはずです-なぜCIFSを自動的に使用しないのですか?

/ etc/fstabの最後に次の行を追加します。

//nas/video /media/lukas/nas cifs vers=2.0,username=Lukas,password=xxxx,uid=1000,gid=1000,noauto,user 0 0

注:サーバーは、サーバーがサポートしている場合、mDNS修飾ホスト名として表現することもできます:// nas.local/videoまたはIPアドレス:/ 192.168.0.100/video

これの仕組み:

noauto =は、ブート時にマウントされないようにします。必要なときにCIFSをオンデマンドで使用するように設定します-ラップトップを持っている場合に便利です。

ser =は、通常のユーザー(非Sudo)が共有をマウントできるようにします。

マウントポイント =/mediaの下にあるため、udisks応答が発生します。

(1)Nautilusのサイドパネルにアイコンが表示されます。

(2)「実行可能」になります。クリックすると、システムはfstabに移動してマウント方法を確認し、マウントします。もう一度クリックして共有をアンマウントします。

このアプローチには副次的な利点があります。 Nautilusに追加するアイコンは、gedit> Openなどのほとんどのアプリケーションにも表示されます。その後、アプリケーションから共有を直接マウントできます。

これを読んでいる人への注意ここではマウントポイントが重要です。 udisksマジックが機能するには、マウントポイントが/ mediaまたはホームディレクトリの下にある必要があります。

3
Morbius1

簡単な答えは、Nautilusがすでにそれを行っているということです。発生する可能性があるのは、CIFS(Linuxカーネルで制御)とgvfs/smbclient(Nautilusが使用する)共有の違いです。 CIFS方式は、おそらくgvfsのオーバーヘッドのために、より高速に見えます。

Nautilusが使用しているsambaクライアントは、SMB1より前の「min」から「max」のSMB3_11までの間に使用するのに最適なSMB方言を見つけるためにサーバーとネゴシエートします。

4.13.5以降のLinuxカーネルも、SMB2.1とSMB3の間でCIFSを使用してサーバーとネゴシエートします。

/etc/samba/smb.confにmin値を追加することで、Nautilusでsambaクライアントが自然に行っていることをオーバーライドできると思いますが、違いはないはずです:この行を[global]セクションにワークグループ=ワークグループ行:

client min protocol = SMB2

SMB2には、SMB2_02、SMB2_10、SMB2_22、SMB2_24のさまざまなバリアントがあります。デフォルトでは、「SMB2」は「SMB2_10」を選択します。最大値には何も追加しないでください。

編集:「クライアント最小プロトコル」行をサーバーまたはクライアントのどこに配置するかについて、多少の混乱があるようです。サーバー内にあることが提案されています。

18.04サーバーを設定し、サーバーで「client min protocol = SMB2」を指定し、Ubuntu 16.04クライアントを使用してアクセスした場合、設計上、せいぜいSMB1(別名NT1)のみがサーバーにアクセスできます。サーバーでのそのアクセスの結果:

xxx@srvub1804:~$ Sudo smbstatus

Samba version 4.7.6-Ubuntu
PID     Username     Group        Machine                                   **Protocol**               
-------------------------------------------------------------------------------------
4681    nobody       nogroup      vub1604 (ipv4:192.168.1.140:45648)        **NT1**

クライアントはSMB1(NT1)を使用してサーバーにアクセスするため、変更はありません。

ただし、クライアントのクライアント最小/男性設定を「クライアント最小プロトコル= SMB2」および「クライアント最大プロトコル= SMB3」に変更し、サーバーから「クライアント最小プロトコル」を削除すると、予期した場所になります:

xxx@srvub1804:~$ Sudo smbstatus


Samba version 4.7.6-Ubuntu
PID     Username     Group        Machine                                   **Protocol**             
-------------------------------------------------------------------------------------
4915    nobody       nogroup      vub1604 (ipv4:192.168.1.140:45664)        **SMB3_11**

混乱は、「min protocol」(別名「server min protocol」)と呼ばれる別のパラメータに起因していると思います。実際には、smbの最小の方言がアクセスに許可されるかどうかを決定します。これはサーバー上で行われます。 「クライアント最小/最大プロトコル」はクライアントで実行されます。

クライアントにsmb.confがある場合、それは素晴らしいことです。そうでない場合は、次の方法でインストールできます。

Sudo apt install smbclient
3
Morbius1