Raspberry pi (Linux)のIPアドレス固定のやり方、dhcpの設定方法

スポンサーリンク

はじめに

ラズパイをssh接続して他のPCから操作するとき
一番詰まるのがラズパイのIPアドレスの固定方法

他のLinuxや過去のラズパイ関連の記事をさがしてやっても
うまくいかないことが多いですがこれから紹介するやり方でやれば
出来るはずです。

wifiルーターの固定dhcpの設定

まずはwifiルーターの設定から。wifiルーターはELECOM製
バッファローやシスコのルーターだとまたやり方が違うとおもうので
そこは調べて見てください。多分UIの違いだけで本質は同じはず。

そもそもdhcpとは何なのか?

dhcpは  Dynamic Host Configuration Protocolの略

パソコンがインターネットに接続するには様々な情報を事前に
設定しておく必要がある。これを自動で設定してくれる仕組みが dhcpである。家庭用のwifiルーターにはdhcpサーバーが組み込まれていて
僕らはPCを簡単にネットに繋げることが出来る。


dhcpはどんな情報を自動で設定しているの?

IPアドレスの割当やどの宛先のルーターの中継してもらうかを指定するサブネットマスク
ルーターの場所を示すデフォルト・ゲートウェイドメイン名からipアドレスを調べる
DNSサーバーのIPアドレスを自動で設定している。

今回dhcpを固定してラズベリーパイのipアドレスを固定するので
デフォルト・ゲートウェイDNSサーバーのipアドレスを調べる必要がある。



デフォルト・ゲートウェイを調べる

まずルーターの管理画面に入るためにデフォルトゲートウェイ
ipアドレスを調べる。デフォルトゲートウェイipアドレスwifiルーターのアドレス
と考えてしまってよい。

Linuxの場合だけ今回かいておく。端末を開いて以下のコマンドを実行

$route -n

Gatewayの欄の192.168.2.1がデフォルト・ゲートウェイ

f:id:shangtian:20190104165736p:plain

windowsmacでの調べ方は次の記事にまとめました。

www.shangtian.tokyo

ルーターの管理画面でdhcpの設定


先程調べたデフォルト・ゲートウェイipアドレスをブラウザに入力してログインする。

f:id:shangtian:20190104210635p:plain



WAN&LAN設定をクリック

f:id:shangtian:20190103235332p:plain

固定DHCP設定をクリック

f:id:shangtian:20190103235342p:plain

固定DHCPの有効にクリック

この画面で入力が必要な情報はラズパイに割り当てるIPアドレス
ラズパイのMACアドレス。コメントは適当に。

f:id:shangtian:20190103235404p:plain

ラズパイのIPアドレスを決める

割り当てるIPアドレスは自分の好きなアドレスを指定いいです。ただし
ローカルネットワークで使えるアドレスは192.168.0.0~192.168.255.255までなので
その間のアドレスにすること。またデフォルト・ゲートウェイのアドレスと重複しないように
すること。今回は192.168.2.110に設定した。


ラズパイのmacアドレスを調べる

MACアドレスはハードウェア固有のアドレス。マイナンバーみたいなもの。

www.shangtian.tokyo

次のコマンドを叩いて、wlan0の欄のetherのアドレスがラズパイのアドレス

$ifconfig 


MACアドレスはぼかしてある f:id:shangtian:20190104214900p:plain
ラズパイを有線LANで接続するならeth0の欄のetherのアドレスを記入すること

入力して適用


以下の内容を入力して追加ボタンをクリックして適用ボタンをクリック

IPアドレス      192.168.2.110
MACアドレス  cf:39:fb:33:21:aa
コメント   raspberry_pi

*macアドレスは変えてある f:id:shangtian:20190103235404p:plain



再起動して

f:id:shangtian:20190103235425p:plain
しばらく待つと設定完了

f:id:shangtian:20190103235441p:plain

ラズベリーパイ側の設定

ラズパイのOSはRaspbian。他のOSの場合はうまく行かないかもしれない。
そこは自己責任で・・・

編集するファイルは/etc/dhcpcd.conf

$sudo nano /etc/dhcpcd.conf

スクリプトの最後に以下の内容を追記する

interface eth0

static ip_address=192.168.2.110
static routers=192.168.2.1
static domain_name_servers=192.168.2.1

interface wlan0

static ip_address=192.168.2.110
static routers=192.168.2.1
static domain_name_servers=192.168.2.1

無線LANだけ使うので実際にはeth0の記述はしてないけど
両方書いとくのが無難かな

ラズパイの言語を中国語にしたのでスクリーンショット
端末の言語が中国語になっている。

f:id:shangtian:20190103235028p:plain



内容を書き込んだらctr + oで保存しctr + xでnanoを終了

次のコマンドを叩いてラズパイを再起動させる

$sudo reboot

再起動したら次のコマンドを実行してipアドレスが指定したものになってるか
確認する。有接ならeth0,無線ならwlan0のinetのアドレスを探す。

$ifconfig 

トラブルシューティング

一応トラブルシューティングについて書いておく。

ipアドレスが反映されてない



ifconfigでinetに記載されているアドレスが自分で指定したものと違うとき
はdhcpcd.confの記述が間違ってるかも。もう一度確認してみる。

ネットが繋がらない


ブラウザからネットにつなげようとしたが繋がってないとき
端末をひらいてpingを打ってみる

$ping デフォルトゲートウェイのアドレス

僕の場合は

$ping 192.168.2.1

これで返答がちゃんと来ればルーターとラズパイ間の接続は大丈夫
ここでだめならstatic routersが正しくないか、ラズパイに割り当てた
ipアドレスが適当でない可能性がある。


dhcpcd.confの確認と192.168.0.0~192.168.255.255の間になっているか
確認する。他のデバイスipアドレスと重複してないか確認する。

ここまでオッケーなら同じローカルネットワーク環境下にある他のデバイス
pingをおくってみる。

$ping 他のデバイスのipアドレス


これで大丈夫ならDSNの設定が間違っているかもしれない
dhcpcd.confのstatic domain_name_serversを確認する

修正したら

$ping www.google.com

をやって返答があれば修正完了!



<参考文献>

https://www.raspberrypi.org/learning/networking-lessons/rpi-static-ip-address/

ネットワークにつながらない時に確認する4つの手順Linux | 情報セキュリティの勉強部屋

絶対わかる! TCP/IP超入門 改訂版 (日経BPムック)

絶対わかる! TCP/IP超入門 改訂版 (日経BPムック)

Hacking: 美しき策謀 第2版 ―脆弱性攻撃の理論と実際

Hacking: 美しき策謀 第2版 ―脆弱性攻撃の理論と実際