
DockerベースのIPsec VPNサーバー。IPsec/L2TP、Cisco IPsec、IKEv2に対応し、自動認証情報の生成とマルチプラットフォームのクライアント設定を備えています。
[English](https://gitlab.com/hwdsl2/docker-ipsec-vpn-server/-/blob/master/README.md) | [简体中文](https://gitlab.com/hwdsl2/docker-ipsec-vpn-server/-/blob/master/README-zh.md) | [繁體中文](https://gitlab.com/hwdsl2/docker-ipsec-vpn-server/-/blob/master/README-zh-Hant.md) | [Русский](https://gitlab.com/hwdsl2/docker-ipsec-vpn-server/-/blob/master/README-ru.md)
# Docker 上の IPsec VPN サーバー
[](https://github.com/hwdsl2/docker-ipsec-vpn-server/actions/workflows/main-alpine.yml) [](https://github.com/hwdsl2/docker-ipsec-vpn-server/stargazers) [](https://hub.docker.com/r/hwdsl2/ipsec-vpn-server/) [](https://hub.docker.com/r/hwdsl2/ipsec-vpn-server/)
IPsec/L2TP、Cisco IPsec、IKEv2 に対応した IPsec VPN サーバーを実行するための Docker イメージです。
Alpine 3.23 または Debian 12 をベースに、[Libreswan](https://libreswan.org)(IPsec VPN ソフトウェア)と [xl2tpd](https://github.com/xelerance/xl2tpd)(L2TP デーモン)を搭載しています。
IPsec VPN はネットワークトラフィックを暗号化するため、あなたと VPN サーバーの間の誰も、インターネット経由で移動するデータを盗聴することができません。これは、カフェ、空港、ホテルの部屋など、安全でないネットワークを使用する場合に特に役立ちます。
**機能:**
- 初回起動時に VPN 認証情報と IKEv2 設定を自動生成
- 強力で高速な暗号(例: AES-GCM)を使用した IKEv2 をサポート
- iOS、macOS、Android デバイスを自動設定する VPN プロファイルを生成
- Windows、macOS、iOS、Android、Chrome OS、Linux を VPN クライアントとしてサポート
- IKEv2 ユーザーと証明書を管理するヘルパースクリプトを同梱
- [GitHub Actions](https://github.com/hwdsl2/docker-ipsec-vpn-server/actions) による自動ビルドと公開
- Docker ボリュームによるデータの永続化
- マルチアーキテクチャ: `linux/amd64`、`linux/arm64`、`linux/arm/v7`
**その他にも利用可能:**
- VPN: [Docker なしの IPsec](https://github.com/hwdsl2/setup-ipsec-vpn)、[WireGuard](https://github.com/hwdsl2/docker-wireguard)、[OpenVPN](https://github.com/hwdsl2/docker-openvpn)、[Headscale](https://github.com/hwdsl2/docker-headscale)
- AI: ローカル LLM、チャット、RAG、音声、AI ツール向けの[セルフホスト AI スタック](https://github.com/hwdsl2/self-hosted-ai-stack)
> 📘 セルフホスト AI に興味がありますか? [The Self-Hosted AI Builder’s Guide](https://books2read.com/aiguide?store=amazon) は、独自のプライベート AI スタックを構築、保護、運用するための実践的なガイドです。
## クイックスタート
このコマンドを使用して、Docker 上に IPsec VPN サーバーをセットアップします:
```bash
docker run \
--name ipsec-vpn-server \
--restart=always \
-v ikev2-vpn-data:/etc/ipsec.d \
-v /lib/modules:/lib/modules:ro \
-p 500:500/udp \
-p 4500:4500/udp \
-d --privileged \
hwdsl2/ipsec-vpn-server
```
VPN ログイン情報はランダムに生成されます。[VPN ログイン情報の取得](#retrieve-vpn-login-details)を参照してください。
または、[Docker を使わずに IPsec VPN をセットアップする](https://github.com/hwdsl2/setup-ipsec-vpn)こともできます。このイメージの使用方法の詳細については、以下のセクションをお読みください。
## コミュニティ
- 📬 [プロジェクトの更新情報と無料のデプロイガイドを入手](https://selfhostedstack.beehiiv.com/subscribe?utm_campaign=vpn)(月1〜2通のメール)
- 💬 ディスカッション用の [r/selfhostedstack](https://www.reddit.com/r/selfhostedstack/) コミュニティに参加
- ⭐ 役に立ったらリポジトリにスターを付けてください — 他の人が見つけやすくなります
## 要件
- パブリック IP アドレスまたは DNS 名を持つ Linux サーバー
- Docker がインストールされていること
- ファイアウォールで VPN ポートが開放されていること(UDP 500 および 4500)
- `docker` のエイリアスを作成した上で、[Podman](https://docs.podman.io) を使用してこのイメージを実行することもできます
**注意:** 上級ユーザーは、[Docker for Mac](https://docs.docker.com/desktop/setup/install/mac-install/) を使用して macOS 上でこのイメージを利用できます。IPsec/L2TP モードを使用する前に、`docker restart ipsec-vpn-server` でコンテナを一度再起動する必要がある場合があります。このイメージは Docker for Windows をサポートしていません。
## ダウンロード
[Docker Hub レジストリ](https://hub.docker.com/r/hwdsl2/ipsec-vpn-server/)から信頼されたビルドを取得します:
```bash
docker pull hwdsl2/ipsec-vpn-server
```
または、[Quay.io](https://quay.io/repository/hwdsl2/ipsec-vpn-server) からダウンロードすることもできます:
```bash
docker pull quay.io/hwdsl2/ipsec-vpn-server
docker image tag quay.io/hwdsl2/ipsec-vpn-server hwdsl2/ipsec-vpn-server
```
対応プラットフォーム: `linux/amd64`、`linux/arm64`、`linux/arm/v7`。
上級ユーザーは GitHub 上で[ソースコードからビルド](https://gitlab.com/hwdsl2/docker-ipsec-vpn-server/-/blob/master/docs/advanced-usage.md#build-from-source-code)できます。
### イメージの比較
2つのビルド済みイメージが利用可能です。デフォルトの Alpine ベースのイメージはわずか約 19 MB です。
| | Alpine ベース | Debian ベース |
| ----------------- | ------------------------ | ------------------------------ |
| イメージ名 | hwdsl2/ipsec-vpn-server | hwdsl2/ipsec-vpn-server:debian |
| 圧縮サイズ | 約 19 MB | 約 62 MB |
| ベースイメージ | Alpine Linux 3.23 | Debian Linux 12 |
| プラットフォーム | amd64, arm64, arm/v7 | amd64, arm64, arm/v7 |
| Libreswan バージョン | 5.4.1 | 5.4.1 |
| IPsec/L2TP | ✅ | ✅ |
| Cisco IPsec | ✅ | ✅ |
| IKEv2 | ✅ | ✅ |
**注:** Debian ベースのイメージを使用するには、この README 内のすべての `hwdsl2/ipsec-vpn-server` を `hwdsl2/ipsec-vpn-server:debian` に置き換えてください。これらのイメージは現在、Synology NAS システムとは互換性がありません。
<details>
<summary>
古い Libreswan バージョン 4 を使用したい。
</summary>
一般的には、このプロジェクトのデフォルトバージョンである最新の [Libreswan](https://libreswan.org/) バージョン 5 の使用を推奨します。ただし、古い Libreswan バージョン 4 を使用したい場合は、ソースコードから Docker イメージをビルドできます:
```bash
git clone https://github.com/hwdsl2/docker-ipsec-vpn-server
cd docker-ipsec-vpn-server
# Specify Libreswan version 4
sed -i 's/SWAN_VER=5\..*/SWAN_VER=4.15/' Dockerfile Dockerfile.debian
# To build Alpine-based image
docker build -t hwdsl2/ipsec-vpn-server .
# To build Debian-based image
docker build -f Dockerfile.debian -t hwdsl2/ipsec-vpn-server:debian .
```
</details>
## このイメージの使用方法
### 環境変数
**注:** このイメージのすべての変数はオプションです。つまり、変数を何も入力する必要はなく、すぐに使える IPsec VPN サーバーを構築できます!そのためには、`touch vpn.env` で空の `env` ファイルを作成し、次のセクションに進んでください。
この Docker イメージは以下の変数を使用しており、`env` ファイルで宣言できます([例](https://gitlab.com/hwdsl2/docker-ipsec-vpn-server/-/blob/master/vpn.env.example)を参照):
```
VPN_IPSEC_PSK=your_ipsec_pre_shared_key
VPN_USER=your_vpn_username
VPN_PASSWORD=your_vpn_password
```
これにより、VPN ログイン用のユーザーアカウントが作成され、複数のデバイスで使用できます[\*](#important-notes)。IPsec PSK(事前共有キー)は `VPN_IPSEC_PSK` 環境変数で指定します。VPN ユーザー名は `VPN_USER` で定義され、VPN パスワードは `VPN_PASSWORD` で指定します。
追加の VPN ユーザーもサポートされており、次のように `env` ファイルで任意に宣言できます。ユーザー名とパスワードはスペースで区切る必要があり、ユーザー名に重複を含めることはできません。すべての VPN ユーザーは同じ IPsec PSK を共有します。
```
VPN_ADDL_USERS=additional_username_1 additional_username_2
VPN_ADDL_PASSWORDS=additional_password_1 additional_password_2
```
上記の変数は、IPsec/L2TP および IPsec/XAuth(「Cisco IPsec」)モード専用です。IKEv2 については、[IKEv2 VPN の設定と使用](#configure-and-use-ikev2-vpn)を参照してください。
> [!IMPORTANT]
> `env` ファイルでは、値を引用符や `=` の前後のスペースなしで記述してください。値には `\`、`"`、`'` を含めることはできません。安全な IPsec PSK は、少なくとも 20 文字のランダムな文字で構成する必要があります。
**注:** Docker コンテナがすでに作成された後に `env` ファイルを変更した場合、変更を反映するにはコンテナを削除して再作成する必要があります。[Docker イメージの更新](#update-docker-image)を参照してください。
### 追加の環境変数
上級ユーザーは、オプションで DNS 名、クライアント名、および/またはカスタム DNS サーバーを指定できます。
<details>
<summary>
DNS 名、クライアント名、および/またはカスタム DNS サーバーを指定する方法を学ぶ。
</summary>
上級ユーザーは、オプションで IKEv2 サーバーアドレスの DNS 名を指定できます。DNS 名は完全修飾ドメイン名(FQDN)である必要があります。例:
```
VPN_DNS_NAME=vpn.example.com
```
最初のIKEv2クライアントの名前を指定できます。1単語のみを使用し、`-` と `_` 以外の特殊文字は使用しないでください。指定しない場合のデフォルトは `vpnclient` です。
```
VPN_CLIENT_NAME=your_client_name
```
デフォルトでは、VPN が有効な場合、クライアントは [Google Public DNS](https://developers.google.com/speed/public-dns/) を使用するように設定されています。すべての VPN モードに対してカスタム DNS サーバーを指定できます。例:
```
VPN_DNS_SRV1=1.1.1.1
VPN_DNS_SRV2=1.0.0.1
```
詳細と、いくつかの一般的なパブリック DNS プロバイダーのリストについては、[代替 DNS サーバーの使用](https://gitlab.com/hwdsl2/docker-ipsec-vpn-server/-/blob/master/docs/advanced-usage.md)を参照してください。
デフォルトでは、IKEv2 クライアント構成をインポートするときにパスワードは必要ありません。ランダムなパスワードを使用してクライアント構成ファイルを保護することを選択できます。
```
VPN_PROTECT_CONFIG=yes
```
**注意:** 上記の変数は、Docker コンテナで IKEv2 がすでに設定されている場合、IKEv2 モードでは効果がありません。この場合は、IKEv2 を削除し、カスタムオプションを使用して再度設定することができます。[Configure and use IKEv2 VPN](#configure-and-use-ikev2-vpn) を参照してください。
</details>
### IPsec VPN サーバーを起動する
このイメージから新しい Docker コンテナを作成します(`./vpn.env` を自分の `env` ファイルに置き換えてください):
```bash
docker run \
--name ipsec-vpn-server \
--env-file ./vpn.env \
--restart=always \
-v ikev2-vpn-data:/etc/ipsec.d \
-v /lib/modules:/lib/modules:ro \
-p 500:500/udp \
-p 4500:4500/udp \
-d --privileged \
hwdsl2/ipsec-vpn-server
```
このコマンドでは、`docker run` の `-v` オプションを使用して `ikev2-vpn-data` という名前の新しい [Docker ボリューム](https://docs.docker.com/storage/volumes/) を作成し、コンテナ内の `/etc/ipsec.d` にマウントします。証明書や鍵などの IKEv2 関連データはボリューム内に永続化され、後で Docker コンテナを再作成する必要がある場合は、同じボリュームを再度指定するだけです。
このイメージを使用する際は、IKEv2 を有効にすることを推奨します。ただし、IKEv2 を有効にせず、IPsec/L2TP および IPsec/XAuth(「Cisco IPsec」)モードのみを使用して VPN に接続する場合は、上記の `docker run` コマンドから最初の `-v` オプションを削除してください。
**注:** 上級ユーザーは [特権モードなしで実行する](https://gitlab.com/hwdsl2/docker-ipsec-vpn-server/-/blob/master/docs/advanced-usage.md#run-without-privileged-mode) こともできます。
### VPN ログイン情報の取得
上記の `docker run` コマンドで `env` ファイルを指定しなかった場合、`VPN_USER` はデフォルトで `vpnuser` になり、`VPN_IPSEC_PSK` と `VPN_PASSWORD` はどちらもランダムに生成されます。それらを取得するには、コンテナログを表示します:
```bash
docker logs ipsec-vpn-server
```
出力内でこれらの行を検索してください:
```
Connect to your new VPN with these details:
Server IP: your_vpn_server_ip
IPsec PSK: your_ipsec_pre_shared_key
Username: your_vpn_username
Password: your_vpn_password
```
IKEv2 モードが有効な場合、出力にはその詳細も含まれます。
(オプション) 生成された VPN ログイン情報 (存在する場合) をカレントディレクトリにバックアップします:
```bash
docker cp ipsec-vpn-server:/etc/ipsec.d/vpn-gen.env ./
```
## docker-compose の使用
```bash
cp vpn.env.example vpn.env
# Edit vpn.env if needed, then:
docker compose up -d
docker logs ipsec-vpn-server
```
`docker-compose.yml` の例(すでに含まれています):
```yaml
volumes:
ikev2-vpn-data:
services:
vpn:
image: hwdsl2/ipsec-vpn-server
restart: always
env_file:
- ./vpn.env
ports:
- "500:500/udp"
- "4500:4500/udp"
privileged: true
hostname: ipsec-vpn-server
container_name: ipsec-vpn-server
volumes:
- ikev2-vpn-data:/etc/ipsec.d
- /lib/modules:/lib/modules:ro
```
## 次のステップ
*他の言語で読む: [English](https://gitlab.com/hwdsl2/docker-ipsec-vpn-server/-/blob/master/README.md#next-steps), [简体中文](https://gitlab.com/hwdsl2/docker-ipsec-vpn-server/-/blob/master/README-zh.md#下一步), [繁體中文](https://gitlab.com/hwdsl2/docker-ipsec-vpn-server/-/blob/master/README-zh-Hant.md#下一步), [Русский](https://gitlab.com/hwdsl2/docker-ipsec-vpn-server/-/blob/master/README-ru.md#следующие-шаги).*
コンピュータまたはデバイスで VPN を使用します。以下を参照してください:
**[IKEv2 VPN の設定と使用 (推奨)](#configure-and-use-ikev2-vpn)**
**[IPsec/L2TP VPN クライアントの設定](https://github.com/hwdsl2/setup-ipsec-vpn/blob/master/docs/clients.md)**
**[IPsec/XAuth ("Cisco IPsec") VPN クライアントの設定](https://github.com/hwdsl2/setup-ipsec-vpn/blob/master/docs/clients-xauth.md)**
**[📘 VPN book](https://gitlab.com/hwdsl2/docker-ipsec-vpn-server/-/blob/master/docs/vpn-book.md) を読んで [追加コンテンツ](https://ko-fi.com/post/Support-this-project-and-get-access-to-supporter-o-O5O7FVF8J) にアクセスしてください。**
あなた自身の VPN をお楽しみください! :sparkles::tada::rocket::sparkles:
## 重要な注意事項
**Windows ユーザー**: IPsec/L2TP モードでは、VPN サーバーまたはクライアントが NAT (例: 家庭用ルーター) の背後にある場合、[1 回限りのレジストリ変更](https://github.com/hwdsl2/setup-ipsec-vpn/blob/master/docs/clients.md#windows-error-809) が必要です。
同じ VPN アカウントを複数のデバイスで使用できます。ただし、IPsec/L2TP の制限により、同じ NAT (例: 家庭用ルーター) の背後から複数のデバイスを接続する場合は、[IKEv2](#configure-and-use-ikev2-vpn) または [IPsec/XAuth](https://github.com/hwdsl2/setup-ipsec-vpn/blob/master/docs/clients-xauth.md) モードを使用する必要があります。
VPN ユーザーアカウントを追加、編集、または削除する場合は、まず `env` ファイルを更新し、その後 [次のセクション](#update-docker-image) の手順に従って Docker コンテナを削除して再作成する必要があります。上級ユーザーは `env` ファイルを [バインドマウント](https://gitlab.com/hwdsl2/docker-ipsec-vpn-server/-/blob/master/docs/advanced-usage.md#bind-mount-the-env-file) できます。
外部ファイアウォールを備えたサーバー (例: [EC2](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-security-groups.html)/[GCE](https://cloud.google.com/vpc/docs/firewalls)) では、VPN 用に UDP ポート 500 と 4500 を開放してください。Aliyun ユーザーは [#433](https://github.com/hwdsl2/setup-ipsec-vpn/issues/433) を参照してください。
クライアントは VPN がアクティブなときに [Google Public DNS](https://developers.google.com/speed/public-dns/) を使用するように設定されています。別の DNS プロバイダーを希望する場合は、[このセクション](https://gitlab.com/hwdsl2/docker-ipsec-vpn-server/-/blob/master/docs/advanced-usage.md#use-alternative-dns-servers) をお読みください。
## Docker イメージの更新
Docker イメージとコンテナを更新するには、まず最新バージョンを [ダウンロード](#download) してください:
```bash
docker pull hwdsl2/ipsec-vpn-server
```
Dockerイメージがすでに最新である場合、次のように表示されます:
```
Status: Image is up to date for hwdsl2/ipsec-vpn-server:latest
```
それ以外の場合は、最新バージョンをダウンロードします。Docker コンテナを更新するには、まず [VPN ログイン情報](#retrieve-vpn-login-details)を確認してください。次に、`docker rm -f ipsec-vpn-server` で Docker コンテナを削除します。最後に、[このイメージの使用方法](#how-to-use-this-image)の手順に従って再作成します。
## IKEv2 VPN の設定と使用
IKEv2 モードには IPsec/L2TP および IPsec/XAuth(「Cisco IPsec」)に対する改善点があり、IPsec PSK、ユーザー名、パスワードは不要です。詳細は[こちら](https://github.com/hwdsl2/setup-ipsec-vpn/blob/master/docs/ikev2-howto.md)をお読みください。
まず、コンテナログを確認して IKEv2 の詳細を表示します:
```bash
docker logs ipsec-vpn-server
```
**注意:** IKEv2 の詳細が見つからない場合、コンテナ内で IKEv2 が有効になっていない可能性があります。[Docker イメージの更新](#update-docker-image)セクションの手順を使用して、Docker イメージとコンテナを更新してみてください。
IKEv2 のセットアップ中に、IKEv2 クライアント(デフォルト名 `vpnclient`)が作成され、その設定は**コンテナ内**の `/etc/ipsec.d` にエクスポートされます。設定ファイルを Docker ホストにコピーするには:
```bash
# Check contents of /etc/ipsec.d in the container
docker exec -it ipsec-vpn-server ls -l /etc/ipsec.d
# Example: Copy a client config file from the container
# to the current directory on the Docker host
docker cp ipsec-vpn-server:/etc/ipsec.d/vpnclient.p12 ./
```
**次のステップ:** [デバイスを設定](https://github.com/hwdsl2/setup-ipsec-vpn/blob/master/docs/ikev2-howto.md)して IKEv2 VPN を使用します。
<details>
<summary>
IKEv2 クライアントの管理方法を学びます。
</summary>
ヘルパースクリプトを使用して IKEv2 クライアントを管理できます。以下の例を参照してください。クライアントオプションをカスタマイズするには、引数なしでスクリプトを実行します。
```bash
# Add a new client (using default options)
docker exec -it ipsec-vpn-server ikev2.sh --addclient [client name]
# Export configuration for an existing client
docker exec -it ipsec-vpn-server ikev2.sh --exportclient [client name]
# List existing clients
docker exec -it ipsec-vpn-server ikev2.sh --listclients
# Show usage
docker exec -it ipsec-vpn-server ikev2.sh -h
```
**注:** エラー「executable file not found」が発生した場合は、上記の `ikev2.sh` を `/opt/src/ikev2.sh` に置き換えてください。
</details>
<details>
<summary>
IKEv2 サーバーアドレスを変更する方法を学びます。
</summary>
特定の状況では、IKEv2 サーバーアドレスを変更する必要がある場合があります。たとえば、DNS 名を使用するように切り替える場合や、サーバー IP が変更された後などです。IKEv2 サーバーアドレスを変更するには、まず[コンテナ内で bash シェルを開き](https://gitlab.com/hwdsl2/docker-ipsec-vpn-server/-/blob/master/docs/advanced-usage.md#bash-shell-inside-container)、次に[これらの手順に従ってください](https://github.com/hwdsl2/setup-ipsec-vpn/blob/master/docs/ikev2-howto.md#change-ikev2-server-address)。Docker コンテナを再起動するまで、コンテナログに新しい IKEv2 サーバーアドレスが表示されないことに注意してください。
</details>
<details>
<summary>
IKEv2 を削除し、カスタムオプションを使用して再度セットアップします。
</summary>
特定の状況では、IKEv2 を削除し、カスタムオプションを使用して再度セットアップする必要がある場合があります。
**警告:** 証明書と鍵を含むすべての IKEv2 設定が**完全に削除されます**。これは**元に戻すことはできません**!
**オプション 1:** ヘルパースクリプトを使用して IKEv2 を削除し、再度セットアップします。
これは `env` ファイルで指定した変数 (たとえば `VPN_DNS_NAME` や `VPN_CLIENT_NAME`) を上書きし、コンテナログに IKEv2 の最新情報が表示されなくなることに注意してください。
```bash
# Remove IKEv2 and delete all IKEv2 configuration
docker exec -it ipsec-vpn-server ikev2.sh --removeikev2
# Set up IKEv2 again using custom options
docker exec -it ipsec-vpn-server ikev2.sh
```
**オプション 2:** `ikev2-vpn-data` を削除し、コンテナを再作成します。
1. [VPN ログイン情報](#retrieve-vpn-login-details)をすべて書き留めます。
1. Docker コンテナを削除します: `docker rm -f ipsec-vpn-server`。
1. `ikev2-vpn-data` ボリュームを削除します: `docker volume rm ikev2-vpn-data`。
1. `env` ファイルを更新し、`VPN_DNS_NAME` や `VPN_CLIENT_NAME` などのカスタム IKEv2 オプションを追加してから、コンテナを再作成します。[このイメージの使用方法](#how-to-use-this-image)を参照してください。
</details>
## 高度な使用方法
[高度な使用方法](https://gitlab.com/hwdsl2/docker-ipsec-vpn-server/-/blob/master/docs/advanced-usage.md)を参照してください。
- [代替 DNS サーバーを使用する](https://gitlab.com/hwdsl2/docker-ipsec-vpn-server/-/blob/master/docs/advanced-usage.md#use-alternative-dns-servers)
- [特権モードなしで実行する](https://gitlab.com/hwdsl2/docker-ipsec-vpn-server/-/blob/master/docs/advanced-usage.md#run-without-privileged-mode)
- [VPN モードを選択する](https://gitlab.com/hwdsl2/docker-ipsec-vpn-server/-/blob/master/docs/advanced-usage.md#select-vpn-modes)
- [IKEv2 完全転送秘密を有効にする](https://gitlab.com/hwdsl2/docker-ipsec-vpn-server/-/blob/master/docs/advanced-usage.md#enable-ikev2-perfect-forward-secrecy)
- [Docker ホスト上の他のコンテナにアクセスする](https://gitlab.com/hwdsl2/docker-ipsec-vpn-server/-/blob/master/docs/advanced-usage.md#access-other-containers-on-the-docker-host)
- [VPN サーバーのパブリック IP を指定する](https://gitlab.com/hwdsl2/docker-ipsec-vpn-server/-/blob/master/docs/advanced-usage.md#specify-vpn-servers-public-ip)
- [VPN クライアントに静的 IP を割り当てる](https://gitlab.com/hwdsl2/docker-ipsec-vpn-server/-/blob/master/docs/advanced-usage.md#assign-static-ips-to-vpn-clients)
- [VPN サブネットをカスタマイズする](https://gitlab.com/hwdsl2/docker-ipsec-vpn-server/-/blob/master/docs/advanced-usage.md#customize-vpn-subnets)
- [IPv6 サポート](https://gitlab.com/hwdsl2/docker-ipsec-vpn-server/-/blob/master/docs/advanced-usage.md#ipv6-support)
- [スプリットトンネリング](https://gitlab.com/hwdsl2/docker-ipsec-vpn-server/-/blob/master/docs/advanced-usage.md#split-tunneling)
- [ホストネットワークモードについて](https://gitlab.com/hwdsl2/docker-ipsec-vpn-server/-/blob/master/docs/advanced-usage.md#about-host-network-mode)
- [Libreswan ログを有効にする](https://gitlab.com/hwdsl2/docker-ipsec-vpn-server/-/blob/master/docs/advanced-usage.md#enable-libreswan-logs)
- [サーバーステータスを確認する](https://gitlab.com/hwdsl2/docker-ipsec-vpn-server/-/blob/master/docs/advanced-usage.md#check-server-status)
- [ソースコードからビルドする](https://gitlab.com/hwdsl2/docker-ipsec-vpn-server/-/blob/master/docs/advanced-usage.md#build-from-source-code)
- [コンテナ内の Bash シェル](https://gitlab.com/hwdsl2/docker-ipsec-vpn-server/-/blob/master/docs/advanced-usage.md#bash-shell-inside-container)
- [env ファイルをバインドマウントする](https://gitlab.com/hwdsl2/docker-ipsec-vpn-server/-/blob/master/docs/advanced-usage.md#bind-mount-the-env-file)
- [Google BBR 輻輳制御をデプロイする](https://gitlab.com/hwdsl2/docker-ipsec-vpn-server/-/blob/master/docs/advanced-usage.md#deploy-google-bbr-congestion-control)
## 技術的詳細
IPsec VPN 用の `Libreswan (pluto)` と、L2TP サポート用の `xl2tpd` の 2 つのサービスが実行されています。
デフォルトの IPsec 設定は以下をサポートします:
* PSK を使用した IPsec/L2TP
* PSK と XAuth を使用した IKEv1 (「Cisco IPsec」)
* IKEv2
必要なポート: `500/udp` および `4500/udp` (IPsec)
## ライセンス
**注:** ビルド済みイメージ内のソフトウェアコンポーネント (Libreswan や xl2tpd など) は、それぞれの著作権者が選択したそれぞれのライセンスの下にあります。ビルド済みイメージの使用に関しては、イメージの使用者が、このイメージの使用が内部に含まれるすべてのソフトウェアの関連ライセンスに準拠していることを確認する責任を負います。
Copyright (C) 2016-2026 [Lin Song](https://github.com/hwdsl2) [](https://www.linkedin.com/in/linsongui)
[Thomas Sarlandie の成果](https://github.com/sarfata/voodooprivacy)に基づく (Copyright 2012)
[](http://creativecommons.org/licenses/by-sa/3.0/)
この作品は [Creative Commons Attribution-ShareAlike 3.0 Unported License](http://creativecommons.org/licenses/by-sa/3.0/) の下でライセンスされています
表示義務: 派生作品には私の名前を含めてください。また、どのように改善したかをお知らせください!