有意義なサイト作りのためJavaScriptを使ってます。ご了承ください。

ラズパイデビュー…WOLその他

 ·  ☕ 8 分で読めます

前回、LAN外でのパソコン電源リモートONができずに断念したリモートデスクトップですが、このままでは終われないので調査。
結果ラズパイなどの別コンピュータ(サーバー)でWOLできることがわかったので買っちゃいました。ラズパイ
音楽サーバーにもなるので10000円は安いと踏みました。結果、大成功
ただ素人さんにはオススメできない面もあるのでそちらも含め紹介します。

なぜラズパイ?

サーバー用途に一番良かったからです
ラズパイは電気代がかからずイニシャルコストも安いので、常時起動させる用途にもってこいなんです。
ただ後述しますが、普通にWOLしたいだけならNASのほうがオススメです。WOLもできますし頑丈で設定も楽で速度も早いですし。ぶっちゃけNASでWOLできると知ってたならNASにしてた
ですが、それでもラズパイでサーバー作りたい、WOLしたい方向けに備忘録として残しておきます。

セットアップ

OSを入れる

まず、OSを適当なMicroSDカードにセットアップします。16GBあれば足ります。

Raspberry Pi Imagerをダウンロードし、画面の指示にしたがってUbuntu 20.04をぶっこみます。

そしてケースをつけます。買ったケースはこちら。

ファンもついていて質も高くてお買い得でした。完成したラズパイがこちら。
image1
手伝ってくれた母曰く「ホコリが入りそうで怖い」とのことなのでダイソーのケーブルボックスに入れました。ちょうどよかったです。
あとは先述のSDカードをラズパイに差し込み、キーボードやLANケーブル、モニターをつないで起動させます。

上のサイト様を参考に、今回はUbuntu Mateを入れます。

1
2
3
4
5
6
sudo apt update
sudo apt full-upgrade -y
git clone https://github.com/wimpysworld/desktopify.git
cd desktopify
sudo ./desktopify --de ubuntu-mate --oem
sudo reboot

以上のコマンドで美しいUbuntuちゃんがお目見え。簡単です。ここまでは。

SSH鍵を入れる

こんな場末まで来られた方ならご存知でしょう、SSH認証鍵を入れます。
WindowsからTeratermでつないで、

1
2
3
4
5
sudo gpasswd -a furamon sudo
# Tera Termでed25519鍵生成、ラズパイに公開鍵を渡す
mkdir ~/.ssh
mv id_ed25519.pub ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys

以上で鍵の設定終了。鍵でログインできたなら次に進みましょう。

IPを固定する

この後の作業に備えてIPを固定しておきます。
ルーターのポート転送設定も行います。このへんはルーターによってまちまちなのでいろいろやってみてください。

1
sudo nano /etc/netplan/99_config.yaml
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
network:
  version: 2
  renderer: networkd
  ethernets:
    eth0:
      dhcp4: false
      dhcp6: false
      addresses: [192.168.xx.xx/24]
      gateway4: 192.168.xx.xx
      nameservers:
        addresses: [192.168.xx.xx, 8.8.8.8, 8.8.4.4]

初期設定を済ませる

Ubuntuの初期設定セキュリティ設定を済ませておきます。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
sudo nano /etc/ssh/sshd_config # port xxxxx etc
sudo service ssh restart
sudo apt install ufw
sudo nano /etc/default/ufw
sudo ufw allow xxxxx
sudo ufw allow 80
sudo ufw allow 443
sudo ufw allow 8080
sudo ufw default deny
sudo ufw enable
sudo reboot

sudo nano /etc/ssh/sshd_configの中身は上サイト様でご確認ください。

あとはさきほども申し上げましたがルーターのポート転送・開放設定も忘れずにやっておきましょう。
変更したSSHポート、80番、443番、8080番ポートを後作業に備えて開放します。
筆者はこれを忘れて6時間くらい右往左往しました。まだまだ未熟です。

WOL設定をする

基本設定

いよいよ本題のWOLに入ります。
最初はHomeBridgeを使うのも考えましたが難しくてできなかったこちらのほうがスマートと判断しました。
Windows側の設定は済んでいるのを前提にします。詳しくは「Windows WOL」とかで検索すれば出てきます。

ルーターのポート転送でWindows PCに9番を転送する設定にして

1
2
sudo apt-get install wakeonlan
wakeonlan XX:XX:XX:XX:XX:XX

コマンドを打ち込んでWindowsを遠隔起動できればLAN内からのWOLは成功!
本命のルーター超えWOLの設定もやっていきます。

iPhoneからSSH経由でコマンドを飛ばす

iPhoneのショートカットアプリから「SSH経由でスクリプトを実行」でコマンドを転送できます。
鍵認証のやり方は

を参考に。私はOneDrive経由で鍵を送る力技でいきました。セキュリティ的にちゃんとするならもうちょっとやり方があるはずなのでそうしたほうがいいです。

1
cat txt.txt >> .ssh/authorized_keys

LAN外からSSH転送する

あとはDDNSを利用してコマンドを外から送るだけです。

TP-LinkのDecoを使ってるのでTPLink DDNSを使ってWOL。携帯回線を使ってSSHコマンドを転送。見事成功。私の勝利である!
これでiPadやMacBookさえあればいつでもどこでも重作業ができますが、ご時世的に外で長作業をする機会が…

RSSを入れようとするが…

次にサーバーインストール型のRSSリーダーのTTRSSを入れようとしますが…インストール自体には成功するも、やり直す途中でSDカードの寿命を縮めまくるため入れないほうがいいという忠告を見ます。

personally i would advise against running tt-rss on rpi especially if you use microsd for storage.
(私はMicroSDカードを使うならラズパイでTTRSSを動かさないほうがいいと思うよ)
it’s mostly about iops (that is, lack thereof) you’re going to get on a microsd.
(MicroSDカードへのIOPS(書き込み量)が多すぎるからねー)(適当意訳)

こんなところまで来てくださった方には釈迦に説法でしょうが、ラズパイのストレージに使われるMicroSDカードは大量の書き込みに向いておらず、RSSリーダーに使うなんてしたら下手したら1年持ちません。
かと言ってRSSリーダーにお金かけるのも嫌だし、HDDストレージにインストールするのも手間だし…となった結果、Twitterのリスト機能を使って情報管理することに。
結果、なんの問題もありませんでした。魔境と化して久しいTwitterですが、公式アカウントとごく一部だけフォローすれば害はありません。やったぜ。

Sambaを入れる

大目的は済みましたが、さらにラズパイを活用すべくファイルサーバーを作ってみます。

1
2
3
sudo apt install samba
sudo pdbedit -a furamon
sudo nano /etc/samba/smb.conf
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
[global]
dos charset = CP932
unix charset = UTF-8
min protocol = SMB2
max protocol = SMB2

[nas]
valid users = furamon
path = /mnt/nas
browseable = yes
read only = no
writeable = yes
guest ok = yes
guest only = yes
1
2
3
4
5
6
7
8
sudo mkdir /mnt/nas
sudo chmod 777 /mnt/nas
sudo blkid
sudo nano /etc/fstab
# PARTUUID=xxxxx /mnt/nas auto defaults 0 0
sudo mount -a
sudo systemctl enable smbd
sudo systemctl start smbd

全力で端折りましたが簡単に解説すると、

  • Sambaをインストールしてユーザー作成
  • Sambaの設定。共有ディレクトリを設定してWindowsでも見られる設定にする
  • HDDのPARTUUIDを見て共有ディレクトリにマウント、Sambaを起動

となりますが、この適当すぎる解説でわかる人はいないと思うので上記サイト様をご覧ください。(丸投げ)

Jpsonicを入れる

さらにさらにNASから音楽ストリーミングできるようJpsonicというサーバーインストール型音楽プレイヤーを入れます。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
sudo apt install openjdk-14-jdk
echo 'export LANG=ja_JP.UTF-8' >> ~/.bashrc
echo 'export LANGUAGE="ja_JP:ja"' >> ~/.bashrc
sudo reboot
wget https://github.com/jpsonic/jpsonic/releases/download/v109.2.0/jpsonic-jetty-embed.war
sudo mkdir /var/jpsonic/
sudo chown -R furamon:furamon /var/jpsonic
sudo apt install ffmpeg
sudo mkdir /var/jpsonic/transcode
cd /var/jpsonic/transcode/
sudo ln -s /usr/bin/ffmpeg
cd
java -jar jpsonic-jetty-embed.war
# ラズパイIP:8080にアクセス

「インストールはできたがファイルスキャンができない」という状況が続きましたが、原因はUbuntuのロケール設定でした。
上のサイト様を参考にロケールを直し、データベースを作り直して再スキャンで問題解決。
あとは自動起動設定です。crontabでやりました。

1
crontab -e
1
@reboot /home/furamon/jpsonic.sh
1
2
3
#!/bin/bash

java -jar /usr/local/jpsonic-jetty-embed.war

バックアップ設定

仕上げにBackBlazeB2&Windowsにバックアップします。動画も保存したくなったのでこれで安心です。

事前にBackBlaze B2のアカウントを作り、バケットを作っておいて、

1
2
3
4
sudo apt install rclone
rclone config # アプリケーションキーIDとキーを入力
rclone sync --fast-list /mnt/nas FuramonUbuntu:FuramonUbuntu
crontab -e # 17 00 * * * rclone sync --fast-list /mnt/nas FuramonUbuntu:FuramonUbuntu

これでバックアップOK!
あとはWindowsのSDカードイメージバックアップアプリでSDカードをバックアップすれば完璧です。

まとめと苦労話

文章に書くと簡単そうなのですが実は6回くらいやり直しました
Raspbianで途中までやっていたがRSSが入れられなくて断念し、ubuntuに変更後再びどんづまってraspbianに戻したという経緯があります。
その後一度は成功するも不具合が出て再度やり直し。その後またもどん詰まり。そしてさらにopenmediavalutというSamba設定を簡単にやってくれるはずのアプリのバグのせいでやり直し。さらにさらに128GBのSDカードから16GBのSDカードに移し替えたらカーネルパニックという塩梅で、やたら最適化されてるのはこのためです。ここまでにだいぶ試行錯誤しました。
こんな調子なので素人にはオススメできません。WOLも音楽サーバーも出来合いのNASのほうが楽だし速度も早いです。Synologyで検索してみてください。
でもやり遂げた達成感もひとしおです。速度は劣るが初期投資も維持費も安く済むので自信があれば挑戦してみるといいんじゃないでしょうか。
ラズパイ、総合的にはいい買い物だったと思います。

シェアはこちら:

ふらもん
書いた人:
ふらもん
ゲームクリエイター見習い