ぱせらんメモ このページをアンテナに追加 RSSフィード

とあるWeb系ソフトウェアエンジニアのブログ。
いちおう技術系ネタ帳ということで、日記はあまり書かない。

2013-10-23

Raspberry Pi(Raspbian)にmDNSを設定する

| Raspberry Pi(Raspbian)にmDNSを設定するを含むブックマーク Raspberry Pi(Raspbian)にmDNSを設定するのブックマークコメント

Raspberry Piディスプレイキーボードも繋がずに部屋の隅っこに転がしておいてリモートからアクセスするには、IPアドレスを知らないといけないわけだけど、せっかくのポータブルなRasPiに固定IPアドレスを設定するのも微妙な感じがするので、mDNSを活用してみることにした。

Appleが好きなアレ。コンピュータ名.localでアクセスできるやつ。


とりあえず、今回はRaspberry PiをなんとかしたかったのでRaspbianの内容だけど、CentOSでもUbuntuでもArch Linuxでもパッケージ名が違ったりするぐらいでだいたい同じ。

説明とかどうでもいい人向け

# ホスト名をきちんと設定する
sudo -e /etc/hostname

# avahi-daemonとnss-mdnsをインストール
sudo apt-get install avahi-daemon libnss-mdns

# avahiにsshサービス追加
sudo -e /etc/avahi/services/ssh.service

    中身
    ----------------
    <?xml version="1.0" standalone='no'?>
    <!DOCTYPE service-group SYSTEM "avahi-service.dtd">

    <service-group>
      <name replace-wildcards="yes">%h</name>

      <service>
        <type>_ssh._tcp</type>
        <port>22</port>
      </service>
    </service-group>
    ----------------

# 再起動
sudo reboot

ホスト名の設定

アクセスするためのドメインが"ホスト名.local"になるので、なにはともあれホスト名を設定する。

sudo -e /etc/hostname
paseraspi

avahi-daemonとnss-mdnsのインストール

sudo apt-get install avahi-daemon libnss-mdns

ちなみにavahiがmDNS/DNS-SDの実装で主にresponderとして使う感じ*1で、nss-mdnsの方はNSSのhostsでmDNSによる名前解決をサポートするためのプラグイン

ざっくり言うとavahi-daemonがこのマシンをmDNSで発見してもらうためのサーバで、nss-mdnsが別のマシンをmDNSで見つけるためのクライアントみたいな感じ。

なので、今回の用途だとavahi-daemonだけあればよくて、RasPiからどっかへ.localでアクセスする気がないならlibnss-mdnsはなくてもいいかも。


avahiの設定

/etc/avahi/servicesに応答させたいサービスの設定ファイルを作る。

例えばsshならこんな感じ。中身についてはman avahi.serviceで。

sudo -e /etc/avahi/services/ssh.service
<?xml version="1.0" standalone='no'?>
<!DOCTYPE service-group SYSTEM "avahi-service.dtd">

<service-group>
  <name replace-wildcards="yes">%h</name>

  <service>
    <type>_ssh._tcp</type>
    <port>22</port>
  </service>
</service-group>

で、avahi-daemon再起動

sudo /etc/init.d/avahi-daemon restart

あとiptablesとかでファイアウォールを設定している場合は、224.0.0.251:5353宛のUDPを通す必要がある。


これで"ホスト名.local"でRaspberry Piにアクセスできるようになったはず。


nss-mdnsの設定

/etc/nsswitch.confのhosts項目を書き換えるんだけど、インストールした時点で自動的に書き換えられてるはず。

sudo -e /etc/nsswitch.conf
hosts:          files mdns4_minimal [NOTFOUND=return] dns mdns4

再起動とかは特にない。


avahi-browse

avahi-utilsに入ってるavahi-browseを使うとネットワーク内の利用可能なサービスを一覧表示できる。

sudo apt-get install avahi-utils
avahi-browse -ar

*1:avahi-browseとかもある

moriuti moriuti 2014/07/08 14:03 こんにちは!先日ラズベリーパイを購入しました。そしてインストール済のSDカードも一緒に購入したのですがディスプレイがないため起動できません。

仮想空間やリモートでつなぐことはできないのでしょうか。
まずインストール済みのSDカードの中身を知りたいのですがSDカードを差し込むとフォーマットしてくださいとでますしキャンセルをして先に進もうとすると
アクセス権がありませんと出ます。
仕方がないのでUSBのカードリーダーに差し込んでみると
中身はありますがファイルをクリックしても中身が表示されません。
windowsでは表示されないのですか?
sdにトレントを書き込むのはできるが読み込みはできない?Ubuntuを立ち上げてやろうとしてもデバイスが(USB)認識されません。どのようなやり方が一番やりやすいのでしょうか。

詳しくお教えいただけませんか。いろいろ勉強しているものですので(初心者)

Vmwareでの起動、あるいはリモートでの起動表示どちらでも構いませんのでよろしくお願いします

moriuti moriuti 2014/07/08 14:03 こんにちは!先日ラズベリーパイを購入しました。そしてインストール済のSDカードも一緒に購入したのですがディスプレイがないため起動できません。

仮想空間やリモートでつなぐことはできないのでしょうか。
まずインストール済みのSDカードの中身を知りたいのですがSDカードを差し込むとフォーマットしてくださいとでますしキャンセルをして先に進もうとすると
アクセス権がありませんと出ます。
仕方がないのでUSBのカードリーダーに差し込んでみると
中身はありますがファイルをクリックしても中身が表示されません。
windowsでは表示されないのですか?
sdにトレントを書き込むのはできるが読み込みはできない?Ubuntuを立ち上げてやろうとしてもデバイスが(USB)認識されません。どのようなやり方が一番やりやすいのでしょうか。

詳しくお教えいただけませんか。いろいろ勉強しているものですので(初心者)

Vmwareでの起動、あるいはリモートでの起動表示どちらでも構いませんのでよろしくお願いします

リンク元
Connection: close