1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Pi Zero 2W を有線LANにしたら WireGuard スループットが5倍になった

1
Last updated at Posted at 2026-06-02

要約

WireGuard サーバとして使っている Raspberry Pi Zero 2W が Wi-Fi(2.4GHz)接続のためスループットが 16 Mbps に張り付いていた。
USB OTG 経由で有線 LAN アダプターを追加したところ、84.9 Mbps まで改善した。

背景

前回の記事で Beryl 7 を WireGuard クライアント兼ルーターにして複数端末を自宅 LAN に接続できるようにした。

動作はしたものの、VPN 経由のスピードテストが 7〜8 Mbps 止まり。Pi 自体を speedtest-cli で計測すると 37 Mbps 出ていたので、VPN トンネルのオーバーヘッドや CPU がボトルネックではなく、Wi-Fi(2.4GHz)の二重ホップが原因だと判明した。

クライアント → Beryl 7(Wi-Fi)→ Pi Zero 2W(Wi-Fi)→ 自宅 LAN
                                   ↑ ここが 2.4GHz で上限 30Mbps 程度

LAN 内で iperf 相当のテストをしたところ 16 Mbps が天井。

環境

項目 内容
マシン Raspberry Pi Zero 2W
OS Raspberry Pi OS Lite 64bit
接続 USB OTG(microUSB)→ 有線 LAN
LAN アダプター TIMELY microUSB 有線 LAN アダプター(RTL8152 チップ)
LAN ケーブル Ankuly Cat6A 0.15m

Pi Zero 2W に有線 LAN を追加する手順

1. アダプターを挿すだけ

Pi Zero 2W の microUSB OTG ポートに LAN アダプターを接続する。

RTL8152 チップのアダプターであれば、Raspberry Pi OS は標準でドライバーを持っているため追加インストール不要

# 認識確認
lsusb
# → Bus 001 Device 002: ID 0bda:8152 Realtek Semiconductor Corp. ...

dmesg | grep r8152
# → r8152 ... registered network device

2. IP アドレスと優先度を確認

ip addr show
# eth0: 192.168.68.xx  ← 新しい有線 LAN
# wlan0: 192.168.68.xx ← 既存 Wi-Fi

ip route show
# eth0 metric 100   ← 数値が小さい方が優先
# wlan0 metric 600

有線(eth0)がデフォルトルートとして使われていれば OK。

3. WireGuard の PostUp / PostDown を更新

有線 LAN 追加前は wlan0 にだけ MASQUERADE を設定していた。eth0 も追加する。

PostUp   = iptables -A FORWARD -i wg0 -j ACCEPT; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE; iptables -t nat -A POSTROUTING -o wlan0 -j MASQUERADE
PostDown = iptables -D FORWARD -i wg0 -j ACCEPT; iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE; iptables -t nat -D POSTROUTING -o wlan0 -j MASQUERADE

wlan0 も残しておくのは、有線が外れたときのフォールバック用。

4. IP フォワーディングを永続化

Raspberry Pi OS Lite はデフォルトで IP フォワーディングが無効(0)になっている。/etc/sysctl.conf に書く方法もあるが、/etc/sysctl.d/ 配下に置く方が確実に再起動後も反映される。

# 永続化
echo "net.ipv4.ip_forward=1" | sudo tee /etc/sysctl.d/90-ip-forward.conf

# 即時適用
sudo sysctl -w net.ipv4.ip_forward=1

# 確認
cat /proc/sys/net/ipv4/ip_forward
# → 1

これを忘れると再起動後に VPN 経由のインターネットが繋がらなくなる。/etc/sysctl.conf への追記だけでは Raspberry Pi OS Lite で反映されないことがあるため、/etc/sysctl.d/ を使うこと。

結果

測定条件 スループット
WireGuard 経由(Wi-Fi 時) 約 16 Mbps
WireGuard 経由(有線 LAN 後) 84.9 / 85.1 Mbps

5倍以上に改善。Pi Zero 2W の CPU 使用率も余裕があり、帯域が広がっても CPU がボトルネックになる気配はなかった。

注意点:microUSB アダプターの選び方

Pi Zero 2W の OTG ポートに挿せる LAN アダプターは「microUSB オス → RJ45」タイプ。

チップ Pi OS での動作
RTL8152 / RTL8153 ドライバー標準搭載、挿すだけで OK
AX88772 系 Android 向けドライバーが主流、Pi では認識しないことがある

購入前にチップ型番を確認するか、レビューに「Raspberry Pi で動いた」とある商品を選ぶのが確実。

まとめ

  • Pi Zero 2W の Wi-Fi(2.4GHz)は WireGuard サーバとしてスループットのボトルネックになる
  • RTL8152 チップの microUSB LAN アダプターを挿すだけで有線化できる
  • PostUp の MASQUERADE に eth0 を追加する
  • IP フォワーディングは /etc/sysctl.d/90-ip-forward.conf に書いて永続化する
1
1
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
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?