Raspberry Piに固定IPを割り当てる方法
前書き
Raspberry Piに他PCからSSHなどでアクセスする場合、IPアドレスが必要です。IPアドレスがDHCPで動的に割り当てられる場合、都度Raspberry Pi3のIPアドレスを調べなければなりません。その手間を無くすため、IPアドレスを固定化します。
IPアドレスの固定化のため、必要な情報は以下の4点です。本記事では、これらの情報の確認方法およびIPアドレス固定化のための設定を記載します。ただし、Raspberry Pi3が有線LANもしくは無線LAN経由でネットワーク接続できている状態が前提です。
- DHCPサーバが割り当てるIPアドレス範囲
- サブネットマスク
- デフォルトゲートウェイアドレス
- DNSサーバアドレス
DHCPサーバが割り当てるIPアドレス範囲
実際の所、IPアドレスの固定化では、DHCPサーバが割り当てるIPアドレスを正確に知る必要がありません。最低限、「このIPアドレスで固定化しよう!」と考えているIPアドレスが、DHCPサーバのIPアドレス割り当て範囲に入っていれば良いです。
そのため、真面目な調べ方と雑な調べ方の二通りを示します。後者で良いと思います。
真面目な調べ方
DHCPサーバが割り当てるIPアドレス範囲は、環境によって異なります。一般的な家庭の場合、DHCPサーバはルータが兼ねています。そのため、割り当てIPアドレスを調べる場合、「ルータのIPアドレスをブラウザの検索バーに入力し、管理画面を開き、情報を取得」もしくは「説明書を確認」が必要になります。
ここでのルータのIPアドレスは、後述する「デフォルトゲートウェイアドレスの取得方法」を読めば、取得できます。管理画面を開いた後、設定画面から「割り当て開始IPアドレス」と「割り当て数」を探し、その情報を用いて割り当てIPアドレス範囲を計算します。
この方法は、管理画面がルータ製品によって異なるため、詳細は割愛します。
雑な調べ方
固定IPアドレスに何を割り当てれば良いか分からない場合、現在の設定値(動的に割り当てれたIPアドレス)を使用してください。この方法で上手く動作しない場合、頭が悪い方法ですが、IPアドレス末尾の数字を+1し続けて、繋がるまで繰り返せば良いです。
現在のIPアドレス(動的割り当て値)は、以下のコマンドで確認できます。
1 2 |
$ hostname -I (注釈):-Iオプションは、ホストのIPアドレスを表示 192.168.10.108 (注釈):動的に割り当てられたIPアドレス |
サブネットマスクの取得方法
サブネットマスクは、IPアドレスのネットワーク部を割り出すための情報です。IPアドレスは、ネットワーク部とホスト部から成り立っています。ネットワーク部は、IPアドレスとサブネットマスクの論理積から得られます。詳しい説明は、このサイトが分かりやすいです。
サブネットマスクは、ifconfigコマンドで”netmask XXX.XXX.XXX.X”と記載された部分から確認できます。有線接続の場合はeth0、無線接続の場合はwlan0の結果を確認してください(<>に関する部分は表記が崩れていますが、それはwordpressのおせっかい機能のためです)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
$ sudo ifconfig eth0: flags=4099<UP,BROADCAST,MULTICAST> mtu 1500 ether b8:27:eb:c4:2f:1d txqueuelen 1000 (イーサネット) RX packets 0 bytes 0 (0.0 B) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 0 bytes 0 (0.0 B) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536 inet 127.0.0.1 netmask 255.0.0.0 inet6 ::1 prefixlen 128 scopeid 0x10 loop txqueuelen 1000 (ローカルループバック) RX packets 28 bytes 1792 (1.7 KiB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 28 bytes 1792 (1.7 KiB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 wlan0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 inet 192.168.10.108 netmask 255.255.255.0 broadcast 192.168.10.255 (注釈):netmaskがサブネットマスク inet6 fe80::30eb:4e7:7e9:4b30 prefixlen 64 scopeid 0x20 ether b8:27:eb:91:7a:48 txqueuelen 1000 (イーサネット) RX packets 738 bytes 70465 (68.8 KiB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 512 bytes 83002 (81.0 KiB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 |
デフォルトゲートウェイアドレスの取得方法
デフォルトゲートウェイとは、外部ネットワークと通信する場合、通信プロトコルを変換かつ外部ネットワークと接続するシステムです。デフォルトゲートウェイのIPアドレスは、routeコマンドでDestination(受信先サイト)が”0.0.0.0″の行を確認すれば判断できます。該当行のGatewayが、デフォルトゲートウェイのIPアドレスです。
1 2 3 4 5 |
$ route -n (注釈):-nオプションは、名前解決をせずに、IPアドレスを表示 カーネルIP経路テーブル 受信先サイト ゲートウェイ ネットマスク フラグ Metric Ref 使用数 インタフェース 0.0.0.0 192.168.10.1 0.0.0.0 UG 303 0 0 wlan0 192.168.10.0 0.0.0.0 255.255.255.0 U 303 0 0 wlan0 |
DNSサーバアドレス取得方法
DNSサーバとは、ホスト名・ドメイン名などの名前からIPアドレスを得るシステムです。DNSサーバのIPアドレスは、”/etc/resolv.conf”を参照すれば調べられます。
1 2 3 |
$ cat /etc/resolv.conf # Generated by resolvconf nameserver 192.168.10.1 |
IPアドレス固定化のための設定
固定IPアドレスを”192.168.10.108″、サブネットマスクを”255.255.255.0(/24)”、デフォルトゲートウェイ・DNSサーバを”192.168.10.1″と仮定します。なお、サブネットマスク(XX.XX.XX.XX)をネットマスク(/8〜/32の範囲)に変換しなければならないので、変換表を使ってください。
上記の仮定の場合、設定ファイル”/etc/dhcpcd.conf”に以下のように追記します。
1 2 3 4 5 6 7 8 9 10 11 12 |
$ sudo vi /etc/dhcpcd.conf (注釈):任意のエディタで編集して良い。 [以下、/etc/dhcpcd.conf内] # 以下の内容が追記項目 # 固定IPアドレスおよびサブネットマスク static ip_address=192.168.10.108/24 # デフォルトゲートウェイ(基本的には、ルータのIPアドレス) static routers=192.168.10.0 # DNSサーバ(基本的には、ルータのIPアドレス) static domain_name_servers=192.168.10.0 |
別の手段:/boot/cmdline.txtを修正
Raspberry Piの/boot/cmdline.txtに
ip=(Raspberry PiのIPアドレス)
を追記し、Raspberry Piを再起動するとIPアドレスを固定化できます。
ロシア人と国際結婚した地方エンジニア。
小学〜大学院、就職の全てが新潟。
大学の専攻は福祉工学だったのに、エンジニアとして就職。新卒入社した会社ではOS開発や半導体露光装置ソフトを開発。現在はサーバーサイドエンジニアとして修行中。HR/HM(メタル)とロシア妻が好き。サイトに関するお問い合わせやTwitterフォローは、お気軽にどうぞ。
1件の返信
[…] Raspberry Pi3を固定IP化する方法 […]