envfile:
SERVERURL=外部IPまたはドメイン名
SERVERPORT=51820
PEERS=3
PEERDNS=あなたのDNS
INTERNAL_SUBNET=10.6.0.0/24
ALLOWEDIPS=10.6.0.0/24
説明:
ALLOWEDIPSは、IPアドレスの範囲を指定するものです。このフィールドを設定すると、wgクライアントはこれらのサブネットをwgインターフェイスにルーティングし、INTERNAL_SUBNETを追加することができます。これにより、ピア同士が通信できるようになります。また、0.0.0.0/0を追加することもできます。これにより、クライアントのすべてのトラフィックがサーバーに転送されます。
PEERDNSは、生成されたクライアント構成のDNSアドレスです。サーバーのアドレスを設定することもできますし、一般的なDNSアドレスを設定することもできます。
docker-compose.yaml ファイル:
version: "3.3"
services:
wireguard:
image: linuxserver/wireguard
restart: always
env_file:
- ./conf/wg_config/env
environment:
PUID: "1000"
PGID: "1000"
volumes:
- ./conf/wg_config:/config
- /lib/modules:/lib/modules
cap_add:
- NET_ADMIN
- SYS_MODULE
sysctls:
- net.ipv4.conf.all.src_valid_mark=1
- net.ipv4.ip_forward=1
ports:
- 51820:51820/udp
Wireguardは、カーネルモジュールでサポートされているため、cap_addのSYS_MODULEは必須です。
sysctlsの役割は、サーバーをルーターとして動作させ、ピア間のトラフィック転送を実現することです。
サーバーの起動:
docker-compose up -d
docker-composeでサービスを起動すると、./conf/wg_configディレクトリに構成ファイルが自動的に生成されます。以下は、peer1からpeer2まで、クライアントが使用する自動生成された構成ファイルです。peer.confを直接インポートすることができ、peer.pngをスキャンしてクライアントにインポートすることができます。
drwxr-xr-x 2 opc opc 4.0K Feb 3 15:44 coredns
drwxr-xr-x 2 root root 4.0K Feb 28 09:12 custom-cont-init.d
drwxr-xr-x 2 root root 4.0K Feb 3 15:44 custom-services.d
-rw------- 1 opc opc 193 Feb 3 15:49 .donoteditthisfile
drwx------ 2 opc opc 4.0K Feb 3 15:44 peer1
drwx------ 2 opc opc 4.0K Feb 3 15:44 peer2
drwx------ 2 opc opc 4.0K Feb 3 15:44 peer3
drwxr-xr-x 2 opc opc 4.0K Feb 3 15:44 server
drwxr-xr-x 2 opc opc 4.0K Feb 3 14:35 templates
-rw-r--r-- 1 opc opc 677 Feb 3 15:49 wg0.conf
custom-cont-init.dには、サーバー起動時に自動的に実行されるシェルスクリプトを配置することができます。通常、追加のルーティングテーブル設定やファイアウォール設定などを配置することができます。