NATVPS.id – Anda dapat meng-hosting server Tailscale Anda sendiri menggunakan Headscale. Menggunakan Headscale menghindari informasi mengenai jaringan (seperti node, registrasi perangkat, dan akun) dikirim ke server luar, memberikan Anda kendali penuh terhadap data Anda. Self-hosting Headscale juga mengizinkan Anda untuk memasang autentikasi custom berbasis OpenID Connect (OIDC). Serta, Anda tidak terikat dengan Tailscale karena control server dikelola oleh Anda sendiri.
Artikel ini membahas mengenai langkah-langkah install Headscale + Headscale-UI di NAT VPS menggunakan Docker, beserta konfigurasi NGINX untuk reverse-proxy. Artikel ini menggunakan Ubuntu 22.04 sebagai acuan, namun Anda dapat menggunakan distribusi lain seperti Debian dan CentOS. Pastikan OS yang digunakan mendukung Docker.
Mengingat kita menggunakan NAT, kita perlu menambahkan 2 konfigurasi port forwarding pada panel Virtualizor (atau panel VPS lain sesuai provider), yaitu port forwarding HTTP dan HTTPS untuk domain Headscale.
Sebagai contoh, pada artikel ini akan menggunakan domain hs.tutorial.mdinata.my.id untuk mengakses Headscale. Anda bebas mengganti domain sesuai pilihan Anda. Catat port dan domain ini, karena kita akan menggunakannya lagi pada proses instalasi.
Jangan lupa untuk menambahkan DNS record yang menuju ke IP publik NAT VPS Anda, seperti ini:
Pertama, Install curl menggunakan perintah:
apt update && apt install curl -y
Kemudian, jalankan script instalasi otomatis dari Docker dengan memasukkan:
curl -fsSL get.docker.com | sh
Tunggu hingga proses instalasi selesai.
Sebelum menginstal, kita perlu mengecek versi terbaru dari Headscale.
Buka https://github.com/juanfont/headscale/releases/latest, kemudian cek versi terbarunya. Saat artikel ini ditulis, versi terbarunya adalah 0.26.1 (tanpa huruf v.)
Kemudian, masukkan perintah berikut untuk memulai instalasi Headscale:
HEADSCALE_VERSION="0.26.1" # Ganti dengan versi terbaru Headscale yang tersedia
HEADSCALE_ARCH="amd64"
wget --output-document=headscale.deb "https://github.com/juanfont/headscale/releases/download/v${HEADSCALE_VERSION}/headscale_${HEADSCALE_VERSION}_linux_${HEADSCALE_ARCH}.deb"
sudo apt install ./headscale.deb Ganti 0.26.1 di HEADSCALE_VERSION sesuai dengan versi terbaru dari Headscale.
Tunggu hingga instalasi selesai.
Buka file konfigurasi Headscale dengan nano:
apt install nano -y # Jika belum nano /etc/headscale/config.yaml
Pada bagian server_url, ubah ke domain yang Anda ingin gunakan untuk mengakses Headscale.
Simpan file tersebut dengan Ctrl-X, y, kemudian Enter.
Aktifkan Headscale dengan perintah:
systemctl enable --now headscale
Headscale tidak menyediakan antarmuka web untuk mengatur konfigurasinya. Kita dapat menggunakan aplikasi pihak ketiga seperti Headscale-UI untuk mengelola Headscale.
Jalankan peirntah berikut untuk menjalankan Headscale-UI:
docker run -d -p 8443:8443 --restart unless-stopped --name headscale-ui ghcr.io/gurucomputing/headscale-ui:latest
Tunggu hingga proses pull selesai.
H
E
ADSCALE_VERSION="0.26.1"
HEADSCALE_ARCH="amd64"
wget --output-document=headscale.deb "https://github.com/juanfont/headscale/releases/download/v${HEADSCALE_VERSION}/headscale_${HEADSCALE_VERSION}_linux_${HEADSCALE_ARCH}.deb"
sudo apt install ./headscale.deb Agar kita dapat mengakses Headscale melalui domain seperti hs.tutorial.mdinata.my.id, kita dapat menggunakan reverse proxy seperti NGINX.
Pertama, install NGINX melalui perintah:
# Hapus Apache2 dan pendukungnya (biasanya terpasang secara bawaan di VPS OpenVZ) apt purge apache2* -y # Install NGINX apt install nginx -y
Buat konfigurasi host baru khusus untuk Headscale:
nano /etc/nginx/sites-available/headscale
Kemudian tempelkan konfigurasi berikut:
# https://natvps.id/headscale-nat-vps/
# Reference:
# - https://headscale.net/stable/ref/integration/reverse-proxy/#nginx
# - https://github.com/gurucomputing/headscale-ui/blob/master/documentation/configuration.md
map $http_upgrade $connection_upgrade {
default upgrade;
'' close;
}
server {
listen 80;
listen [::]:80;
server_name hs.tutorial.mdinata.my.id;
# Headscale
location / {
proxy_pass http://127.0.0.1:8080;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection $connection_upgrade;
proxy_set_header Host $server_name;
proxy_redirect http:// https://;
proxy_buffering off;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
add_header Strict-Transport-Security "max-age=15552000; includeSubDomains" always;
}
# Headscale-UI
location /web/ {
proxy_pass https://127.0.0.1:8443/web/;
proxy_http_version 1.1;
proxy_set_header Host $server_name;
proxy_buffering off;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $http_x_forwarded_proto;
}
}
Sesuaikan hs.tutorial.mdinata.my.id dengan domain Anda.
Aktifkan konfigurasi tersebut dengan:
ln -sf /etc/nginx/sites-available/headscale /etc/nginx/sites-enabled/headscale # Restart NGINX systemctl restart nginx
Agar domain kita dapat diakses melalui HTTPS, kita perlu membuat sertifikat SSL. Kita dapat menggunakan sertifikat SSL gratis dari Let’s Encrypt melalui Certbot.
Install Certbot dan plugin NGINX nya menggunakan perintah:
apt install python3-certbot python3-certbot-nginx
Lalu, generate sertifikat melalui Certbot dengan perintah
certbot --nginx -d hs.tutorial.mdinata.my.id
Ganti hs.tutorial.mdinata.my.id dengan domain Anda.
Selamat! Domain Anda saat ini dapat diakses melalui koneksi aman HTTPS.
Dashboard Headscale-UI dapat diakses di https://<domain headscale>/web. Contoh: https://hs.tutorial.mdinata.my.id/web/.
Kita perlu mengatur URL Headscale kita sebelum dapat menggunakan Headscale-UI.
Pergi ke tab Settings.
Pada bagian Server Settings,
Untuk membuat API key, login ke NAT VPS, lalu ketikan:
headscale api create
Anda perlu menambahkan user yang akan digunakan untuk login ke server Headscale dari perangkat client.
Masuk ke tab User View.
Klik New User, kemudian masukkan username bebas.
Untuk menambahkan device dan menghubungkannya ke server Headscale, kita perlu melakukan login ulang dengan alamat server yang diarahkan ke server kita.
Untuk perangkat Windows, buka Terminal/Powershell, kemudian ketikkan:
tailscale login --login-server https://<domain headscale>
Buka alamat URL yang muncul. Anda akan mendapatkan command untuk mengautentikasi perangkat.
Masukkan perintah tersebut pada NAT VPS. Jangan lupa untuk mengganti USERNAME dengan username Headscale yang telah Anda buat.
Jika sukses, Tailscale di perangkat Windows akan tersambung ke server Headscale Anda.
Demikianlah artikel ini mengenai langkah-langkah install Headscale di NAT VPS. Jika bingung atau ragu, jangan sungkan untuk bertanya di grup Telegram @IPv6Indonesia. Terima kasih!
NATVPS.id – Gopeed (Go Speed) adalah aplikasi pengunduh modern bersifat open-source yang yang mendukung berbagai…
NATVPS.id – IPTV (Internet Protocol Television) adalah teknologi yang menyiarkan konten televisi, video, dan siaran…
NATVPS.id – Jellyfin adalah server media open-source yang memungkinkan Anda mengatur, melakukan streaming, dan mengelola…
NATVPS.id – Gitea adalah sebuah layanan hosting Git (pengelola repositori kode) open-source yang dapat di…
NATVPS.id – LibreOffice adalah perangkat lunak perkantoran (office) yang gratis, modern, dan open-source. LibreOffice dapat…
NATVPS.id – Pi-hole adalah software DNS Server yang berfokus pada pemblokiran iklan dan situs trackers.…