cara install wg-portal wireguard di ubuntu server

Disini saya pakai ubuntu Ubuntu 24.04.2 LTS




Step By Step Instalasi.

  • Update server vps + instal wireguard

apt update && apt upgrade -y && apt install wireguard iptables -y

  • Aktifkan ip forwarding

echo "net.ipv4.ip_forward = 1" | sudo tee -a /etc/sysctl.conf && sudo sysctl -p

  • Buat sebuah folder dengan nama wg-portal atau bebas mau ngasih nama apa saja.
  • Letak file binary-nya di dalam folder tersebut.


  • Buat folder dengan nama config lalu buat file dengan nama config.yaml di dalam folder tersebut.


  • Isi file config.yaml dengan kode berikut :
core:
  admin_user: admin@google.com
  admin_password: hujanderas
  admin_api_token: ""
  editable_keys: true
  import_existing: true
  create_default_peer: true
  self_provisioning_allowed: false
  create_default_peer_on_creation: false
  re_enable_peer_after_user_enable: true
  delete_peer_after_user_deleted : true
  restore_state : true

web:
  listening_address: :8080
  external_url: http://66.39.4.69:8080
  site_company_name: WireGuard Portal
  site_title: WireGuard Portal
  session_identifier: wgPortalSession
  session_secret: very_secret
  csrf_secret: super-s3cr3t-csrf
  request_logging: true
  expose_host_info: false
  cert_file: ""
  key_File: ""

advanced:
  log_level: info
  log_pretty: true
  log_json: false
  config_storage_path: ./data
  expiry_check_interval: 5m

database:
  debug: true
  type: sqlite
  dsn: data/sqlite.db
  encryption_passphrase: secret-of-satanic-temple

auth:
  callback_url_prefix: "https://${WG_PORTAL_DNS_HOSTNAME}/api/v0"
  webauthn:
    enabled: true
  min_password_length: 16

Untuk listening_address isi dengan port web yang akan digunakan.
Untuk external_url isi dengan alamat web yang nantinya akan kamu akses.
Untuk yang lainnya silahkan kondisikan sendiri.
Setelah itu simpan.

  • Change directory (cd) ke lokasi folder di prompt command, disini lokasi folder berada di jalur /root/wg-portal maka saya jalankan perintah :
cd /root/wg-portal
  • Kemudian beri izin file binary-nya agar dapat dijalankan.
chmod +x wg-portal_linux_amd64
  • Kemudian jalankan file binnary-nya
./wg-portal_linux_amd64
  • Silahkan kunjungi alamat link web portal. kemudian klik tombol "LOGIN". lihat gambar berikut :

Karena sebelumnya saya mengatur listening_address: :8080 maka, akses ke webnya adalah :
http://ip-vps:8080
  • Selesai. kini kamu telah memiliki server vpn wireguard sendiri.

Biar Bisa Jalan Dibelakang Layar & Otomatis Jalan Saat Vps Reboot


Disini saya pakai PM2 untuk menjalankan-nya. Untuk mengecek apakah PM2 sudah terpasang atau tidak silahkan jalankan perintah berikut :
pm2 --version

Jika sudah terpasang akan muncul respon. lebih kurang seperti ini


Jika vps kamu sudah terpasang PM2, maka lewati proses instalasi PM2 ini.

Instalasi PM2

Silahkan install nodejs, jalankan perintah berikut :

apt update && apt upgrade -y && apt install build-essential libcairo2-dev libpango1.0-dev libjpeg-dev libgif-dev librsvg2-dev -y

curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.3/install.sh | bash

source ~/.bashrc

nvm list-remote

nvm install v22.16.0

npm install pm2 -g

Cek apakah sudah terpasang, silahkan jalankan perintah berikut :
pm2 --version

Kalau sudah kita lanjut.


Menjalankan aplikasi

  • Silahkan buat file bernama wg-portal_linux_amd64.sh, lalu isi dengan kode berikut :
#!/usr/bin/env bash

./wg-portal_linux_amd64

  • Selanjutnya jalankan perintah berikut untuk menjalankan aplikasi-nya :
pm2 start wg-portal_linux_amd64.sh --output /dev/null --error /dev/null -- --color && pm2 save && pm2 startup && pm2 save

Perintah ini sudah saya optimasi agar lognya tidak tersimpan di disk kita, jadi gak akan nyampah.

Untuk melihat log aplikasi, silahkan jalankan perintah ini :
pm2 log wg-portal_linux_amd64 --raw

Atau bisa juga seperti ini :
pm2 log --raw

DONE. Sekarang aplikasi telah berjalan di belakang layar dan akan tetap berjalan ketika vps kita reboot.


Informasi tambahan


Saat kamu membuat interface, silahkan gunakan code Post-Up dan Post-Down pada form isian. ini berfungsi agar client yang terhubung dapat terkoneksi ke internet.

Code untuk Post-Up
iptables -A FORWARD -i %i -j ACCEPT; iptables -A FORWARD -o %i -j ACCEPT; iptables -t nat -A POSTROUTING -o ens3 -j MASQUERADE

Code untuk Post-Down

iptables -D FORWARD -i %i -j ACCEPT; iptables -D FORWARD -o %i -j ACCEPT; iptables -t nat -D POSTROUTING -o ens3 -j MASQUERADE

Perhatikan yang saya beri tanda warna merah, itu adalah interface jaringan yang tehubung ke internet di dalam vps anda. Untuk melihatnya silahkn jalankan :
ip a

Indikator interface mana yang punya akses internet, bisanya ada ip publik/ip vps di dalam list interface tersebut. hasilnya :


Nah terlihat interface yang punya internet di vps saya adalah ens3. ribet amat yak wkwkw.

Kalau gak mau ribet, tinggal jalankan perintah ini :

ip route get 1.1.1.1 | grep -oP 'dev \K\S+'

Hasilnya :



Berikut hasil gambar input form isian-nya.



Informasi tambahan lagi

Jika mau mengalihkan semua trafik client untuk melewati ip server, maka pada bagian submenu Peer Defaults, silahkan isi seperti berikut :
  1. Tambahkan subnet berikut pada isian input bagian Allowed IP Addresses, lihat gambar berikut :
0.0.0.0/0, ::/0



Hasilnya :


Tambahkan juga DNS server berikut pada kolom input DNS Server, lihat berikut ini :
1.1.1.1,8.8.8.8



Terakhir, jangan lupa isi pada kolom input Endpoint Address dengan ip vps kamu. lihat berikut ini :



Setelah itu sumpan.


Done........ :)


Terus cara pakai vpn/tunnel wireguard ini gimana ?
next ya saya buat artikelnya.

Apakah bisa meng-online-kan pc rumahan agar bisa di akses publik?
ya bisa, nanti tak buatkan panduannya juga.