RaspberryPiのIPアドレス
Raspberry Pi OS上では、初期状態であればIPアドレスは動的に変化するように設定されています。これは既に利用中のパソコンやスマートフォンなどにもIPアドレスが振られているため、これらと同じアドレスにならないように、接続されている環境に合わせて自動的にIPアドレスを割り当てるDHCP(Dynamic Host Configuration Protocol)という設定になっているからです。
DHCPにしておくとルーターから設定情報を取得する
ネットワークの設定情報は自宅や会社などでも通常「ルーター」と呼ばれるインターネットと家庭、社内ネットワークを接続するための通信機器にあります。ルーターには「DHCPサーバー」と呼ばれるネットワーク内に新しい機器が接続され、その通信機器がDHCPの設定になっていると、その危機に対してルーターの設定情報を送り、自動的にネットワークを利用できるようにします。
DHCPだとIPアドレスが起動ごとに変わる場合がある
DHCPの設定にしておくと、使っていないIPアドレスを避けて自動的にIPアドレスを適当に割り振ります。一度割り振ると大抵の場合次回からも同じIPアドレスを振りますが、いったんネットワークから接続を切ったり、ルーターを再起動したりするとIPアドレスが変更になってしまいます。
固定IPが必要な場合
ラズベリーパイを使ってサーバー構築などする場合は、このサーバーに外部からアクセスするわけですが、この時にIPアドレスが固定されていないと、どのIPアドレスでアクセスすればよいのか分からなくなってしまいます。そのためファイルサーバーやフェブサーバーなどのサーバーを構築する際にはIPアドレスが変わらないように固定しておく必要があります。
IPアドレスの確認
現在、ラズベリーパイのIPアドレスがどうなっているか確認するためにはifconfigコマンドを使います。
$ifconfig
以下のように接続されているネットワークカードのところにIPアドレスが表示されます。この例ではワイヤレス接続されているため、wlan0 のところにIPアドレスが表示されています。
画面の「inet」の部分に書かれているのが現在DHCPから割り当てられているIPアドレスです。netmaskが255.255.255.0となっているため、このルーターのネットワークは192.168.120.***のネットワークになっているため、この場合、固定IPを設定するときは***の部分の数字を変更します。
Raspberry Pi OSのIPアドレスの固定方法
GUIマウス操作で簡単に設定
固定IPへの変更はGUI上で簡単に設定可能です。まずは、画面右上のネットワークのマークを右クリックします。ちなみにこのネットワークのマークですが、下の図のように有線LANの場合は「↑↓」マークで、WiFiで接続されている時には扇型のWiFiマークになっています。
このマークの上で右クリックするとメニューが表示されますので、「Wireless& Wired Network Settings」を選択してクリックします。
Network Preferencesが開いたら「Interface」の右側でどのインターフェイスに対して固定IPにするかを選択します。今回はWiFi接続だけですので、wlan0を選択します。するとグレーアウトしていた入力欄が入力できるようになります。ifconfig で調べたIPアドレスより、今回は以下のような設定にしてみます。
- IP : 192.168.120.112 (入力の際は最後に /24をつけます。)
- Router : 192.168.120.1
- DNS : 192.168.120.1
IPアドレスの設定の際に「/24」をつけるのには理由があります。このネットワークのnetmaskは255.255.255.0でした。これはサブネットマスクと呼ばれるもので、最後の数字が0の場合はCLASS-Cというネットワークレベルになります。これは通常32ビットで表すIPアドレスの24ビットまでを固定して、それがネットワークアドレスである事を表示しています。つまり、今回の例で言うと192.168.120.*** がネットワークアドレスになって***の部分をネットワーク上のコンピュータに割り振っていくというものです。ちなみに/16とすると192.168.***.***というCLASS-Bのネットワークになり、より多くの台数のコンピュータを接続可能になります。
DNS Serversの欄に192.168.120.1を入力したのは、たいていの場合ルーターにはDNSサーバーが搭載されているため、同じIPを設定します。もしDNSサーバー機能が搭載されていなかったり、機能を停止していたのなら、Googleが公開しているDNSサーバーのIPアドレス「8.8.8.8」を設定してみてください。
以上で、IPの設定が完了ですので、「適用」をクリックすれば設定完了です。
ターミナルからの設定方法
もう1つは、もっとライトなラズベリーパイを使っていたり、リモートからSSHなどでラズベリーパイを操作するときにはGUIが利用できない場合があるため、シェル上で設定する方法です。
ターミナルを起動して、Vi やnanoエディタなどを使って直接設定ファイルを書き換えます。
設定ファイルは「/etc/dhcpcd.conf」というファイルを書き換えます。今回はnanoエディタを使って書き替えてみます。この設定ファイルはシステムの設定ファイルですので、管理者権限で実行しないと書き換えができないため、sudoをつけて開きます。
$sudo nano /etc/dhcpcd.conf
この設定ファイルの最後の方に「#Example static IP configuration:」という欄があり、書き方の例が表示されています。(先頭に「#」がついている文章はnano上では緑色になり、コメントアウトされていて有効でない文字列という事になります。)これを例にwlan0 の設定を書き足します。
一番最後までスクロールさせた後に「# Static WiFi profile」という#をつけてコメントアウトした行を書きました。これはどこに何の設定を描いたかを忘れないようにするためです。設定した日付などを書くのも良いでしょう。
今回はinterfaceがwlan0 WiFiですのでこのように書きますが、有線の場合はeth0となります。
以下の設定を書き加えてファイルを上書きします。
interface wlan0
static ip_address=192.168.120.112/24
static routers=192.168.120.1
static domain_name_servers=192.168.120.1
nanoで上書きする場合は「Ctrl + Oキー」を押して「Enter」を押します。これで書き込み完了です。
後は再起動することによりこの設定が有効になります。先ほどのGUIの「Wireless& Wired Network Settings」を見てもきちんと設定が変更になっていることが分かります。
以上がラズベリーパイを固定IPにする方法です。