這是本文件的舊版!
[Draft]在 Alpine 內安裝 WireGuard VPN (Docker)
- 安裝環境
- VM : 1vCore / 1G RAM / 16G SSD
- OS : Alpine 3.18 - alpine-standard-3.18.4-x86_64.iso
- 預計採用 linuxserver/wireguard 的 docker image
- 執行以下語法
vi docker-compose.yml
修改以下有標註 #optional 的參數
version: "2.1" services: wireguard: image: lscr.io/linuxserver/wireguard:latest container_name: wireguard cap_add: - NET_ADMIN - SYS_MODULE #optional environment: - PUID=1000 - PGID=1000 - TZ=Asia/Taipei - SERVERURL=auto #optional - SERVERPORT=51820 #optional - PEERS=1 #optional - PEERDNS=auto #optional - INTERNAL_SUBNET=10.13.13.0 #optional - ALLOWEDIPS=0.0.0.0/0 #optional - PERSISTENTKEEPALIVE_PEERS= #optional - LOG_CONFS=true #optional volumes: - ./data/config:/config - /lib/modules:/lib/modules #optional ports: - 51820:51820/udp sysctls: - net.ipv4.conf.all.src_valid_mark=1 restart: always
- 啟動服務
docker compose up -d
修改 Listen Port
- Exp. 將原本 Listen Port udp/51820 改成 udp/123 (預設 ntp port)
vi docker-compose.yml
修改以下 ports 設定
: ports: - 123:51820/udp :
建立指定 Client 的憑證
- Exp. 將原本 environment 的 PEERS=1 改成要建立 Client 的 id 清單, Exp. jonathan,lin,lin2,stanley,jerry
vi docker-compose.yml
修改如下設定
: environment: : - PEERS=jonathan,lin,lin2,stanley,jerry :
- 重新啟動 docker compose 就會在 ./data/config/ 內建立出 peer_jonathan, peer_lin, peer_lin2, peer_stanley, peer_jerry 目錄
wgvpn:~# docker compose up -d --force-recreate [+] Running 1/1 ✔ Container wireguard Started 5.3s wgvpn:~# ls ./data/config/ coredns peer_jerry peer_jonathan peer_jonathan2 peer_lin peer_lin2 peer_lintsai peer_stanley server templates wg_confs
- 提供給 Client QRCode 的方式 Exp. lin2
wgvpn:~# docker exec -it wireguard /app/show-peer lin2