1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【2024年版】Raspberry Pi Webサーバー向け最適化設定

Last updated at Posted at 2024-11-24

はじめに

押入れの中に埋もれていたRaspberry Pi 3を、Web技術学習用サーバーとして活用しようとふと思い立ちました。
当記事は、セットアップ時に行った設定内容のメモ書きです。

目標

  • 自宅内でWebサーバーとして使う想定
  • 無線WiFi接続
  • 日本語化する
  • 安全かつ簡単にSSH接続出来るようにする
  • 消費電力を出来るだけ抑える
  • microSDの寿命を延ばす設定にする

前提条件

  • LPIC Level1レベルのLinux知識(vimが使える、基本的なコマンドを知ってる)

ハードウェア情報

  • Raspberry Pi 3 Model B Rev 1.2
  • SAMSUNG EVO plus 64GB

操作OS

Windows 11

手順

1. インストール

Raspberry Pi Imager でOSを焼きます。

1.1 OS選択

  • Raspberry Piデバイス:RASPBERRY PI 3
  • OS:RASPBERRY PI 0S(64-BIT)
    スクリーンショット 2024-11-24 132059.png

1.2 設定を編集する

一般設定
  • ホスト名を設定
  • ユーザー名とパスワードを設定する
  • Wi-Fiを設定する
    • Wifiを使う国:JP
  • ロケール設定をする
    • タイムゾーン:Asia/Tokyo
    • キーボードレイアウト:jp

スクリーンショット 2024-11-24 132208.png

サービス設定
  • PowerShellで下のコマンドを実行し、SSH鍵作成

    ssh-keygen -t ed25519
    
    PS C:> ssh-keygen -t ed25519
    Generating public/private ed25519 key pair.
    Enter file in which to save the key (C:\Users\escap/.ssh/id_ed25519):
    Enter passphrase (empty for no passphrase):
    Enter same passphrase again:
    Your identification has been saved in C:\Users\escap/.ssh/id_ed25519
    Your public key has been saved in C:\Users\escap/.ssh/id_ed25519.pub
    The key fingerprint is:
    SHA256:5qNpj6HLZQs2wOP2ZTLrZy7B3plb2WnOa4a2kk0hUX0 escap@ruggah
    The key's randomart image is:
    +--[ED25519 256]--+
    |       ...       |
    |      .   . E    |
    |       .   .     |
    | .    . .        |
    |  +.   .S.       |
    | . oo  o.o .     |
    | o.*o**=.+      |
    | . +o%XB+=o      |
    |   .BBB=o++.     |
    +----[SHA256]-----+
    
  • SSHを有効化する

    • 公開鍵認証のみを許可する
      スクリーンショット 2024-11-24 133320.png

1.3 実行

  • イメージをmicroSDに焼く
    スクリーンショット 2024-11-24 134020.png

2. Raspberry Pi Connect 設定

  • 下の記事を参考に接続設定

スクリーンショット 2024-11-24 152222.png

  • 下のサイトからRaspberry Pi を認識していることを確認

スクリーンショット 2024-11-24 152000.png

3. 初期設定内容確認

  • Raspberry Pi ConnectからRemote Shellを起動して下のコマンドを実行

    cat /etc/os-release
    uname -a
    vcgencmd version
    cat /proc/cpuinfo
    lsb_release -a
    getconf LONG_BIT
    

4. OS最新化

  • apt アップデート

    sudo apt update
    sudo apt -y upgrade
    
  • OSディストリビューションアップデート

    sudo apt dist-upgrade -y
    
  • ファームウェアアップデート

    sudo rpi-update
    
  • 再起動

    sudo apt autoremove -y
    sudo apt autoclean
    sudo reboot
    

5. 必要なライブラリインストール

  • vimをインストール

    sudo apt install vim-nox
    

6. IPアドレスの固定化

  • IPアドレスの確認

    hostname -I
    
  • デフォルトゲートウェイ確認

    ip route show
    
  • 下の記事を参考に、Raspberry Pi Connect経由でGUIからIPアドレスを固定

7. SSH接続設定

  • SSHポート番号変更&rootログイン禁止

    sudo vi /etc/ssh/sshd_config
    
    #Port 22
    Port 10022
    #AddressFamily any
    #ListenAddress 0.0.0.0
    #ListenAddress ::
    
    # PermitRootLogin prohibit-password
    PermitRootLogin no
    
  • sshd再起動

    sudo systemctl restart sshd
    
  • PowerShellログイン設定

    • C:\Users[ユーザー名].ssh をエクスプローラーで開く

    • configファイルをテキストエディタで開く(無ければ作成する)

    • 以下の設定を追加

      Host raspi
        HostName [ホスト名]
        User [ユーザー名]
        Port 10022
        IdentityFile [id_ed25519の絶対パス]
      
    • PowerShellを開き、SSH接続

      ssh raspi
      

8. ファイアウォール設定

  • ufwのインストール

    sudo apt install ufw
    
  • 接続許可設定

    sudo ufw allow from 192.168.10.0/24 to any port 10022
    sudo ufw allow from 192.168.10.0/24 to any port 80
    sudo ufw allow from 192.168.10.0/24 to any port 8080
    sudo ufw allow from 192.168.10.0/24 to any port 443
    
  • ファイアウォールを有効化

    sudo ufw enable
    sudo ufw status
    

9. 最適化設定

9.1 不要な機能の無効化

  • cups無効化

    sudo systemctl disable cups
    sudo systemctl stop cups
    

9.2 不要なライブラリ削除

sudo apt purge bluez -y
sudo apt purge cups -y
sudo apt purge nano -y
sudo apt autoremove -y

10. GUI無効化

  • 設定画面を開く

    sudo raspi-config
    
  • System Option>Boot / Auto Login

  • 「B2 Console AutoLogin」を選択→「Save」して再起動
    ※外部に公開しないので、B1 Consoleにはしない
    スクリーンショット 2024-11-24 163043.png

11. SSH接続確認&設定内容確認

  • Raspberry Pi にSSH接続

  • 下のコマンドを実行して設定確認

    raspi-config
    cat /etc/os-release
    uname -a
    vcgencmd version
    cat /proc/cpuinfo
    lsb_release -a
    getconf LONG_BIT
    hostname -I
    ip route show
    

12.消費電力を抑える

  • swap を無効化

    sudo systemctl disable dphys-swapfile
    
  • HDMIオフ(※3B+ Bookwormの設定方法)

    sudo apt install ddcutil
    ddcutil setvcp d6 5
    sudo ddcutil capabilities
    
  • (Model Bのみ)USBコントローラー(LAN951x/LAN7515)の無効化(※3B+ Bookwormの設定方法)

    echo '1-1' |sudo tee /sys/bus/usb/drivers/usb/unbind
    
  • 下のファイルを編集

    sudo vi /boot/firmware/config.txt
    
  • 以下に設定を編集し、BluetoothとサウンドカードをOFFにする

    # Automatically load overlays for detected DSI displays
    display_auto_detect=1
    # Enable audio (loads snd_bcm2835)
    dtparam=audio=off
    
    (・・省略・・)
    
    [cm5]
    dtparam=audio=off
    

Advanced: 監視ツール導入

  • monitorixのインストール

    sudo apt install monitorix -y
    
  • vcgencmd のインストールパスを確認

    pi@pidevserver1:~ $ which vcgencmd
    /usr/bin/vcgencmd
    pi@pidevserver1:~ $
    
  • 設定ファイルを編集

    sudo vi /etc/monitorix/monitorix.conf
    
    raspberrypi = y
    
    <raspberrypi>
            cmd = /usr/bin/vcgencmd # whichコマンドの実行結果
            clocks = arm, core, h264, isp, v3d, uart, emmc, pixel, hdmi
            volts = core, sdram_c, sdram_i, sdram_p
            rigid = 0, 0, 0
            limit = 100, 100, 100
    </raspberrypi>
    
  • monitorix を起動

    sudo systemctl enable monitorix
    sudo systemctl restart monitorix
    
  • http://[固定IPアドレス]:8080/index.html にアクセス
    スクリーンショット 2024-11-24 220833.png

参考ページ

1
0
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
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?