Cara Instal Server VPN Sendiri dengan WireGuard

Tutorial ini akan menjelaskan cara menginstal server VPN dengan WireGuard menggunakan image Docker dari LinuxServer.io.

Proses instalasinya akan jauh lebih mudah sehingga kalian tidak perlu lagi ribet menginstal WireGuard dari nol.

Persiapan

Hal yang perlu dipersiapkan tentunya adalah server Linux yang sudah terinstal Docker dan Docker Compose.

Tutorial untuk memasang Docker, bisa baca di dokumentasi untuk menginstal Docker.

Setup Konfigurasi Docker Compose

Setelah Docker dan Docker Compose terinstal.

Buat file docker-compose.yml di dalam direktori wireguard.

$ mkdir wireguard
$ cd wireguard
$ touch docker-compose.yml

Kemudian edit file docker-compose.yml menggunakan teks editor nano.

$ nano docker-compose.yml

Tambahkan konfigurasi berikut ini ke dalam file docker-compose.yml

version: '2.1'
services:
  wireguard:
    image: lscr.io/linuxserver/wireguard:latest
    container_name: wireguard
    cap_add:
      - NET_ADMIN
    environment:
      - PUID=1000
      - PGID=1000
      - TZ=Etc/UTC
      - SERVERURL=wireguard.domain.com #optional
      - SERVERPORT=51820 #optional
      - PEERS=android #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:
      - /path/to/appdata/config:/config
    ports:
      - 51820:51820/udp
    sysctls:
      - net.ipv4.conf.all.src_valid_mark=1
    restart: unless-stopped

Yang perlu diedit:

  • Edit SERVERURL dengan alamat server atau edit menjadi auto agar kontainer yang mencari alamat server secara otomatis.
  • Edit PEERS, jika ingin menambahkan banyak peers/klien yang bisa menggunakan server VPN, dapat diisi dengan format seperti android,android2,pc,pc2
  • Edit PEERDNS, jika ingin mengganti DNS untuk peer, dapat diisi dengan format seperti 1.1.1.1.
  • Edit konfigurasi lain jika perlu, selengkapnya baca dokumentasi LinuxServer.io/wireguard.

Untuk menyimpan file, tekan CTRL + S kemudian tekan CTRL + X untuk keluar dari teks editor nano.

Hidupkan Server WireGuard

Hidupkan WireGuard dengan menjalankan perintah berikut:

$ docker compose up -d

Setelah WireGuard dihidupkan, kontainer akan secara otomatis membuat file konfigurasi di dalam direktori config.

Direktori config ini berfungsi untuk menyimpan konfigurasi WireGuard.

Jadi, kalian bisa langsung mengunduh konfigurasi WireGuard untuk klien menggunakan scp seperti pada perintah berikut:

$ scp us[email protected]:~/wireguard/config/peer_<nama peer> ~/Downloads

Cara alternatif mendapatkan konfigurasi untuk klien dalam bentuk kode QR, maka jalankan perintah berikut:

$ docker exec -it wireguard /app/show-peer <nama peer>

Cara Menambahkan Peer Baru

Untuk menambahkan peer baru, cukup edit lagi file docker-compose.yml, kemudian tambahkan nama peer baru pada bagian PEERS, misalnya android,android,pc,pc2,pc-baru.

Setelah itu, jalankan perintah berikut ini untuk memulai ulang server WireGuard:

$ docker compose up -d --force-recreate

Cara Memperbarui Versi WireGuard

Untuk memperbarui image dan menjalankan ulang kontainer WireGuard saja, jalankan perintah berikut:

$ docker compose pull wireguard
$ docker compose up -d wireguard

Sedangkan untuk memperbarui semua image dan menjalankan ulang semua kontainer:

$ docker compose pull
$ docker compose up -d

Untuk menghapus image Docker yang tak terpakai:

$ docker image prune