Raspberry Pi にホスト名でアクセスできない原因と Samba を使った NetBIOS 解決方法
Raspberry Pi を DHCP で運用していると IP アドレスが変わる可能性があるため、ホスト名でアクセスできるように設定したいケースがあります。しかし Raspbian にはホスト名解決のための Avahi(mDNS)が標準インストールされているにもかかわらず、Windows からホスト名でアクセスできない場合があります。本記事ではその原因と、Samba を使った NetBIOS によるホスト名解決の方法を解説します。
目次
ホスト名解決の仕組み — DNS・mDNS・NetBIOS・LLMNR
ホームネットワーク内でのホスト名解決には主に以下の3つの仕組みが使われます。
- mDNS:ローカルネットワーク内でマルチキャストを使ってホスト名を解決する。Raspbian には Avahi として標準搭載
- NetBIOS(NBNS):Windows で古くから使われるローカルネットワーク内のホスト名解決
- LLMNR:IPv6 向けに登場したホスト名解決。IPv4 でも動作するが IPv6 有効が前提
Wireshark で通信をキャプチャして確認すると、Windows から raspberrypi.local でアクセスした際の問い合わせ結果は以下のようになっています。

- DNS:知らないと返答される
- NBNS(NetBIOS):応答してくれる
- LLMNR:応答しない
Windows から mDNS でアクセスできない理由
ネット上の情報では Raspbian に avahi-daemon をインストールすれば解決すると書かれていますが、最新の Raspbian には最初からインストールされています。それでもアクセスできない理由は、Windows がデフォルトで mDNS に対応していないからです。
「Bonjour for Windows」や「iTunes」をインストールすれば解決しますが、できれば入れたくないケースも多いです。そこで Raspberry Pi 側で NetBIOS を有効にする方法を使います。
Samba のインストールで NetBIOS を有効にする
Samba は Raspberry Pi のファイルをWindows のネットワークドライブのように扱えるようにするサービスです。Samba をインストールする際に「WINS を有効にするか?」と聞かれ、ここで「Yes」と答えるだけで NetBIOS が有効になります。


「Yes」を選択すると Raspberry Pi の NetBIOS が有効になり、ホスト名.local(デフォルトは raspberrypi.local)で SSH などのアクセスができるようになります。
Samba のインストール手順
インストール
sudo apt-get install samba
インストール中に WINS サポートの有効化を確認されるので「OK」を選択します。
設定ファイルのバックアップと編集
sudo cp /etc/samba/smb.conf /etc/samba/smb.conf.bk
/etc/samba/smb.conf の最終行に以下を追記します。
[pi]
comment = Share
path = /home/pi
public = yes
read only = no
browsable = yes
force user = pi
Samba ユーザーの追加
sudo smbpasswd -a pi
サービスの再起動
sudo systemctl restart smbd
以上で設定完了です。PC から raspberrypi.local で SSH アクセスできるようになります。





ディスカッション
コメント一覧
まだ、コメントがありません