Raspberry Pi Zero WでSORACOM Airの設定をしていきます。
USB モデムはAK-020を使用しました。
AK-020モデムのドライバをインストールするのですが、
SORACOMでスクリプトを用意してくれているので、
それを実行するだけで使えるようになります。
とても便利です。
AK-020のランプが点滅状態に変われば接続完了です。
点滅状態に変わらなければ、SORACOMのユーザーコンソールでSIMカードを有効化しているか確認しましょう。
Raspberry Pi Zero WでSORACOM Airの設定をしていきます。
USB モデムはAK-020を使用しました。
AK-020モデムのドライバをインストールするのですが、
SORACOMでスクリプトを用意してくれているので、
それを実行するだけで使えるようになります。
とても便利です。
AK-020のランプが点滅状態に変われば接続完了です。
点滅状態に変わらなければ、SORACOMのユーザーコンソールでSIMカードを有効化しているか確認しましょう。
SDカードにOSイメージを書き込みます。
Raspbian busterを使いました。
ディスプレイ無しで使えるようにしていきます。
書き込みが終わったら、WindowsでSDカードの中身を見ます。
以下の通り、SSHを有効にします。
Raspberry Pi 4Bの解像度設定(VNC接続) - shima36’s blog
WiFiの設定をしていきます。
bootドライブに「wpa_supplicant.conf」というファイルを作るといいらしいのですが、
設定につまずいたので設定例をのせます。
「wpa_supplicant.conf」の中身は以下です。
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev update_config=1 country=JP network={ ssid="自分のルーターのSSID" psk="自分のルーターのパスワード" }
Windowsのメモ帳を使ってファイルを作ったのですが、改行コードがWindowsの「CR+LF」になってしまいました。
今回はLinuxなので「LF」で保存したいです。
なので、TeraPadで改行コードが「LF」のファイルを作りました。
なお、メモ帳の最新バージョンでは、改行コードがちゃんと認識されるようです。
Windowsでおなじみのテキストエディタ「メモ帳」が進化、何が変わるのか? - GIGAZINE
元のファイルが「LF」なら、編集しても「LF」のまま保存してくれます。
ただ、新規作成すると指定できなくて「CR+LF」になってしまうようです。
ちゃんとUnix(LF)と認識していますね。
bootドライブに書き込んだら、
SDカードをRaspberry Pi Zero Wに挿して起動します。
しばらくすると、ルータの設定画面でIPアドレスが割り振られているのを確認できると思います。
SSHでの接続も可能になっているはずです。
SSH接続します。
raspi-configで以下を設定していきます。
pi@raspberrypi:~ $ sudo raspi-config
・ロケール設定
住んでるのが日本だからといって、[en_GB.UTF-8 UTF-8]のチェックを外してしまうと、キーボードレイアウト設定でエラーが出てしまいます。
・タイムゾーン設定
・キーボードレイアウト設定
以下を参考にしました。
https://cloudpack.media/46603
<参考>
SoftetherVPNサーバーマネージャで設定後、
(tap_vlan仮想アダプタを作成。詳細は別にまとめます。)
tap_vlanが作成されているのが確認できます。
pi@raspberrypi:~ $ ifconfig br0: flags=4419<UP,BROADCAST,RUNNING,PROMISC,MULTICAST> mtu 1500 inet 192.168.7.27 netmask 255.255.255.0 broadcast 192.168.7.255 inet6 2400:4050:****:****:ac61:b6da:2cfe:8f7 prefixlen 64 scopeid 0x0<global> inet6 fe80::****:****:eb9b:2e69 prefixlen 64 scopeid 0x20<link> ether dc:a6:**:70:13:** txqueuelen 1000 (Ethernet) RX packets 7856 bytes 1575188 (1.5 MiB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 4332 bytes 749302 (731.7 KiB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 eth0: flags=4419<UP,BROADCAST,RUNNING,PROMISC,MULTICAST> mtu 1500 ether dc:a6:**:70:13:** txqueuelen 1000 (Ethernet) RX packets 7872 bytes 1686054 (1.6 MiB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 4332 bytes 749302 (731.7 KiB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536 ・・・ tap_vlan: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 inet6 fe80::****:****:eb9b:2e69 prefixlen 64 scopeid 0x20<link> ether 5e:cc:**:ae:17:** txqueuelen 1000 (Ethernet) RX packets 17 bytes 846 (846.0 B) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 15 bytes 2064 (2.0 KiB)
前回作成したブリッジにtap_vlanを追加します。
最終的に、起動時に自動的に追加されるようにするのですが、
一時的に追加して動作を確認します。
\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
現在のブリッジの状態
pi@raspberrypi:~ $ brctl show br0 bridge name bridge id STP enabled interfaces br0 8000.dca6327013e4 no eth0
タップデバイスの名前の確認
pi@raspberrypi:~ $ ip tuntap tap_vlan: tap
ブリッジにtap_vlanを追加
pi@raspberrypi:~ $ sudo brctl addif br0 tap_vlan
追加後のブリッジの状態
pi@raspberrypi:~ $ brctl show br0 bridge name bridge id STP enabled interfaces br0 8000.5ecc74ae170e no eth0 tap_vlan
\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
起動時に自動的に追加されるようにする。
以下を参考にしました。
pi@raspberrypi:/usr/local/bin/vpnserver $ sudo nano vpnserver-tap-enable.sh
下記を記入。「sleep 5」の部分、最初は「sleep 1」だったが、ブリッジが組まれないことが多かったため、「sleep 5」にした。
現在は、何回再起動しても問題なくブリッジが組まれている。
Softetherのタップとの起動タイミングングの問題か?
#!/bin/sh TAP_DEVICE=tap_vlan BR_STATUS=`/sbin/brctl show br0 | grep ${TAP_DEVICE} | wc -l` LOOP_CNT=0 while [ $BR_STATUS = 0 ] do sleep 5 /sbin/brctl addif br0 ${TAP_DEVICE} if [ $? -ne 0 ]; then break fi LOOP_CNT=$(( LOOP_CNT + 1 )) if [ ${LOOP_CNT} = 10 ]; then break fi done exit 0
pi@raspberrypi:/usr/local/bin/vpnserver $ ls Authors.txt Makefile server_log backup.vpn_server.config packet_log vpncmd chain_certs ReadMeFirst_Important_Notices_cn.txt vpnserver code ReadMeFirst_Important_Notices_en.txt vpn_server.config hamcore.se2 ReadMeFirst_Important_Notices_ja.txt vpnserver-tap-enable.sh lang.config ReadMeFirst_License.txt lib security_log pi@raspberrypi:/usr/local/bin/vpnserver $ sudo chmod +x vpnserver-tap-enable.sh
pi@raspberrypi:/usr/local/bin/vpnserver $ sudo nano /etc/systemd/system/softether-vpn.service
下記を記入
[Unit] Description=SoftEther VPN Server After=network.target network-online.target [Service] ExecStart=/usr/local/bin/vpnserver/vpnserver start ExecStop=/usr/local/bin/vpnserver/vpnserver stop ExecStartPost=/usr/local/bin/vpnserver/vpnserver-tap-enable.sh Type=forking RestartSec=3s [Install] WantedBy=multi-user.target
.serviceを編集したので、念のためdaemon-reloadする。
pi@raspberrypi:~ $ sudo systemctl daemon-reload
pi@raspberrypi:/usr/local/bin/vpnserver $ sudo reboot
再起動後、自動的に追加されているか確認する。
pi@raspberrypi:~ $ brctl show bridge name bridge id STP enabled interfaces br0 8000.5ecc74ae170e no eth0 tap_vlan
ブリッジが成功するとSoftether VPNサーバー側のIPテーブルに以下のように、Raspberry Piが接続されているLAN内のIPアドレスが列挙されてくる。ここにIPが出てきていなければPINGも飛ばない。
ちなみに、ブリッジされてないと以下のようになる。192.168.21.1などLAN内のIPが出てこない。
SoftEtherのインストールをしていきます。
<現在のディレクトリ>
pi@raspberrypi:~ $ pwd /home/pi
SoftEtherのホームページからリンクを調べて、ダウンロード。
pi@raspberrypi:~ $ wget https://jp.softether-download.com/files/softether/v4.42-9798-rtm-2023.06.30-tree/Linux/SoftEther_VPN_Server/64bit_-_ARM_64bit/softether-vpnserver-v4.42-9798-rtm-2023.06.30-linux-arm64-64bit.tar.gz --2023-10-01 15:46:24-- https://jp.softether-download.com/files/softether/v4.42-9798-rtm-2023.06.30-tree/Linux/SoftEther_VPN_Server/64bit_-_ARM_64bit/softether-vpnserver-v4.42-9798-rtm-2023.06.30-linux-arm64-64bit.tar.gz Resolving jp.softether-download.com (jp.softether-download.com)... 130.158.75.49 Connecting to jp.softether-download.com (jp.softether-download.com)|130.158.75.49|:443... connected. HTTP request sent, awaiting response... 200 OK Length: 8016967 (7.6M) [application/x-gzip] Saving to: ‘softether-vpnserver-v4.42-9798-rtm-2023.06.30-linux-arm64-64bit.tar.gz’ softether-vpnserver-v 100%[========================>] 7.65M 1002KB/s in 67s 2023-10-01 15:47:32 (116 KB/s) - ‘softether-vpnserver-v4.42-9798-rtm-2023.06.30-linux-arm64-64bit.tar.gz’ saved [8016967/8016967]
ダウンロードされました。
pi@raspberrypi:~ $ ls -a softether-vpnserver-v4.42-9798-rtm-2023.06.30-linux-arm64-64bit.tar.gz
解凍します。
pi@raspberrypi:~ $ tar -zxvf softether-vpnserver-v4.42-9798-rtm-2023.06.30-linux-arm64-64bit.tar.gz vpnserver/ vpnserver/Makefile vpnserver/.install.sh ・・・ vpnserver/lib/libz.a vpnserver/lib/License.txt vpnserver/hamcore.se2
ディレクトリ「vpnserver」が作られました。
pi@raspberrypi:~ $ ls -a softether-vpnserver-v4.42-9798-rtm-2023.06.30-linux-arm64-64bit.tar.gz vpnserver
ホームディレクトリから移動します。
pi@raspberrypi:~ $ sudo mv vpnserver/ /usr/local/bin/
pi@raspberrypi:~ $ cd /usr/local/bin/ pi@raspberrypi:/usr/local/bin $ ls -a . .. vpnserver pi@raspberrypi:/usr/local/bin $ cd vpnserver/
コンパイルします。
pi@raspberrypi:/usr/local/bin/vpnserver $ sudo make -------------------------------------------------------------------- SoftEther VPN Server (Ver 4.42, Build 9798, ARM 64bit) for Linux Build Utility Copyright (c) SoftEther Project at University of Tsukuba, Japan. All Rights Reserved. -------------------------------------------------------------------- Copyright (c) all contributors on SoftEther VPN project in GitHub. Copyright (c) Daiyuu Nobori, SoftEther Project at University of Tsukuba, and SoftEther Corporation. ・・・(途中略)・・・ https://127.0.0.1:5555/ or https://ip_address_of_the_vpn_server:5555/ This HTML5 page is obviously under construction, and your HTML5 development contribution is very appreciated. -------------------------------------------------------------------- make[1]: Leaving directory '/usr/local/bin/vpnserver'
自動起動するようにします。
pi@raspberrypi:/usr/local/bin/vpnserver $ cd /etc/systemd/system/ pi@raspberrypi:/etc/systemd/system $ sudo nano softether-vpn.service
以下を記入
[Unit] Description=Softether VPN Server Service After=network.target [Service] Type=forking User=root ExecStart=/usr/local/bin/vpnserver/vpnserver start ExecStop=/usr/local/bin/vpnserver/vpnserver stop Restart=on-abort WorkingDirectory=/usr/local/bin/vpnserver/ ExecStartPre=/sbin/ip link set dev eth0 promisc on [Install] WantedBy=multi-user.target
pi@raspberrypi:/etc/systemd/system $ sudo systemctl daemon-reload
pi@raspberrypi:/etc/systemd/system $ sudo systemctl start softether-vpn.service pi@raspberrypi:/etc/systemd/system $ sudo systemctl status softether-vpn.service ● softether-vpn.service - Softether VPN Server Service Loaded: loaded (/etc/systemd/system/softether-vpn.service; disabled; vendor prese> Active: active (running) since Sun 2023-10-01 16:55:34 JST; 5s ago Process: 968 ExecStartPre=/sbin/ip link set dev eth0 promisc on (code=exited, stat> ・・・
最後にサービス自動起動を有効にしておきます。
pi@raspberrypi:/etc/systemd/system $ sudo systemctl enable softether-vpn.service Created symlink /etc/systemd/system/multi-user.target.wants/softether-vpn.service → /etc/systemd/system/softether-vpn.servic e.
これまでRaspberry Pi 3B+でSoftetherを運用してきたが、Raspberry Pi 4Bを購入したので新しく環境を構築する流れをまとめた。
Raspbianのバージョンなどは以下の通り。
pi@raspberrypi:~ $ lsb_release -a No LSB modules are available. Distributor ID: Debian Description: Debian GNU/Linux 11 (bullseye) Release: 11 Codename: bullseye
pi@raspberrypi:~ $ uname -a Linux raspberrypi 6.1.21-v8+ #1642 SMP PREEMPT Mon Apr 3 17:24:16 BST 2023 aarch64 GNU/Linux
最初にネットワークブリッジの設定をしていきます。
<設定前の状態>
pi@raspberrypi:~ $ ifconfig -a eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 inet 192.168.7.26 netmask 255.255.255.0 broadcast 192.168.7.255 inet6 fe80::****:****:eb9b:2e69 prefixlen 64 scopeid 0x20<link> inet6 2400:4050:****:****:ac61:b6da:2cfe:8f7 prefixlen 64 scopeid 0x0<global> ether dc:a6:**:70:13:** txqueuelen 1000 (Ethernet) RX packets 91258 bytes 24276888 (23.1 MiB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 42910 bytes 2705329 (2.5 MiB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536 inet 127.0.0.1 netmask 255.0.0.0 inet6 ::1 prefixlen 128 scopeid 0x10<host> loop txqueuelen 1000 (Local Loopback) RX packets 0 bytes 0 (0.0 B) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 0 bytes 0 (0.0 B) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 wlan0: flags=4098<BROADCAST,MULTICAST> mtu 1500 ether dc:a6:**:70:13:** txqueuelen 1000 (Ethernet) RX packets 0 bytes 0 (0.0 B) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 0 bytes 0 (0.0 B) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
bridge-utilsのインストール
pi@raspberrypi:~ $ sudo apt install bridge-utils Reading package lists... Done Building dependency tree... Done Reading state information... Done The following NEW packages will be installed: bridge-utils 0 upgraded, 1 newly installed, 0 to remove and 0 not upgraded. Need to get 37.6 kB of archives. After this operation, 116 kB of additional disk space will be used. Get:1 http://deb.debian.org/debian bullseye/main arm64 bridge-utils arm64 1.7-1 [37.6 kB] Fetched 37.6 kB in 0s (95.9 kB/s) Selecting previously unselected package bridge-utils. (Reading database ... 37761 files and directories currently installed.) Preparing to unpack .../bridge-utils_1.7-1_arm64.deb ... Unpacking bridge-utils (1.7-1) ... Setting up bridge-utils (1.7-1) ... Processing triggers for man-db (2.9.4-2) ...
/etc/network/interfacesの編集
pi@raspberrypi:~ $ sudo nano /etc/network/interfaces
#書き込み禁止と出るので再起動してみる。
pi@raspberrypi:~ $ sudo reboot
再度、/etc/network/interfacesの編集
pi@raspberrypi:~ $ sudo nano /etc/network/interfaces
以下を記入
# interfaces(5) file used by ifup(8) and ifdown(8) # Include files from /etc/network/interfaces.d: source /etc/network/interfaces.d/* # Bridge interface auto br0 iface br0 inet dhcp bridge_ports eth0
再起動します。
pi@raspberrypi:~ $ sudo reboot
ブリッジが作られました。
pi@raspberrypi:~ $ ifconfig -a br0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 inet 192.168.7.27 netmask 255.255.255.0 broadcast 192.168.7.255 inet6 2400:4050:****:****:ac61:b6da:2cfe:8f7 prefixlen 64 scopeid 0x0<global> inet6 fe80::****:****:eb9b:2e69 prefixlen 64 scopeid 0x20<link> ether dc:a6:**:70:13:** txqueuelen 1000 (Ethernet) RX packets 3384 bytes 260004 (253.9 KiB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 326 bytes 34701 (33.8 KiB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 ether dc:a6:**:70:13:** txqueuelen 1000 (Ethernet) RX packets 3387 bytes 308020 (300.8 KiB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 326 bytes 34701 (33.8 KiB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536 inet 127.0.0.1 netmask 255.0.0.0 inet6 ::1 prefixlen 128 scopeid 0x10<host> loop txqueuelen 1000 (Local Loopback) RX packets 2 bytes 78 (78.0 B) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 2 bytes 78 (78.0 B) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 wlan0: flags=4098<BROADCAST,MULTICAST> mtu 1500 ether dc:a6:**:70:13:** txqueuelen 1000 (Ethernet) RX packets 0 bytes 0 (0.0 B) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 0 bytes 0 (0.0 B) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
朝の頭がスッキリしている時にブログのネタが思いつくことがあるかもしれません。
そんなとき私は「Google ToDoリスト」をネタ帳として使っています。
起動も早くて、すぐにメモできます。また、サブタスクも作成可能で、内容を詰めるときも便利です。
一番のメリットはマルチプラットフォームであること。
メモした内容は家のPCでも見ることができます。すぐ手の届くところにメモ帳を置ける感じです。
電車での移動中や、歩いてる途中にネタを思い付いてもすぐ立ち止まってメモを取ることができます。
確定申告の時期になりましたね。
私はいつもe-taxを使用して申請していますが、寄附金控除の画面でいつも迷うので、調べたことをまとめます。
以下のような選択肢があるのですが、
・住所地の都道府県のみが条例により指定した寄附金
・住所地の市区町村のみが条例により指定した寄附金
自分が寄付してる先のホームページにFAQがあるのですが、読んでみてもしっくりこない。
どれにチェックを付けたら良いの?となる。
住民税控除の部分に関わってくるのですが、
自分が住んでる都道府県と、寄付先の団体がある都道府県が同じならば、県民税や都民税が控除される可能性があります。
それを確認するには自分が住んでいる都道府県のホームページで調べなければいけません。
NPOなどの団体は東京都に多いので、
東京都の場合だと「東京都主税局」の「東京都条例指定寄附金一覧」に寄付先の名称が載っていれば、都民税の控除が受けられます。
選択肢の「住所地の都道府県のみが条例により指定した寄附金」は確定です。
次に、自分が住んでる市区町村と、寄付先の団体がある市区町村が同じならば、市民税が控除される可能性があります。
「○○市 寄附金税額控除」などで検索して、「○○市が条例で指定した寄附金対象一覧」に寄付先の名称が載っていれば、市民税の控除が受けられます。
選択肢の「・住所地の市区町村のみが条例により指定した寄附金」は確定です。
また、都道府県と市区町村の両方に乗っている場合は、
「・住所地の都道府県及び市区町村の両方が条例により指定した寄附金」となります。