這是本文件的舊版!


[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

  • Exp. 將原本 Listen Port udp/51820 改成 udp/123 (預設 ntp port)

    vi docker-compose.yml

    修改以下 ports 設定

    :
        ports:
          - 123:51820/udp
    :
  • 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

  • tech/wireguard.1698462492.txt.gz
  • 上一次變更: 2023/10/28 11:08
  • jonathan