Docker Desktop で WireGuard を動かすと MTU が大きくなりすぎる —— 実測と直し方

入れ子のコンテナを通った通信パケットが細いトンネルへ進むイラスト

Docker Desktop の中で wg-quick を使って起動した WireGuard は、Endpoint へ向かう経路を基準にして、実際の通り道より大きな MTU を wg0 に設定することがあります。コンテナ内で eth0 と wg0 の MTU を確かめ、WireGuard の [Interface] に MTU = 1420 を明示すると修正できます。

何が起きるか

2026 年 9 月 27 日に Mac の Docker Desktop で測ったところ、コンテナの eth0 の MTU は 65535 でした。

WireGuard の設定に MTU を書かず、wg-quick で起動すると、wg0 の MTU は 65455 になりました。wg-quick が Endpoint へ向かう経路の MTU(ここでは eth0 の 65535)から 80 を引いた値を自動的に設定したためです。

同じ設定を Linux 上で直接動かした場合と、Windows の Docker Desktop で動かした場合には、wg0 の MTU は 1420 でした。

環境 eth0 の MTU wg0 の MTU
Mac の Docker Desktop 65535 65455
Windows の Docker Desktop 1500 1420
Linux 上で直接実行 (未記録) 1420
Mac で MTU = 1420 を明示した後 65535 1420

なぜ MTU が大きくなるか

MTU は、1 回で送れるパケットの大きさの上限です。

Mac の Docker Desktop では、コンテナの eth0 に 65535 という MTU が設定されていました。WireGuard の設定で MTU を省略して wg-quick で起動すると、Endpoint へ向かう経路の MTU が基準となり、実測では wg0 の MTU が 65455 になりました。

一方、実際のインターネット側の通り道では、MTU は多くの場合 1500 前後です。wg0 の MTU が実際の通り道より大きいと、大きなパケットが途中で分割されたり、届かなかったりする可能性があります。

Mac の Docker Desktop で WireGuard の MTU を省略した場合と明示した場合の比較 上段では、アプリから MTU 65455 の wg0、MTU 65535 の eth0 を通り、MTU 約 1500 の実際の通り道へ進む。下段では、wg0 の MTU を 1420 に明示している。 MTU を省略した場合 アプリ wg0 MTU 65455 eth0 MTU 65535 実際の通り道 MTU 約 1500 通り道より大きい MTU = 1420 を明示した場合 アプリ wg0 MTU 1420 eth0 MTU 65535 実際の通り道 MTU 約 1500 通り道に収まる値
Mac の Docker Desktop では、MTU を省略した wg0 が実際の通り道より大きくなりました。MTU = 1420 を明示すると、wg0 は 1420 になります。

確かめ方

コンテナの中で、次のファイルを確認します。

cat /sys/class/net/eth0/mtu
cat /sys/class/net/wg0/mtu

1 行目でコンテナのネットワークの口である eth0、2 行目で WireGuard の口である wg0 の MTU を確認できます。

Mac の Docker Desktop で WireGuard の MTU を省略している場合は、実測と同じ 65535 と 65455 になっているかを確認します。環境によって値が異なる可能性があるため、設定を変更する前に現在の値を記録しておきます。

直し方

WireGuard の設定の [Interface] に、次の 1 行を追加します。

[Interface]
MTU = 1420

鍵やアドレスなど、ほかの設定行はここでは省略しています。

MTU を明示して起動した後、もう一度 wg0 の値を確認します。

cat /sys/class/net/wg0/mtu

Mac の Docker Desktop でも、明示した後の wg0 は 1420 になりました。

1420 は、MTU が 1500 の経路に対して wg-quick が選ぶ値です。回線によっては、PPPoE などで、さらに小さい値が必要になる場合があります。

測った環境

測定日は 2026 年 9 月 27 日です。

  • macOS: 2026 年 9 月時点の最新版
  • Mac の Docker Desktop: 2026 年 9 月時点の最新版
  • Windows: 2026 年 9 月時点の最新版
  • Windows の Docker Desktop: 2026 年 9 月時点の最新版

この記録は、HomeGrid VPN の Grid(家庭側に置く、インターネットへの出口になる機器)を Docker Desktop で動かせるかを確かめる中で取ったものです。