1
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【外出先から自宅PC起動】Raspberry Pi 4 + Tailscale + Wake on LAN + Android Termux で安全にPCを起動する

1
Last updated at Posted at 2026-05-25

【外出先から自宅PC起動】Raspberry Pi 4 + Tailscale + Wake on LAN + Android Termux で安全にPCを起動する

はじめに

きっかけは、PCを使いたいのに起動していなかったときに、毎回家にいる家族へLINEで連絡して電源を入れてもらっていたことです。

そこで、外出先から自宅のデスクトップPCを起動できるようにしたので、構成と設定手順をまとめます。

最終的には、Android の Termux で次のコマンドを実行するだけです。

wakepc

これで以下の流れでPCが起動します。

構成図

本記事は筆者の環境で確認した一例です。BIOS、Windows、SSH、Tailscale などの設定変更は、環境によって動作やセキュリティに影響する可能性があります。実施は自己責任でお願いします。

この記事でできること

  • 外出先から自宅PCを Wake on LAN で起動する
  • ルータのポート開放なしで Raspberry Pi に接続する
  • Android + Termux から wakepc だけでPCを起動する
  • SSH公開鍵認証でパスワード入力を省略する
  • Raspberry Pi を WoL 送信用の中継サーバとして使う

全体構成

外出先 Android
    │
    │ Tailscale VPN
    ▼
Raspberry Pi 4
    │
    │ wakeonlan
    ▼
自宅デスクトップPC

Wake on LAN の Magic Packet は基本的に自宅LAN内から送る必要があります。

そこで、常時起動している Raspberry Pi 4 に Tailscale 経由で接続し、Raspberry Pi から自宅LAN内へ WoL を送信する構成にしました。

Tailscale を使うことで、ルータのポート開放なしで安全に Raspberry Pi へ接続できます。

この構成のメリット

  • ポート開放不要
  • グローバルIP不要
  • CGNAT環境でも使いやすい
  • Android だけで操作できる
  • Raspberry Pi がLAN内から WoL を送るため安定しやすい
  • SSH公開鍵認証にすればパスワード入力を省略できる
  • 将来的に Home Assistant やWeb UI化にも拡張しやすい

検証環境

項目 内容
WoL送信用サーバ Raspberry Pi 4 Model B
Raspberry Pi OS Raspberry Pi OS Lite 64-bit
起動対象PC Windows デスクトップPC
HP OMEN 40L
起動対象PCの接続 有線LAN
Raspberry Piの接続 有線LAN推奨
スマホ Android
Android側ターミナル Termux
VPN Tailscale
WoL送信用コマンド wakeonlan

作業の流れ

  1. Windows PC 側で Wake on LAN を有効化する
  2. Raspberry Pi OS を準備する
  3. Raspberry Pi から WoL を送信できるか確認する
  4. Tailscale で外出先から Raspberry Pi に接続できるようにする
  5. Android + Termux から wakepc で起動できるようにする
  6. SSH公開鍵認証と最低限のセキュリティ設定を行う

1. Windows PC 側で Wake on LAN を有効化する

まず、起動したいデスクトップPC側で Wake on LAN を有効化します。

1-1. BIOSで Wake on LAN を有効化する

BIOSで以下のような項目を有効化します。名称はメーカーやマザーボードによって異なります。

  • S4/S5ウェイク オンLAN
  • Wake on LAN
  • Power On By PCI-E
  • Resume By LAN
  • PME Event Wake Up
  • S4/S5 Wake on LAN

今回のPCでは、S4/S5 Wake on LAN を有効化しました。

S4/S5 Wake on LAN

1-2. WindowsでLANアダプタ設定を変更する

Windowsで以下を開きます。

デバイスマネージャ
↓
ネットワークアダプタ
↓
有線LANアダプタ
↓
プロパティ

電源の管理

以下を有効化します。

  • このデバイスで、コンピューターのスタンバイ状態を解除できるようにする
  • Magic Packet でのみ、コンピューターのスタンバイ状態を解除できるようにする

環境によっては、以下を無効化した方が安定しました。

  • 電力節約のために、このデバイスの電源をオフにできるようにする

LANアダプタの電源管理設定

詳細設定

今回特に重要だった設定です。

項目 推奨設定
Advanced EEE 無効
LAN上のウェークアップのシャットダウン 有効
Power Saving Mode 無効
WOLとシャットダウンリンク速度 速度低下ではない
ウェイク・オン・マジック・パケット 有効
Green Ethernet / グリーンイーサネット 無効
省電力型イーサネット(EEE) 無効

Realtek系NICでは、EEE や Green Ethernet が有効だと、シャットダウン後にLANポートが消灯して WoL できないことがありました。

1-3. 高速スタートアップを無効化する

Wake on LAN が安定しない場合、Windowsの高速スタートアップを無効化します。

管理者PowerShellで実行します。

powercfg /h off

確認する場合は以下を実行します。

powercfg /a

1-4. LANポートLEDを確認する

PCをシャットダウンしたあと、LANポートのLEDを確認します。

LANポートが点灯または点滅している

この状態なら、NICに待機電力が供給されており、WoLできる可能性が高いです。

完全に消灯している場合は、BIOSまたはWindows側の省電力設定を見直します。

1-5. MACアドレスを確認する

WindowsのPowerShellで確認します。

getmac /v

有線LANアダプタの物理アドレスを確認します。

xx-xx-xx-xx-xx-xx

Linuxで使う形式に変換しておきます。

xx:xx:xx:xx:xx:xx

このMACアドレスは後で wakeonlan コマンドに指定します。

2. Raspberry Pi OS を準備する

Raspberry Pi Imager を使って OS を書き込みます。

2-1. OSを選択する

今回は以下を選択しました。

Raspberry Pi OS Lite (64-bit)

今回の用途ではGUIは不要なので Lite 版で十分です。

OS選択-1

OS選択-2

2-2. Imager のカスタマイズ設定を行う

Imager のカスタマイズ項目で以下を設定します。

項目 設定例
Hostname raspi-wol
User your_user
Wi-Fi 必要なら設定
Remote access SSHを有効化
Raspberry Pi Connect 今回は不要

Hostname は以下のようにしました。

raspi-wol

最初はパスワード認証でSSHを有効化しておけばOKです。

Wi-Fiでも構成できますが、WoLサーバ用途では有線LANをおすすめします。筆者の環境では、Wi-Fi運用時に再起動後の接続復旧が不安定でした。

3. Raspberry Pi にSSH接続する

同じLAN内のPCから Raspberry Pi にSSH接続します。

ssh your_user@raspi-wol.local

初回接続時に以下のように聞かれます。

Are you sure you want to continue connecting (yes/no/[fingerprint])?

yes と入力します。

3-1. パッケージを更新する

sudo apt update && sudo apt upgrade -y

4. Raspberry Pi から Wake on LAN を送る

4-1. wakeonlan をインストールする

sudo apt install wakeonlan -y

4-2. WoL送信テストを行う

wakeonlan xx:xx:xx:xx:xx:xx

xx:xx:xx:xx:xx:xx には、起動したいPCのMACアドレスを入れます。

PCが起動すれば成功です。

5. wakepc.sh を作る

毎回MACアドレスを入力するのは面倒なので、スクリプト化します。

nano ~/wakepc.sh

内容は以下です。

#!/bin/bash
wakeonlan xx:xx:xx:xx:xx:xx

実行権限を付与します。

chmod +x ~/wakepc.sh

実行します。

~/wakepc.sh

PCが起動すればOKです。

6. Tailscale を導入する

外出先から Raspberry Pi へ接続できるように Tailscale を入れます。

6-1. Tailscale をインストールする

curl -fsSL https://tailscale.com/install.sh | sh

6-2. Tailscale にログインする

sudo tailscale up

URLが表示されるので、ブラウザで開いて認証します。

表示された認証URLや管理画面をスクリーンショットで残す場合は、URL、IPアドレス、端末名などを隠してください。

6-3. 自動起動を確認する

systemctl is-enabled tailscaled

enabled でなければ有効化します。

sudo systemctl enable tailscaled

状態確認は以下です。

systemctl status tailscaled

6-4. Tailscale IPを確認する

tailscale ip

例:

100.xxx.xxx.xxx

このIPは、Android側からSSHするときに使います。

7. Android側を設定する

7-1. Tailscaleを入れる

Androidに Tailscale をインストールします。

Raspberry Piで使ったアカウントと同じアカウントでログインし、VPN接続をONにします。

7-2. Termuxを入れる

Termuxを使います。

7-3. Termuxを初期更新する

pkg update && pkg upgrade -y

SSH関連のコマンドを使うため、openssh も入れておきます。

pkg install openssh -y

7-4. SSHで Raspberry Pi へ接続する

Tailscale IPを使う場合は以下です。

ssh your_user@100.xxx.xxx.xxx

Tailscale の MagicDNS で名前解決できる場合は以下でも接続できます。

ssh your_user@raspi-wol

8. SSH公開鍵認証を設定する

毎回パスワードを入力しなくて済むように、SSH鍵認証にします。

8-1. Termuxで鍵を作成する

ssh-keygen -t ed25519

保存先はそのままEnterでOKです。パスフレーズは必要に応じて設定します。

8-2. 公開鍵を Raspberry Pi へコピーする

ssh-copy-id your_user@100.xxx.xxx.xxx

MagicDNSを使う場合は以下です。

ssh-copy-id your_user@raspi-wol

8-3. 接続確認する

ssh your_user@100.xxx.xxx.xxx

パスワードなしで接続できれば成功です。

9. Termuxでコマンドを短縮する

9-1. SSH config を作る

Termuxで以下を編集します。

nano ~/.ssh/config

内容は以下です。

Host raspi
    HostName 100.xxx.xxx.xxx
    User your_user

これで次のように接続できます。

ssh raspi

9-2. alias を作る

Termuxで .bashrc を編集します。

nano ~/.bashrc

末尾に追加します。

alias wakepc="ssh raspi '~/wakepc.sh'"

反映します。

source ~/.bashrc

9-3. 実行する

wakepc

これだけでPCが起動します。

Android Termux
↓
ssh raspi '~/wakepc.sh'
↓
Raspberry Pi から Magic Packet 送信
↓
Windows PC 起動

Termuxでwakepc実行

10. Raspberry Pi は有線LANがおすすめ

最初はWi-Fiで運用しようとしましたが、再起動後に接続できなくなることがありました。

確認すると以下のような状態でした。

wlan0: NO-CARRIER

これはWi-Fiに接続できていない状態です。そのため、最終的に Raspberry Pi 4 は有線LAN接続にしました。

Raspberry Pi 4 → LANケーブル → ルータ

WoLサーバ用途では、有線LANの方が安定します。

11. 再起動後の自動復旧を確認する

Raspberry Piを再起動します。

sudo reboot

1〜2分待ってから、AndroidのTermuxで確認します。

ssh raspi

接続できたら、さらに以下を実行します。

wakepc

PCが起動すれば、再起動後も自動復旧できています。

確認ポイントは以下です。

  • 有線LANでIPを取得している
  • tailscaled が自動起動している
  • SSHが待ち受けている
  • wakepc.sh が実行できる

12. セキュリティを強化する

12-1. SSHパスワード認証を無効化する

SSH鍵認証が成功してから行ってください。

sudo nano /etc/ssh/sshd_config

以下を設定します。

PubkeyAuthentication yes
PasswordAuthentication no
PermitRootLogin no

反映します。

sudo systemctl restart ssh

SSH鍵認証が成功する前にパスワード認証を無効化すると、ログインできなくなる可能性があります。必ず鍵認証でログインできることを確認してから変更してください。

12-2. Tailscale側のアクセス範囲を確認する

Tailscale にログインしている端末からは Raspberry Pi に到達できます。同じ tailnet に複数人や共有端末を参加させている場合は、Tailscale 管理画面の Access controls でアクセス範囲を絞ると安心です。

個人利用であっても、不要になった端末は Tailscale 管理画面から削除しておきます。

12-3. fail2banを入れる

SSHをインターネットに直接公開しない構成なので必須ではありませんが、保険として入れておきます。

sudo apt install fail2ban -y

状態確認は以下です。

sudo systemctl status fail2ban

ハマったところ

PCシャットダウン後にLANポートが光らない

この状態では WoL できませんでした。

対策は以下です。

  • BIOSの S4/S5 Wake on LAN を有効化する
  • Windowsの Wake on Magic Packet を有効化する
  • EEE / Green Ethernet を無効化する
  • 高速スタートアップを無効化する

Raspberry Pi のWi-Fiが再起動後に復旧しない

wlan0: NO-CARRIER になりました。

最終的には、Raspberry Pi を有線LAN化して解決しました。

wakepc が見つからない

.bashrc の alias が反映されていませんでした。

source ~/.bashrc

で反映できます。

SSHで毎回パスワードを聞かれる

SSH公開鍵認証が設定できていませんでした。

Termuxで鍵を作成し、ssh-copy-id で Raspberry Pi へ登録して解決しました。

最終的な使い方

外出先では以下だけです。

  1. AndroidでTailscaleをONにする
  2. Termuxを開く
  3. 次のコマンドを実行する
wakepc

これで自宅PCが起動します。

まとめ

Raspberry Pi 4 + Tailscale + Wake on LAN により、外出先から安全に自宅PCを起動できるようになりました。

最終構成は以下です。

Android
↓
Tailscale
↓
Raspberry Pi 4
↓
wakeonlan
↓
自宅PC

最終構成図

特に良かった点は以下です。

  • ポート開放不要
  • Androidだけで操作可能
  • SSH鍵認証でパスワード不要
  • Raspberry Piを有線LANにすると安定しやすい
  • WoLパケットをLAN内から送れるので成功率が高い

自宅PCをリモート利用する人には、かなり便利な構成だと思います。

参考

1
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?