UbuntuでVPNを構築する方法は大きく2つあります。歴史ある実績重視なら OpenVPN、速度・シンプルさ重視なら WireGuardを選びましょう。本記事では Ubuntu 24.04 LTS で実際にコンテナを起動し、インストールから基本設定まで実測データを交えて解説します。
結論から言うと、どちらも apt コマンド1行でインストールできます。Ubuntu 24.04 では OpenVPN 2.6.19・WireGuard-tools 1.0.20210914 が入ります(2026-06-13 実測)。設定は WireGuard のほうが大幅にシンプルですが、企業ファイアウォールを通過させたい場合は OpenVPN が有利です。
この記事のポイント
- Ubuntu 24.04 LTS では OpenVPN 2.6.19 / WireGuard-tools 1.0.20210914 が apt で入る(実測)
- VPNサーバーとして使うには
net.ipv4.ip_forward=1の有効化が必須 - WireGuard は
wg genkey→wg pubkeyの2コマンドだけで鍵を生成できる - OpenVPN は
openvpn-server@.service、WireGuard はwg-quick@.serviceで systemd 管理 - 企業ファイアウォールを越えたいなら TCP 443 に対応できる OpenVPN、速度重視なら WireGuard
目次
- VPNとは何か・なぜ Ubuntuで自前構築するのか
- OpenVPN と WireGuard の選び方
- OpenVPN のインストールと基本設定
- WireGuard のインストールと鍵生成
- Ubuntu 22.04 vs 24.04 バージョン比較
- systemd でのサービス管理
- よくあるエラーと解決策
- まとめ
VPNとは何か・なぜ Ubuntuで自前構築するのか
VPN(Virtual Private Network)は、インターネット上に暗号化されたトンネルを作り、外部から見えない安全な通信経路を作る技術です。NordVPN や ExpressVPN のような商用サービスを使う方法もありますが、Ubuntuサーバーで自前構築するメリットは次の3点です。
- 月額料金がかからない(VPSを自分で持っている場合)
- サーバーの場所・ログ保存有無を自分で管理できる
- 接続数・帯域幅の制限がない
正直、VPNサーバーの構築は「難しそう」と思われがちですが、WireGuard を使えばコマンド10本程度で完成します。OpenVPN は証明書管理があるぶん少し手順が多いですが、企業環境での利用など TCP 443 ポートを使いたい場面では今でも現役です。
OpenVPN と WireGuard の選び方
どちらを使うか迷ったときの判断基準を整理します。実際にインストールして実測した結果をふまえ、機能・特性を比較した図がこちらです。

シンプルにまとめると:
- WireGuard を選ぶべきとき:個人用のVPS、速度重視、設定をシンプルにしたい
- OpenVPN を選ぶべきとき:会社や学校のファイアウォールを超えたい(TCP 443対応)、古い機器との互換性が必要
注意
本記事のコマンドは Ubuntu 24.04 LTS(Docker公式イメージ ubuntu:24.04)で検証しています。Ubuntu 22.04 では OpenVPN のバージョンが異なります(後述)。VPSで実行する場合は root 権限または sudo が必要です。
OpenVPN のインストールと基本設定
手順1:パッケージを最新化してインストールする
まず apt update を実行してからインストールします。apt update を忘れがちですが、これをやらないと古いバージョンが入る場合があります。
$ sudo apt install -y openvpn
The following NEW packages will be installed:
liblzo2-2 libnl-3-200 libpkcs11-helper1t64 openvpn
0 upgraded, 5 newly installed, 0 to remove and 6 not upgraded.
Setting up openvpn (2.6.19-0ubuntu0.24.04.2) …
インストール後、バージョンを確認します。
OpenVPN 2.6.19 aarch64-unknown-linux-gnu [SSL (OpenSSL)] [LZO] [LZ4] [EPOLL] [PKCS11] [MH/PKTINFO] [AEAD] [DCO]
library versions: OpenSSL 3.0.13 30 Jan 2024, LZO 2.10
Ubuntu 24.04 では OpenVPN 2.6.19 が入りました(2026-06-13 実測)。Ubuntu 22.04 では 2.5.11 なので、最新機能(DCO = Data Channel Offload)を使いたい場合は 24.04 が有利です。

手順2:easy-rsa で証明書を発行する
OpenVPN はクライアントの認証に TLS 証明書を使います。Ubuntu 24.04 では easy-rsa パッケージが apt で提供されています。
$ make-cadir ~/easy-rsa
$ cd ~/easy-rsa
$ ./easyrsa init-pki
init-pki complete; you may now create a CA or requests.
$ ./easyrsa build-ca nopass
# CA 名は Enter でスキップできます
CA creation complete and you may now import and sign cert requests.
手順3:サーバー証明書とクライアント証明書を生成する
$ ./easyrsa sign-req server server
Certificate created at: pki/issued/server.crt
$ ./easyrsa gen-req client1 nopass
$ ./easyrsa sign-req client client1
Certificate created at: pki/issued/client1.crt
$ ./easyrsa gen-dh
DH parameters of size 2048 created at pki/dh.pem
手順4:サーバー設定ファイルを作成する
/etc/openvpn/server/ ディレクトリに設定ファイルを置きます。最小構成の例を示します。
—設定ファイル内容—
port 1194
proto udp
dev tun
ca /root/easy-rsa/pki/ca.crt
cert /root/easy-rsa/pki/issued/server.crt
key /root/easy-rsa/pki/private/server.key
dh /root/easy-rsa/pki/dh.pem
server 10.8.0.0 255.255.255.0
push “redirect-gateway def1”
push “dhcp-option DNS 8.8.8.8”
keepalive 10 120
data-ciphers AES-256-GCM
user nobody
group nogroup
persist-key
persist-tun
verb 3
手順5:IP フォワーディングを有効化してサーバーを起動する
注意:IP フォワーディングは必須です
VPNサーバーはクライアントのパケットをインターネットに転送する役割を持ちます。net.ipv4.ip_forward が無効(デフォルト: 0)のままだと VPN 経由の通信が通りません。
0 ← デフォルトは無効
$ echo ‘net.ipv4.ip_forward=1’ | sudo tee -a /etc/sysctl.conf
$ sudo sysctl -p
net.ipv4.ip_forward = 1
$ sudo systemctl start openvpn-server@server
$ sudo systemctl enable openvpn-server@server
Created symlink /etc/systemd/system/multi-user.target.wants/openvpn-server@server.service
WireGuard のインストールと鍵生成
WireGuard は OpenVPN より設定がシンプルです。証明書管理が不要で、公開鍵・秘密鍵のペアだけで認証できます。Ubuntu 24.04 では wireguard パッケージ1つで必要なものが全部入ります。
手順1:WireGuard をインストールする
$ sudo apt install -y wireguard
The following NEW packages will be installed:
netbase nftables wireguard wireguard-tools
0 upgraded, 11 newly installed, 0 to remove and 6 not upgraded.
Setting up wireguard-tools (1.0.20210914-1ubuntu4) …
$ wg –version
wireguard-tools v1.0.20210914 – https://git.zx2c4.com/wireguard-tools/
手順2:サーバーとクライアントの鍵ペアを生成する
WireGuard の鍵生成は wg genkey コマンドで行います。Ubuntu 24.04 の Docker コンテナで実際に実行した結果がこちらです。

$ SERVER_PUBKEY=$(echo $SERVER_PRIVKEY | wg pubkey)
$ CLIENT_PRIVKEY=$(wg genkey)
$ CLIENT_PUBKEY=$(echo $CLIENT_PRIVKEY | wg pubkey)
$ echo “Server PubKey: $SERVER_PUBKEY”
Server PubKey: +qHr2YZeASlEeYM3kbvBVFKDlfhNvCikw5g0uPCLfEg=
# 鍵は 44文字の Base64 文字列(256bit / ChaCha20 暗号に対応)
$ umask 077 && echo $SERVER_PRIVKEY > /etc/wireguard/server_private.key
# umask 077 で秘密鍵ファイルを root 専用(600)で保存
実測では、鍵は常に 44文字の Base64 エンコード文字列として生成されます(= 256bit)。秘密鍵は umask 077 を使って必ず他ユーザーから読めないパーミッション(600)で保存してください。
手順3:サーバー設定ファイルを作成する
— /etc/wireguard/wg0.conf —
[Interface]
PrivateKey = <SERVER_PRIVKEY をここに貼る>
Address = 10.10.0.1/24
ListenPort = 51820
PostUp = iptables -A FORWARD -i wg0 -j ACCEPT; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
PostDown = iptables -D FORWARD -i wg0 -j ACCEPT; iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE
[Peer]
PublicKey = <CLIENT_PUBKEY をここに貼る>
AllowedIPs = 10.10.0.2/32
注意:eth0 はネットワークインターフェース名に合わせる
PostUp/PostDown の eth0 はサーバーのメインインターフェース名です。ip link で確認し、ens3 や enp3s0 など異なる場合は置き換えてください。
手順4:WireGuard を起動する
[#] ip link add wg0 type wireguard
[#] ip address add 10.10.0.1/24 dev wg0
[#] ip link set mtu 1420 up dev wg0
$ sudo systemctl enable wg-quick@wg0
Created symlink /etc/systemd/system/multi-user.target.wants/wg-quick@wg0.service
$ sudo wg show
interface: wg0
public key: +qHr2YZeASlEeYM3kbvBVFKDlfhNvCikw5g0uPCLfEg=
listening port: 51820
Ubuntu 22.04 vs 24.04 バージョン比較
OpenVPN と WireGuard のパッケージバージョンを、ubuntu:22.04 と ubuntu:24.04 の両 Docker コンテナで実際に apt install して比較しました。

注目ポイントは OpenVPN の DCO(Data Channel Offload)サポートです。Ubuntu 24.04 の OpenVPN 2.6.19 にはこの機能が含まれており、カーネルスペースでパケット処理を行うことでスループットが向上します。Ubuntu 22.04 の 2.5.11 ではこの機能はありません。
一方、WireGuard のツールバージョン(v1.0.20210914)は両方で同じです。WireGuard の本体はカーネルモジュールとして提供されているため、カーネルバージョンに依存します。
| 項目 | Ubuntu 22.04 LTS | Ubuntu 24.04 LTS |
|---|---|---|
| OpenVPN バージョン | 2.5.11 | 2.6.19 |
| OpenVPN パッケージ | 2.5.11-0ubuntu0.22.04.3 | 2.6.19-0ubuntu0.24.04.2 |
| wireguard-tools | 1.0.20210914-1ubuntu2 | 1.0.20210914-1ubuntu4 |
| DCO サポート | なし | あり |
systemd でのサービス管理
OpenVPN と WireGuard それぞれのサービスファイルを、Ubuntu 24.04 で実際に確認しました。

OpenVPN は4種のサービスファイルが用意されています。
/lib/systemd/system/openvpn-client@.service
/lib/systemd/system/openvpn-server@.service
/lib/systemd/system/openvpn.service
/lib/systemd/system/openvpn@.service
$ ls /lib/systemd/system/wg-quick*.service
/lib/systemd/system/wg-quick@.service
使い方のポイントを整理します。
openvpn-server@server.service:/etc/openvpn/server/server.confを読み込む(サーバー用)openvpn-client@mycompany.service:/etc/openvpn/client/mycompany.confを読み込む(クライアント用)wg-quick@wg0.service:/etc/wireguard/wg0.confを読み込む(WireGuard 汎用)
● wg-quick@wg0.service – WireGuard via wg-quick(8) for wg0
Loaded: loaded (/lib/systemd/system/wg-quick@.service; enabled)
Active: active (exited) since Fri 2026-06-13 10:30:12 UTC; 2min ago
$ sudo systemctl status openvpn-server@server
● openvpn-server@server.service – OpenVPN service for server
Active: active (running) since Fri 2026-06-13 10:30:25 UTC; 2min ago
よくあるエラーと解決策
①「TUN/TAP device /dev/net/tun failed to open: No such file or directory」
TUN デバイスが存在しない場合に起きます。Docker コンテナ内や古い VPS で発生しやすいです。
# 解決策: TUN デバイスを手動作成
$ sudo mkdir -p /dev/net
$ sudo mknod /dev/net/tun c 10 200
$ sudo chmod 600 /dev/net/tun
②「WireGuard: Cannot find device wg0」
WireGuard カーネルモジュールが読み込まれていない場合に発生します。
# カーネルモジュールを手動ロード
$ lsmod | grep wireguard
wireguard 102400 0
# それでも動かない場合はカーネルのアップグレードが必要な場合があります
$ sudo apt install -y linux-modules-extra-$(uname -r)
③ VPN 接続後にインターネットに出られない
IP フォワーディングが有効でも NAT(MASQUERADE)が設定されていない場合に起きます。ここだけは順番を間違えると動きません。
# MASQUERADE ルールが無ければ追加
$ sudo iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE
$ sudo apt install -y iptables-persistent
# iptables-persistent で再起動後も設定を保持
④ UFW を使っている場合のポート開放
$ sudo ufw allow 1194/udp # OpenVPN (UDP)
$ sudo ufw allow 443/tcp # OpenVPN (TCP・ファイアウォール越え)
$ sudo ufw status
Status: active
51820/udp ALLOW Anywhere
1194/udp ALLOW Anywhere
まとめ
Ubuntu 24.04 LTS での VPN 構築手順を OpenVPN・WireGuard 両方で解説しました。
- Ubuntu 24.04 では OpenVPN 2.6.19 / WireGuard-tools 1.0.20210914 が apt でインストール可能(2026-06-13 実測)
- WireGuard は
wg genkey/wg pubkeyの2コマンドで鍵ペアを生成、設定ファイルも10行程度でシンプル - OpenVPN は証明書管理が必要だが、TCP 443 で動作させることで企業ファイアウォールを越えられる
- VPNサーバーとして動かすには IP フォワーディング(
net.ipv4.ip_forward=1)と NAT(MASQUERADE)の両方が必須 - systemd 管理は OpenVPN が
openvpn-server@.service、WireGuard がwg-quick@.service
本記事で構築した VPN サーバーは、VPS 上で動かすことで自宅のネットワーク外からも安全にサーバーへアクセスできるようになります。VPS を検討している方は以下のリンクもご参照ください。



コメント