特別寄稿
2026年9月1日掲載
今回はRaspberry Pi 4の4GBモデルを使いました。OSのインストール後、まずパッケージを更新します。
sudo apt update && sudo apt upgrade -y
sudo reboot
再起動後に再ログインし、WireGuardと確認用のツールをインストールします。
sudo apt install -y wireguard resolvconf net-tools mtr
44Net ConnectのTunnel画面からWireGuard設定をダウンロードします。ファイル名は環境によって異なりますが、今回はrpi-44net-wg-quick.confとしてダウンロードしました。この内容をRaspberry Pi側の /etc/wireguard/44net-connect.conf に貼り付けます。
sudo nano /etc/wireguard/44net-connect.conf
設定ファイルの中身は概ね次のようになります。
[Interface]
PrivateKey = <hidden>
Address = fe80::xxxx:xxxx:xxxx:xxxx/64, 44.27.128.zzz/24
DNS = 1.1.1.1,1.0.0.1
MTU = 1380
[Peer]
PublicKey = <hidden>
PresharedKey = <hidden>
Endpoint = 44.27.225.1:44004
PersistentKeepalive = 20
AllowedIPs = 0.0.0.0/0, ::/0
ここでは44.27.128.zzzが、dfw-edge-02の44.27.128.0/24から払い出された、このTunnel用の44Netアドレスです。AllowedIPsが0.0.0.0/0, ::/0になっているため、この設定ではRaspberry Piの外向き通信は原則として44Net ConnectのTunnel経由になります。
設定ファイルには秘密鍵が含まれるため、権限を絞っておきます。
sudo chmod 600 /etc/wireguard/44net-connect.conf
準備ができたら、wg-quickでTunnelを起動します。
sudo wg-quick up 44net-connect
筆者の環境では、次のようにエラーなくインターフェースが作成されました。
[#] ip link add 44net-connect type wireguard
[#] wg setconf 44net-connect /dev/fd/63
[#] ip -6 address add fe80::xxxx:xxxx:xxxx:xxxx/64 dev 44net-connect
[#] ip -4 address add 44.27.128.zzz/24 dev 44net-connect
[#] ip link set mtu 1380 up dev 44net-connect
[#] resolvconf -a tun.44net-connect -m 0 -x
[#] wg set 44net-connect fwmark 51820
[#] ip -4 route add 0.0.0.0/0 dev 44net-connect table 51820
[#] ip -4 rule add not fwmark 51820 table 51820
成功したら、WireGuardの状態、IPアドレス、ルーティング、外向きIPアドレスを確認します。
sudo wg
ip addr show 44net-connect
ip route
curl -4 ifconfig.me
ping -c 4 1.1.1.1
sudo wgでは、latest handshakeに最近の時刻が表示され、rx/txの値が増えていれば、PoPとの通信が行われています。筆者の環境では次のようになりました。
interface: 44net-connect
public key: <hidden>
listening port: 37015
peer: <hidden>
endpoint: 44.27.225.1:44004
allowed ips: 0.0.0.0/0, ::/0
latest handshake: 1 minute, 7 seconds ago
transfer: 8.11 KiB received, 1.52 KiB sent
persistent keepalive: every 20 seconds
IPアドレスも確認します。
ip addr show 44net-connect
4: 44net-connect: <POINTOPOINT,NOARP,UP,LOWER_UP> mtu 1380 qdisc noqueue state UNKNOWN group default qlen 1000
inet 44.27.128.zzz/24 scope global 44net-connect
valid_lft forever preferred_lft forever
さらに外向きIPv4を確認します。
curl -4 ifconfig.me
44.27.128.zzz

確認コマンドの結果例
この結果から、Raspberry Piの外向きIPv4が44.27.128.zzzになっていることが分かります。pingも確認しました。
ping -c 3 1.1.1.1
64 bytes from 1.1.1.1: icmp_seq=1 ttl=54 time=195 ms
64 bytes from 1.1.1.1: icmp_seq=2 ttl=54 time=196 ms
64 bytes from 1.1.1.1: icmp_seq=3 ttl=54 time=194 ms
--- 1.1.1.1 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss
rtt min/avg/max/mdev = 193.977/194.696/195.544/0.646 ms
オーストラリアからDallas経由なので、遅延は約195msでした。リアルタイム系用途では低遅延に越したことはありませんが、まずはパケットロスなしで安定して疎通できていることを確認できました。
ここまで来ると、44.27.128.zzzは外部から到達可能なグローバルIPv4アドレスとしてRaspberry Piに付いています。試しに一時的なWebサーバーを立てて、スマートフォンのモバイル回線など別回線からアクセスしてみます。
mkdir -p ~/www
echo ”Hello from 44Net: $(hostname) $(date)” > ~/www/index.html
cd ~/www
python3 -m http.server 8080 --bind 0.0.0.0
別回線から次のURLを開きます。
http://44.27.128.zzz:8080/

外部ネットワークから Raspberry Piにアクセス
ページが表示されれば成功です。Pythonの簡易HTTPサーバーはテスト用なので、確認が終わったらCtrl+Cで停止します。実際にWebサーバーを運用するならば、一般のインターネットサーバーと同様のセキュリティ対策が必要です。
なお、今回は、外部からの到達性を確認するため、一時的にWebサーバーを起動してからFirewallを設定しましたが、実際に試す場合は、先にFirewallを設定し、テストに必要な8080/tcpだけを一時的に許可してからWebサーバーを起動することを推奨します。
Webサーバーの確認ができたので、不要なポートは閉じます。FirewallにはUFWを使いました。
sudo apt install -y ufw
sudo ufw default deny incoming
sudo ufw default allow outgoing
SSHは44Net側から開ける必要はありません。管理は自宅LAN側の192.168.4.0/22から行うため、SSHはローカルLANからだけ許可します。自分のLANアドレス範囲が異なる場合は、ここを読み替えてください。
# ローカルLANからのSSHだけ許可
sudo ufw allow from 192.168.4.0/22 to any port 22 proto tcp
# テスト用Web
sudo ufw allow 8080/tcp
sudo ufw enable
sudo ufw status verbose
この設定なら、44.27.128.zzz側からのSSHは拒否しつつ、自宅LANからはSSHで管理できます。テスト用Webを閉じる場合は、確認後に次のように削除します。
sudo ufw delete allow 8080/tcp
UFWを有効にしたら、実際にどのような通信を遮断しているのか確認してみましょう。まず、UFWのログ出力を有効にします。
sudo ufw logging medium
別のSSHセッションを開いて次のコマンドを実行すると、UFWが遮断した通信をリアルタイムで表示できます。
sudo journalctl -k -f | grep --line-buffered ”UFW BLOCK”
筆者の環境では、表示を始めるとすぐに、さまざまな送信元IPアドレスから多数の接続試行が到着しました。ログ中の主な項目は次の意味です。
・IN=44net-connect: 44NetのWireGuardインターフェースから入ってきた通信
・SRC: 通信元のIPアドレス
・DST: Raspberry Piに割り当てられた44Netアドレス
・PROTO: TCPまたはUDPなどのプロトコル
・DPT: 接続を試みられた宛先ポート番号
このような通信の多くは、特定の利用者を狙ったものではなく、インターネット上のIPv4アドレスを自動的に巡回する無差別なポートスキャンや接続試行と考えられます。グローバルIPv4アドレスを機器へ割り当てた時点で、アドレスを誰にも知らせていなくても、世界中のネットワークから、無差別な探索や接続試行を受け得る状態になったことが分かります。このため、グローバルIPv4アドレスを割り当てる場合は、必要なポートだけを許可し、不要なサービスを停止するとともに、公開するソフトウェアを常に最新の状態に保つ必要があります。
今回の作業により、Raspberry Piには44.27.128.zzzが割り当てられました。これは、接続先のPoPであるdfw-edge-02の44.27.128.0/24から、Tunnel用として払い出されたグローバルIPv4アドレスです。また、このアドレスを使って、Raspberry Piへインターネット側から直接アクセスできることを確認しました。Raspberry Piを1台だけ公開するのであれば、このTunnel用アドレスだけでも実用上は十分です。
一方、第1回で取得した44.27.yy.0/29は、44Net Connect側でこのTunnelの先へルーティングするよう設定しただけで、まだRaspberry Piや配下の機器には割り当てていません。「/29」のアドレスを複数の機器で活用するなら、専用ルーターを用意し、44Net用のLANとして構成する方が自然です。
次回は、MikroTikのルーターを44Net ConnectのWireGuardクライアントとして設定し、44.27.yy.0/29をLAN側へルーティングします。さらに、その先のIC-R8600へグローバルIPv4アドレスを直接割り当て、NATやポートフォワーディングを介さず、インターネットから直接到達できる構成を試します。
アマチュア無線家が使えるグローバルIP「44Net」 バックナンバー
アマチュア無線関連機関/団体
各総合通信局/総合通信事務所
アマチュア無線機器メーカー(JAIA会員)
©2026 月刊FBニュース編集部 All Rights Reserved.