RaspberryPi(2B)で外部からSSHができない問題を解決

技術記録

どうしてか、ufwの設定もSSHの設定もルータの設定もあってるはずなのに接続ができない!!!!!!!!!(憤怒)という問題がたった一行違ってただけだったのでメモ。例によって最後まで読んで。

結論

デフォルトゲートウェイがなぜか最初の段階で0.0.0.0になってたんですよね。どこかで設定したのかもなんですがもうどうしてかわからないので修正します。

SHELL:

$ netstat -r
カーネルIP経路テーブル
受信先サイト    ゲートウェイ    ネットマスク       フラグ   MSS Window  irtt インタフェース
192.168.0.0     0.0.0.0  255.255.255.0   U       0   0        0   eth0

$ sudo route add default gw 192.168.0.1
// 追記する

$ netstat -r
カーネルIP経路テーブル
受信先サイト    ゲートウェイ    ネットマスク   フラグ   MSS Window  irtt インタフェース
default         192.168.0.1     0.0.0.0         UG        0 0          0 eth0
192.168.0.0     0.0.0.0         255.255.255.0   U         0 0          0 eth0

が、コレは一時的なものらしく…

永続的に適用させようと思ったらコレじゃダメらしいのでこっちで設定する。

SHELL:

$ sudo vim /etc/network/if-up.d/static-routes
/etc/network/if-up.d/static-routes:

#!/bin/sh
/sbin/route add -net 0.0.0.0 gw 192.168.0.1 netmask 0.0.0.0 eth0

ゲートウェイのアドレスは適宜置き換えてください。このファイルは最初なかったので新規作成でした。

SHELL:

// スクリプトファイルの実行権限を付与
$ sudo chmod +x /etc/network/if-up.d/static-routes

// スクリプトファイルを実行する
$ sudo /etc/network/if-up.d/static-routes

// 実行結果確認
$ sudo netstat -rn
カーネルIP経路テーブル
受信先サイト    ゲートウェイ    ネットマスク   フラグ   MSS Window  irtt インタフェース
0.0.0.0         192.168.0.1     0.0.0.0         UG        0 0          0 eth0
192.168.0.0     0.0.0.0         255.255.255.0   U         0 0          0 eth0

さらに…

 コレだけじゃ再起動した時にうまくいかないことがあったので、10秒待ってから実行させる手順を追加

/etc/network/if-up.d/static-routes:

#!/bin/sh
sleep 10
/sbin/route add -net 0.0.0.0 gw 192.168.0.1 netmask 0.0.0.0 eth0

参考文献

デフォルトゲートウェイを変更するには: https://www.atmarkit.co.jp/flinux/rensai/linuxtips/401cngdefgw.html
静的ルーティングの設定 – Linux: https://qiita.com/kooohei/items/b0931ae210911cc52adc
RaspbianなどのDebian系Linuxでスタティックルートを追加する方法: https://tech-mmmm.blogspot.com/2018/03/raspbiandebianlinux.html

タイトルとURLをコピーしました