Windows10のネットワークにSambaサーバを表示させる

はじめに

Windows10 がいつからか NetBIOS を使わなくなり、Web Service Discovery だけを使うようになったせいで Samba で構築した共有フォルダが Windows10 のネットワーク一覧に表示されなくなってしまいました。(手動でIPかドメイン名を入力すればアクセス可能)

対策としては Windows10 で「SMBv1クライアント」の機能を有効にし、NetBIOS を再び使うように設定する、というのをよく見かけます。しかし古くてセキュリティに問題のあるクライアントを有効にするのはなんとなく抵抗がありますし、Windows が複数台あったら面倒です。

そこで今回は Samba サーバー側で Web Service Discovery を有効にすることにします。

wsdd 設定

いつのまにやら簡単に Web Service Discovery の機能を追加する wsdd なるものが公開されていました。

https://github.com/christgau/wsdd

2017年11月に公開のようなので、問題が表面化した?Windows10 の Fall Creators Update(1709) の2か月後ですね。

wsdd の実体は単なる Pythonスクリプトのようなので、必要なのは Python3 のみのようです。私は CentOS8 を使っているので、以下 CentOS8 での手順を確認していきます。他のOSの場合は上記のサイトを参考にしてください。

インストール

epel レポジトリを追加し

インストールします。

ファイアウォール設定

TCP、UDP の 3702、TCP の 5357 を開ける必要があります。dnfでインストールした場合は、firewalld 用のサービスデータが追加されています。

firewalld を使っているならこんな感じで。

起動

サービスも追加されてるので systemctl から起動できます。

動作確認がうまくいったら自動起動するようにします。

動作確認

Windows10のネットワークを開きます。詳細表示にし、項目右クリックから探索方法の表示を追加しました。

wsdd 起動前の例。表示されてるのは自分(Windows10マシン)だけでSambaサーバーは表示されていない状態です。

wsdd を起動してみるとSambaサーバーが追加されました。探索方法もWSDです。

何も表示されない場合は Windows10 側で「Function Discovery Provider Host」と「Function Discovery Resource Publication」のサービスが有効になっているか確認します。

自動で開始する設定にします。

Windows 側でがんばるより、Samba サーバー側を Web Service Discovery に対応させる方が楽で問題も起きにくいと思います。