Overclocking Time's 「ベンチャー非正規雇用」の限界エンジニアゆるふわ技術ブログ!
  • Home
  • Blog
JA EN
☰ 目次
    2026年3月26日
    #備忘録#技術解説

    【Bookworm】ラズパイのSSHが1日で繋がらなくなる?Raspberry Pi Connectで見つけた真犯人とnmcliによる恒久対策

    【Bookworm】ラズパイのSSHが1日で繋がらなくなる?Raspberry Pi Connectで見つけた真犯人とnmcliによる恒久対策

    私はラズベリーパイで自作サービスやサーバーを24時間運用しようと意気込んだものの、 「なぜか丸1日経つと別PCからSSHアクセスできなくなる」 現象に悩まされていました… 「ラズパイを再起動すれば直るけど、毎日やるのは面倒だし、根本的な解決になっていない…」

    原因はRaspberry Pi OSの世代交代(Bookworm)と、ネットワークの基本的な仕組みが原因かもしれません。

    症状:なぜ「再起動で直る」のに「1日」でダメになるのか

    ラズパイが以下のような状態で悩んでいました。

    • 丸1日(約24時間)経過すると、突然SSH接続ができなくなる。
    • ラズパイを物理的に再起動(電源抜き差し等)すると、直る。
    • 「Raspberry Pi Connect」でのブラウザ接続は通じる。

    最後の「Raspberry Pi Connectは通じる」というのが、真犯人を特定する最大のヒントです。これは 「ラズパイ本体はフリーズしておらず、インターネット(外向き)には繋がっているが、ローカルネットワーク内の住所(IPアドレス)を見失っている」 ことを示唆しています。

    真犯人は「DHCPのリース切れ」

    多くの家庭用ルーターは、 DHCP という機能で機器にIPアドレスを自動割り当てします。この割り当てには「リース期間(有効期限)」があり、多くの場合 24時間 に設定されています。

    1. 起動時: ルーターから「今は .125 を使っていいよ(期限は1日)」と許可される。
    2. 再起動時(一時しのぎ): ラズパイが例えば「前と同じ .125 でいい?」と聞き、ルーターが「OK」と返す(暗黙の再利用)。
    3. 1日後: 期限切れ。Wi-Fiの瞬断などで更新に失敗すると、ルーターは .125 を回収し、ラズパイに 新しいIPアドレス(例: .133) を割り当てます。
    4. 結果: あなたのPCは古い .125 にアクセスしようとしますが、ラズパイは .133 に引っ越しているため、SSHがつながらなくなります。

    Raspberry Pi Connectを活用しよう

    ネット上の多くの記事は「とりあえず設定を見直せ」と書いてありますが、私はRaspberry Pi Connectを使って 原因を見つけました。

    SSHが繋がらなくなった時、 Raspberry Pi Connect でログインし、ターミナルで以下のコマンドを打ってみるのもありかも。

    # 普段SSHで使っているIPと比較する
    hostname -I
    

    もし、 普段と違うIPアドレス が表示されたら、ビンゴです。原因はIPアドレスの変動です。

    【Bookworm対応】最新の固定IP設定術 (nmcli 編)

    原因がわかれば、対策は 「IPアドレスを固定する」 ことです。

    ここで最大の注意点があります。ネットで検索すると未だに /etc/dhcpcd.conf を編集する記事が上位に来ますが、 Raspberry Pi OS (Bookworm以降) ではその手法は非推奨(動作しない場合が多い) です。

    最新OSでは、ネットワーク管理が NetworkManager に移行しており、nmcli コマンドを使うのが「正しい」方法です。

    準備:現在の接続名を確認する

    nmcli connection show
    

    出力された NAME 欄を確認します。

    • 有線の場合: 大抵は 有線接続 1
    • Wi-Fiの場合: netplan-wlan0- で始まるSSID名のもの

    以下では、有線(eth0)とWi-Fi(wlan0)それぞれの固定IP設定コマンドを例示します。 [あなたの接続名] や IPアドレス は、ご自身の環境に合わせて書き換えてください。

    方法A:有線(イーサネット)を固定する(推奨)

    サーバー運用なら、安定した有線が一番です。

    1. IPアドレス、ゲートウェイ、DNSを設定する (例: IPを 192.168.10.125、ルーターを 192.168.10.1 にする場合)

      # IPとサブネットマスク
      sudo nmcli connection modify "有線接続 1" ipv4.addresses 192.168.10.125/24
      # ゲートウェイ
      sudo nmcli connection modify "有線接続 1" ipv4.gateway 192.168.10.1
      # DNS(ルーターと、予備でGoogle DNS)
      sudo nmcli connection modify "有線接続 1" ipv4.dns "192.168.10.1,8.8.8.8"
      
    2. 割り当て方法を「手動」に変更し、反映する

      sudo nmcli connection modify "有線接続 1" ipv4.method manual
      sudo nmcli connection up "有線接続 1"
      

    方法B:Wi-Fiを固定する

    1. 設定コマンドを実行 (例: 接続名が netplan-wlan0-mywifi の場合)

      sudo nmcli connection modify "netplan-wlan0-mywifi" ipv4.addresses 192.168.10.125/24
      sudo nmcli connection modify "netplan-wlan0-mywifi" ipv4.gateway 192.168.10.1
      sudo nmcli connection modify "netplan-wlan0-mywifi" ipv4.dns "192.168.10.1,8.8.8.8"
      
    2. 「手動」に変更し、反映

      sudo nmcli connection modify "netplan-wlan0-mywifi" ipv4.method manual
      sudo nmcli connection up "netplan-wlan0-mywifi"
      

      ※反映コマンド実行時、Raspberry Pi Connectの接続が一度切れますが、自動で再接続されます。

    有線と無線の優先順位(Metric値)を設定する

    有線とWi-Fiの両方を繋いでいる場合、OSがどちらを優先するかを明示的に設定しておくと、さらに安定します。 「メトリック(Metric)」 という値を使います(数字が小さいほど優先)。

    # 有線(NAME: 有線接続 1)の優先度を上げる(100)
    sudo nmcli connection modify "有線接続 1" ipv4.route-metric 100
    
    # Wi-Fi(NAME: netplan-wlan0-mywifi)の優先度を下げる(600)
    sudo nmcli connection modify "netplan-wlan0-mywifi" ipv4.route-metric 600
    

    これで、 「有線があればそちらを使い、抜いた時だけWi-Fiに切り替わる」 という、冗長性のある構成になります。

    まとめ

    私の環境の場合、「1日でラズパイにアクセスできなくなる」問題の正体は、OSの世代交代と、DHCPによるIPアドレスの変更でした。

    • 旧OS ( dhcpcd.conf ) の知識は捨て、最新OS ( nmcli ) にアップデートする。
    • Raspberry Pi Connectを診断ツールとして賢く使う。
    • IPアドレスを固定し、メトリック値で優先順位をつける。

    この対策を行うことで、ラズパイは安定したサーバーになります。同様の現象に悩む方の助けになれば幸いです。

    (対処法が書いてあるサイトがなかったので苦労した…)

    airi

    airi

    都内 ❘ 27♀ ❘ 非正規 ♡インターネットエンジェル♡ 趣味はダンス(お休み中)とゲーム ベンチャーを転々としています

    関連記事

    • ComfyUIサーバーで既存ワークフローをCLIから呼び出してパラメータ可変で使う方法
      ComfyUIサーバーで既存ワークフローをCLIから呼び出してパラメータ可変で使う方法
    • 漫画のセリフとキャプションを自動配置するツールをYOLOモデルを使って作ってみた
      漫画のセリフとキャプションを自動配置するツールをYOLOモデルを使って作ってみた
    • ローカル完結!Qwen3.5を用いた画像データセット用キャプション自動生成ツールの作り方
      ローカル完結!Qwen3.5を用いた画像データセット用キャプション自動生成ツールの作り方
    • Ollama APIと履歴 / VRAM管理を自前実装!公式ライブラリの依存を断ち切る!
      Ollama APIと履歴 / VRAM管理を自前実装!公式ライブラリの依存を断ち切る!
    • yolo26を使ってデータセット作成を効率化する
      yolo26を使ってデータセット作成を効率化する

    最新記事

    • ComfyUIサーバーで既存ワークフローをCLIから呼び出してパラメータ可変で使う方法
      ComfyUIサーバーで既存ワークフローをCLIから呼び出してパラメータ可変で使う方法
    • 漫画のセリフとキャプションを自動配置するツールをYOLOモデルを使って作ってみた
      漫画のセリフとキャプションを自動配置するツールをYOLOモデルを使って作ってみた
    • ローカル完結!Qwen3.5を用いた画像データセット用キャプション自動生成ツールの作り方
      ローカル完結!Qwen3.5を用いた画像データセット用キャプション自動生成ツールの作り方
    • Ollama APIと履歴 / VRAM管理を自前実装!公式ライブラリの依存を断ち切る!
      Ollama APIと履歴 / VRAM管理を自前実装!公式ライブラリの依存を断ち切る!
    • yolo26を使ってデータセット作成を効率化する
      yolo26を使ってデータセット作成を効率化する
    Overclocking Time's

    「ベンチャー非正規雇用」の限界エンジニアゆるふわ技術ブログ!

    Navigation

    Home Blog Privacy Policy

    Connect

    About Connect

    © 2026 Overclocking Time's. All rights reserved.