Raspberry Pi4にSSH(Teraterm)を接続して、最初ににやらないといけない事は、固定IPアドレスを設定して、SSH(Teraterm)で気軽に接続できる環境を作ることです。
※※Raspberry Pi OS(bookworm)のリリースから、ネットワークサービスがNetworkManagerに変更されました。
rsyslogのインストール
raspberry pi os(bookworm)から、ログ管理のデフォルトがjournaldになりました。
/etc/log/syslogにログが出力されないと、運用が面倒なのでrsyslogをインストールします。
$ sudo apt-get -y install rsyslog
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
The following additional packages will be installed:
libestr0 libfastjson4 liblognorm5
Suggested packages:
rsyslog-mysql | rsyslog-pgsql rsyslog-mongodb rsyslog-doc rsyslog-openssl | rsyslog-gnutls rsyslog-gssapi rsyslog-relp
The following NEW packages will be installed:
libestr0 libfastjson4 liblognorm5 rsyslog
0 upgraded, 4 newly installed, 0 to remove and 0 not upgraded.
Need to get 800 kB of archives.
After this operation, 4,141 kB of additional disk space will be used.
Get:1 http://deb.debian.org/debian bookworm/main arm64 libestr0 arm64 0.1.11-1 [9,220 B]
Get:2 http://deb.debian.org/debian bookworm/main arm64 libfastjson4 arm64 1.2304.0-1 [27.4 kB]
Get:3 http://deb.debian.org/debian bookworm/main arm64 liblognorm5 arm64 2.0.6-4 [63.8 kB]
Get:4 http://deb.debian.org/debian bookworm/main arm64 rsyslog arm64 8.2302.0-1 [700 kB]
Fetched 800 kB in 0s (3,767 kB/s)
Selecting previously unselected package libestr0:arm64.
(Reading database ... 76514 files and directories currently installed.)
Preparing to unpack .../libestr0_0.1.11-1_arm64.deb ...
Unpacking libestr0:arm64 (0.1.11-1) ...
Selecting previously unselected package libfastjson4:arm64.
Preparing to unpack .../libfastjson4_1.2304.0-1_arm64.deb ...
Unpacking libfastjson4:arm64 (1.2304.0-1) ...
Selecting previously unselected package liblognorm5:arm64.
Preparing to unpack .../liblognorm5_2.0.6-4_arm64.deb ...
Unpacking liblognorm5:arm64 (2.0.6-4) ...
Selecting previously unselected package rsyslog.
Preparing to unpack .../rsyslog_8.2302.0-1_arm64.deb ...
Unpacking rsyslog (8.2302.0-1) ...
Setting up libestr0:arm64 (0.1.11-1) ...
Setting up libfastjson4:arm64 (1.2304.0-1) ...
Setting up liblognorm5:arm64 (2.0.6-4) ...
Setting up rsyslog (8.2302.0-1) ...
Created symlink /etc/systemd/system/syslog.service → /lib/systemd/system/rsyslog.service.
Created symlink /etc/systemd/system/multi-user.target.wants/rsyslog.service → /lib/systemd/system/rsyslog.service.
Processing triggers for libc-bin (2.36-9+rpt2+deb12u3) ...
Processing triggers for man-db (2.11.2-2) ...
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 (10.8 MB/s)
Selecting previously unselected package libgpm2:arm64.
(Reading database ... 55058 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 ... ・
・
・
一杯出るので割愛
SSH(Teraterm)で使用する時、マウスカーソルからコピペしようとすると勝手に「挿入(ビジュアルモード)」になってコピペしにくくなるので、~/.vimrcのファイルを作成して設定してください。
viエディタで、クリップボードから貼り付けできるようになります。
$ vi ~/.vimrc
ファイルに追加する内容は最小限にしています。
syntax on
set incsearch
colorscheme elflord
set mouse=
viの超簡単な使い方は、ここを見てね
rootでもviを使うので、コピーしておきましょう。
$ sudo cp .vi* /root/
今必要ではないですが、便利な設定は下記の記事に掲載しています。
ネットワーク設定の準備
Raspberry Pi OS(bookworm)からネットワークサービスがDHCPからNetworkManagerに変わりましたので、憶えないといけないことが一杯です。
ネットワークの状態を確認
下記コマンドで概要を確認します。
$ nmcli
eth0: connected to Wired connection 1
"eth0"
ethernet (bcmgenet), DC:A6:32:91:31:FE, hw, mtu 1500
ip4 default
inet4 192.168.100.17/24
route4 192.168.100.0/24 metric 100
route4 default via 192.168.100.1 metric 100
inet6 fe80::e749:73ef:1922:bd89/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), DC:A6:32:91:31:FF, 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 f41db84f-f7aa-3432-b838-46868768459a ethernet eth0
lo bc1b0ca6-b511-4c1c-b65e-04fd5280ab7b loopback lo
nmcliでは、コネクション名を指定して設定を行わないといけないので、スペースを含むコネクション名は使いづらいので、名前をデバイス名と同じeth0を設定します。
下記コマンドを実行する事で、直ぐに名前を変更ができます。
$ sudo nmcli connection modify 'Wired connection 1' connection.id eth0
変わったか確認してみます。
$ nmcli connection show
NAME UUID TYPE DEVICE
eth0 f41db84f-f7aa-3432-b838-46868768459a ethernet eth0
lo bc1b0ca6-b511-4c1c-b65e-04fd5280ab7b loopback lo
サーバに固定IPを設定
Buster(Debian11)の時の固定IPアドレスの設定方法は、過去記事のここを参照ください。
設定方法には、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)の反応が無くなります。
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 mq state UP group default qlen 1000
link/ether dc:a6:32:91:31:fe 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::e749:73ef:1922:bd89/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 dc:a6:32:91:31:ff brd ff:ff:ff:ff:ff:ff
赤文字の通り192.168.100.100/24が設定されています。
これで、固定IPアドレスの設定は終了です。