最初にやらないといけない事は、固定IPアドレスを設定して、SSH(Teraterm)で安全に接続できる環境を作ることです。
※Raspberry Pi OS(bookworm)のリリースから、ネットワークサービスがNetworkManagerに変更されました。
vimのインストール
viをよく使用するので、vimをインストールしてviの操作が楽になるようにします。
vim以外でも慣れているツールがあればそれを使ってね
$ sudo apt-get -y install vim
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
The following additional packages will be installed:
libgpm2 libsodium23 vim-runtime
Suggested packages:
gpm ctags vim-doc vim-scripts
The following NEW packages will be installed:
libgpm2 libsodium23 vim vim-runtime
0 upgraded, 4 newly installed, 0 to remove and 0 not upgraded.
Need to get 8,583 kB of archives.
After this operation, 41.5 MB of additional disk space will be used.
Get:1 http://deb.debian.org/debian bookworm/main arm64 libgpm2 arm64 1.20.7-10+b1 [14.4 kB]
Get:2 http://deb.debian.org/debian bookworm/main arm64 libsodium23 arm64 1.0.18-1 [119 kB]
Get:3 http://deb.debian.org/debian bookworm/main arm64 vim-runtime all 2:9.0.1378-2 [7,025 kB]
Get:4 http://deb.debian.org/debian bookworm/main arm64 vim arm64 2:9.0.1378-2 [1,424 kB]
Fetched 8,583 kB in 1s (11.4 MB/s)
Selecting previously unselected package libgpm2:arm64.
(Reading database ... 56373 files and directories currently installed.)
Preparing to unpack .../libgpm2_1.20.7-10+b1_arm64.deb ...
Unpacking libgpm2:arm64 (1.20.7-10+b1) ...
Selecting previously unselected package libsodium23:arm64.
Preparing to unpack .../libsodium23_1.0.18-1_arm64.deb ...
Unpacking libsodium23:arm64 (1.0.18-1) ...
Selecting previously unselected package vim-runtime.
Preparing to unpack .../vim-runtime_2%3a9.0.1378-2_all.deb ...
Adding 'diversion of /usr/share/vim/vim90/doc/help.txt to /usr/share/vim/vim90/doc/help.txt.vim-tiny by vim-runtime'
Adding 'diversion of /usr/share/vim/vim90/doc/tags to /usr/share/vim/vim90/doc/tags.vim-tiny by vim-runtime'
Unpacking vim-runtime (2:9.0.1378-2) ...
Selecting previously unselected package vim.
Preparing to unpack .../vim_2%3a9.0.1378-2_arm64.deb ...
Unpacking vim (2:9.0.1378-2) ...
Setting up libsodium23:arm64 (1.0.18-1) ...
Setting up libgpm2:arm64 (1.20.7-10+b1) ...
Setting up vim-runtime (2:9.0.1378-2) ...
Setting up vim (2:9.0.1378-2) ...
update-alternatives: using /usr/bin/vim.basic to provide /usr/bin/ex (ex) in auto mode
update-alternatives: using /usr/bin/vim.basic to provide /usr/bin/rview (rview) in auto mode
update-alternatives: using /usr/bin/vim.basic to provide /usr/bin/rvim (rvim) in auto mode
update-alternatives: using /usr/bin/vim.basic to provide /usr/bin/vi (vi) in auto mode
update-alternatives: using /usr/bin/vim.basic to provide /usr/bin/view (view) in auto mode
update-alternatives: using /usr/bin/vim.basic to provide /usr/bin/vim (vim) in auto mode
update-alternatives: using /usr/bin/vim.basic to provide /usr/bin/vimdiff (vimdiff) in auto mode
Processing triggers for man-db (2.11.2-2) ...
Processing triggers for libc-bin (2.36-9+rpt2+deb12u9) ...
SSH(Teraterm)で使用する時、マウスカーソルからコピペしようとすると勝手に「挿入(ビジュアルモード)」になってコピペしにくくなるので、~/.vimrcのファイルを作成して設定してください。
viエディタで、クリップボードから貼り付けできるようになります。
$ vi ~/.vimrc
ファイルに追加する内容は最小限にしています。
syntax on
set incsearch
colorscheme elflord
set mouse=
viの超簡単な使い方は、ここを見てね
rootでもviを使うので、コピーしておきましょう。
$ sudo cp .vi* /root/
今必要ではないですが、便利な設定は下記の記事に掲載しています。
不要なサービス、ハードの無効化
WordPressのサーバとして不要なハード・サービスを停止し、サーバのセキュリティ強度の強化とメモリ開放・CPUの負荷低減を目的に実施します。
この作業はスキップしても大丈夫です。
rsyslogのインストール
Raspberry Pi OSがbookwormにバージョンが上がってから、システムのログの出力がrsyslogから、journaldが既定でインストールされるようになりました。
これまで通り/var/log/syslogでログを見たい方は、下記の記事を参考にrsyslogをインストールしてください。
ネットワーク設定の準備
Raspberry Pi OS(bookworm)からネットワークサービスがDHCPからNetworkManagerに変わりましたので、憶えないといけないことが一杯です。
ネットワークの状態を確認
下記コマンドで概要を確認します。
$ nmcli
eth0: connected to Wired connection 1
"Microchip 7800"
ethernet (lan78xx), B8:27:EB:20:91:FA, hw, mtu 1500
ip4 default
inet4 192.168.100.22/24
route4 192.168.100.0/24 metric 100
route4 default via 192.168.100.1 metric 100
inet6 fe80::908a:d1c8:eb49:ac93/64
route6 fe80::/64 metric 1024
lo: connected (externally) to lo
"lo"
loopback (unknown), 00:00:00:00:00:00, sw, mtu 65536
inet4 127.0.0.1/8
inet6 ::1/128
wlan0: disconnected
"Broadcom BCM43438 combo and Bluetooth Low Energy"
wifi (brcmfmac), B8:27:EB:75:C4:AF, hw, mtu 1500
p2p-dev-wlan0: disconnected
"p2p-dev-wlan0"
wifi-p2p, hw
DNS configuration:
servers: 192.168.100.1
interface: eth0
Use "nmcli device show" to get complete information about known devices and
"nmcli connection show" to get an overview on active connection profiles.
Consult nmcli(1) and nmcli-examples(7) manual pages for complete usage details.
コネクション名をeth0に変更(NetworkManager)
コネクション名を確認すると、「Wired connection 1」というコネクション名が付けられています。
$ nmcli connection show
NAME UUID TYPE DEVICE
Wired connection 1 1fb5111b-2f0a-31c9-a4de-f7de2974e2f3 ethernet eth0
lo 9f277e03-18fa-4cdc-b5de-705ba989a3a4 loopback lo
nmcliでは、コネクション名を指定して設定を行わないといけないので、スペースを含むコネクション名は使いづらいので、名前をデバイス名と同じeth0を設定します。
下記コマンドを実行する事で、直ぐに名前を変更ができます。
$ sudo nmcli connection modify 'Wired connection 1' connection.id eth0
変わったか確認してみます。
$ nmcli connection show
NAME UUID TYPE DEVICE
eth0 1fb5111b-2f0a-31c9-a4de-f7de2974e2f3 ethernet eth0
lo 9f277e03-18fa-4cdc-b5de-705ba989a3a4 loopback lo
サーバに固定IPを設定
Buster(Debian11)の時の固定IPアドレスの設定方法は、過去記事のここを参照ください。この記事ではBookWorm(Devbia12以降)の説明を行います。
設定方法には、nmcliコマンドとnmtuiコマンドの二つがありますが、ここではnmcliコマンドで設定する方法を案内します。
まずIPv4の設定内容を確認します。
$ nmcli -f ipv4 connection show eth0
ipv4.method: auto
ipv4.dns: --
ipv4.dns-search: --
ipv4.dns-options: --
ipv4.dns-priority: 0
ipv4.addresses: --
ipv4.gateway: --
ipv4.routes: --
ipv4.route-metric: -1
ipv4.route-table: 0 (unspec)
ipv4.routing-rules: --
ipv4.replace-local-rule: -1 (default)
ipv4.ignore-auto-routes: no
ipv4.ignore-auto-dns: no
ipv4.dhcp-client-id: --
ipv4.dhcp-iaid: --
ipv4.dhcp-timeout: 0 (default)
ipv4.dhcp-send-hostname: yes
ipv4.dhcp-hostname: --
ipv4.dhcp-fqdn: --
ipv4.dhcp-hostname-flags: 0x0 (none)
ipv4.never-default: no
ipv4.may-fail: yes
ipv4.required-timeout: -1 (default)
ipv4.dad-timeout: -1 (default)
ipv4.dhcp-vendor-class-identifier: --
ipv4.link-local: 0 (default)
ipv4.dhcp-reject-servers: --
ipv4.auto-route-ext-gw: -1 (default)
赤文字の通り、autoが設定されていて、DHCPでネットワークが動いています。
下表に基づき設定を進めます。
番号 | 設定項目 | 設定内容 | 説 明 |
① | ipv4.method | manual | 固定IPアドレスの使用を宣言 |
② | ipv4.addresses | 192.168.100.100/24 | サーバのIPアドレス |
③ | ipv4.gateway | 192.168.100.1 | ルータのIPアドレス |
④ | ipv4.dns | 192.168.100.1,8.8.8.8 | ルータのIPアドレスとgoogleのDNSサーバ |
②サーバのIPアドレスとして、DHCPのネットワークでぶつからないサーバのIPアドレスを指定する。
例:PCのIPアドレスが、192.168.100.15 なら 192.168.100.100を指定
まさか、100台近く家庭のネットワークで、スマホとかPCとか使用していないでしょう。
③ルータのIPアドレスは、一番低い数字を指定する。
例:PCのIPアドレスが、192.168.100.15 なら 192.168.100.1を指定
③DNSのIPアドレスは、複数指定します。
例: PCのIPアドレスが、192.168.100.15 なら 192.168.100.1 と googleが公開している 8.8.8.8を指定
コマンドでの設定の順番は、下記の通りとしてください。順番が違うとエラーが出ることがあります。
$ sudo nmcli connection modify eth0 ipv4.addresses 192.168.100.100/24
$ sudo nmcli connection modify eth0 ipv4.gateway 192.168.100.1
$ sudo nmcli connection modify eth0 ipv4.dns 192.168.100.1,8.8.8.8
$ sudo nmcli connection modify eth0 ipv4.method manual
設定内容を確認すると
$ nmcli -f ipv4 connection show eth0
ipv4.method: manual
ipv4.dns: 192.168.100.1,8.8.8.8
ipv4.dns-search: --
ipv4.dns-options: --
ipv4.dns-priority: 0
ipv4.addresses: 192.168.100.100/24
ipv4.gateway: 192.168.100.1
ipv4.routes: --
ipv4.route-metric: -1
ipv4.route-table: 0 (unspec)
ipv4.routing-rules: --
ipv4.replace-local-rule: -1 (default)
ipv4.ignore-auto-routes: no
ipv4.ignore-auto-dns: no
ipv4.dhcp-client-id: --
ipv4.dhcp-iaid: --
ipv4.dhcp-timeout: 0 (default)
ipv4.dhcp-send-hostname: yes
ipv4.dhcp-hostname: --
ipv4.dhcp-fqdn: --
ipv4.dhcp-hostname-flags: 0x0 (none)
ipv4.never-default: no
ipv4.may-fail: yes
ipv4.required-timeout: -1 (default)
ipv4.dad-timeout: -1 (default)
ipv4.dhcp-vendor-class-identifier: --
ipv4.link-local: 0 (default)
ipv4.dhcp-reject-servers: --
ipv4.auto-route-ext-gw: -1 (default)
コマンドで指示された内容が赤文字の通り設定されます。
まだ、プロパティの設定だけなので、ネットワークとして有効にするためコネクションeth0を再起動します。
$ sudo nmcli connection up eth0
上記コマンドでeth0を再起動すると、ネットワークアドレスが変更されるので、SSH(teraterm)の反応が無くなります。(Teratermのホスト名の指定の仕方で切れないこともあります。)
SSH(Teraterm)を再起動して、固定のIPアドレスで接続し問題の無いことを確認します。
下記のコマンドで固定IPが付番されている事を確認します。
$ ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host noprefixroute
valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether b8:27:eb:20:91:fa brd ff:ff:ff:ff:ff:ff
inet 192.168.100.100/24 brd 192.168.100.255 scope global noprefixroute eth0
valid_lft forever preferred_lft forever
inet6 fe80::908a:d1c8:eb49:ac93/64 scope link noprefixroute
valid_lft forever preferred_lft forever
3: wlan0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc pfifo_fast state DOWN group default qlen 1000
link/ether b8:27:eb:75:c4:af brd ff:ff:ff:ff:ff:ff
pi
赤文字の通り192.168.100.100/24が設定されています。
これで、固定IPアドレスの設定は終了です。