白猫のメモ帳

C#とかJavaとかJavaScriptとかHTMLとか機械学習とか。

WindowsマシンのネットワークにSambaのサーバを表示させる

UbuntuにSambaをインストールしてNAS化する - 白猫のメモ帳
前回の続きです。

Sambaの設定をしたのでWindowsからUbuntuのフォルダが見られるようになったのですが、Windows側のネットワークのところに対象のサーバが出てきません。
IPアドレスやホスト名を入れてのアクセスはできているのに不思議です。

参考にさせていただきました。
pcvogel.sarakura.net
qiita.com

wsddをインストール

色々調べていたらWindows側でSMB1.0を有効にするといいよみたいなことも書いてあったのですが、わざわざ無効になっている古い機能を有効にするのも何かなと思ったのでWeb Service Discoveryに対応させる方向で行きます。
wsddを使わせてもらいます。

wsdd implements a Web Service Discovery host daemon. This enables (Samba) hosts, like your local NAS device, to be found by Web Service Discovery Clients like Windows.

まずrootにsuした上で以下のコマンドを叩きます。
なんでsudoじゃないっていうとsudoはリダイレクトに効かないので権限がないよと言われてしまいます。
(まぁいろいろ技はあると思うのですが、rootになれるので面倒なことはせずにこれで)

$ sudo su -
# echo deb https://pkg.ltec.ch/public/ $(lsb_release -cs) main > /etc/apt/sources.list.d/wsdd.list
# exit

rootから戻って続き。
やってることはaptの取得先を追加、証明書を登録してからインストールという流れ。
最初からなんでもaptでとれるわけじゃないんですね。

$ sudo apt-key adv --fetch-keys https://pkg.ltec.ch/public/conf/ltec-ag.gpg.key
$ sudo apt update
$ sudo apt install wsdd
$ sudo systemctl enable wsdd

あとからよく見たら公式のGitHubにオフィシャルに入ったよって書いてありました。
Ubuntu 22.04 LTS以上はいきなりapt installでよかったみたい。あらら。

Starting from Ubuntu 22.04 LTS (Jammy Jellyfish), wsdd has landed in the official universe package repository. Thus, it is sufficient to install it via

ユニットファイルの編集

wsdd.serviceをsmbd.service(Samba)より後に起動したいのでおまじないを書きます。

$ sudo vi /lib/systemd/system/wsdd.service

こっちでもいいけどnanoのエディタで開いてしまったので上のコマンドで…。

$ sudo systemctl edit --full wsdd.service

AfterとWantsに追加。

[Unit]
Description=Web Services Dynamic Discovery host daemon
Documentation=man:wsdd(8)
; Start after the network has been configured
After=network-online.target smbd.service
Wants=network-online.target smbd.service

[Service]
Type=simple
; The service is put into an empty runtime directory chroot,
; i.e. the runtime directory which usually resides under /run
EnvironmentFile=/etc/default/wsdd
ExecStart=/usr/sbin/wsdd --shortlog --chroot=/run/wsdd $WSDD_PARAMS
DynamicUser=yes
User=wsdd
Group=wsdd
RuntimeDirectory=wsdd
AmbientCapabilities=CAP_SYS_CHROOT

[Install]
WantedBy=multi-user.target

ファイアウォールは3702/udpと5357/tcpを開ける。

sudo ufw allow 3702/udp
sudo ufw allow 5357/tcp


見えるようになりました。
やったね。
次回はDockerのインストールをします。