> ipsaya.id

Hosting Sendiri Server VPN-mu dengan WireGuard

@ 2025.02.12

Persiapan

Hal pertama yang disiapkan adalah VPS untuk meng-host server WireGuard, direkomendasikan VPS dari negara Singapura atau Indonesia karena punya latensi yang bagus.

Tutorial ini akan menggunakan Docker untuk men-deploy server WireGuard. Oleh karena itu, bebas mau menggunakan distribusi Linux apa saja.

Instal Docker

Instal Docker di VPS kamu, sesuaikan dengan distro Linux pilihanmu.

Konfigurasi docker-compose.yml

Buatlah direktori untuk menyimpan konfigurasi server WireGuard.

mkdir selfhosted-wireguard

Kemudian buatlah file docker-compose.yml di dalam direktori tersebut.

cd selfhosted-wireguard
nano docker-compose.yml

Isilah dengan konfigurasi berikut:

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

Konfigurasi yang perlu diedit adalah bagian PEERS, yang merupakan konfigurasi jumlah klien yang dapat menggunakan server WireGuard.

Sesuaikan konfigurasi PEERS-nya, contohnya apabila ingin membuat 5 klien, konfigurasikan agar menjadi PEERS=5.

Selain dengan format seperti itu, bisa juga dikonfigurasikan dengan format seperti PEERS=myPC,myPhone,myTablet.

Terakhir, konfigurasi yang perlu diedit adalah bagian SERVERURL. Pada bagian ini, apabila kamu mempunyai domain sendiri, isilah dengan domain kamu dan atur DNS domain tersebut agar terhubung dengan alamat IP VPS, apabila tidak mempunyai domain, dapat diisi dengan auto atau alamat IP VPS.

Untuk konfigurasi yang lain, gunakan dokumen asli image WireGuard sebagai referensi.

Mengaktifkan Server WireGuard

Setelah semua konfigurasi beres, aktifkan server WireGuard.

docker compose up -d

Kemudian, pastikan server WireGuard telah berhasil diaktifkan dengan melihat log-nya:

docker logs wireguard

Di log tersebut akan muncul QR Code untuk konfigurasi klien WireGuard, apabila sudah muncul kode QR tersebut dan tidak ada log error sama sekali, artinya server WireGuard sudah berhasil diaktifkan dan siap digunakan.

Mengambil Konfigurasi

Setelah server WireGuard berhasil diaktifkan, bakalan muncul direktori baru config di dalam direktori khusus untuk menyimpan konfigurasi docker-compose.yml.

Direktori tersebut mengandung semua konfigurasi server WireGuard, termasuk konfigurasi untuk klien yang digunakan untuk menghubungkan ke server WireGuard di aplikasi klien WireGuard.

Konfigurasi untuk klien namanya diawali dengan peer yang disesuaikan dengan konfigurasi PEERS pada file docker-compose.yml.

File konfigurasi tersebut dapat kamu langsung unduh untuk digunakan di aplikasi klien WireGuard.

scp user@server:~/selfhosted-wireguard/config/peer1/peer1.conf .

Sebisa mungkin jangan memodifikasi konfigurasi yang ada di dalam direktori config , kecuali bila tahu maksud konfigurasinya.

Menghubungkan ke Server WireGuard

Untuk menghubungkan ke server WireGuard tergantung dari sistem operasi yang kamu gunakan saat ini.

Situs resmi WireGuard sudah menyediakan tutorial untuk menginstal klien WireGuard untuk berbagai macam sistem operasi, kamu tinggal ikuti saja langkah-langkahnya.

Setelah klien WireGuard terinstal, impor konfigurasi untuk klien yang tadi sudah diunduh kemudian simpan konfigurasi dan hubungkan ke server WireGuard.

Untuk memastikan apakah sudah benar-benar terhubung dengan server WireGuard, bukalah ipsaya.id di browser kamu, apabila alamat IP yang ditampilkan sudah sama dengan alamat IP VPS kamu, artinya klien berhasil terhubung ke server WireGuard.

Menambahkan Pengguna Baru

Mungkin pada masa mendatang kamu ingin menambahkan pengguna baru, entah itu untuk perangkat yang lain atau untuk saudara atau kenalanmu.

Untuk menambahkan pengguna baru, cukup edit kembali file docker-compose.yml kemudian ubah konfigurasi PEERS.

Setelah itu, simpan konfigurasi dan mulai ulang dengan konfigurasi baru:

docker compose up -d --force-recreate

Maintenance Server WireGuard

Maintenance server WireGuard cukup simpel, asalkan versi WireGuard paling baru sudah cukup.

Untuk memperbarui semua image kontainer:

docker compose pull
docker compose up -d

Untuk memperbarui image docker berdasarkan nama kontainer (contoh ini menggunakan nama kontainer wireguard yang sesuai dengan konfigurasi docker-compose.yml di atas):

docker compose pull wireguard
docker compose up -d wireguard

Untuk menghapus image kontainer docker lama yang sudah tidak terpakai lagi:

docker image prune