Paket 1 · Fondasi DevOpsModul F — Tailscale & Private Access

Tailscale Private Network untuk Proxmox, VM, dan LXC

Menjadikan Proxmox sebagai gateway Tailscale, membagikan subnet internal VM/LXC, dan mengakses seluruh lab tanpa public IP.

Daripada memasang Tailscale di setiap VM/LXC, kita bisa menjadikan host Proxmox sebagai subnet router. Host membagikan jaringan internal ke tailnet, sehingga semua VM/LXC dapat diakses dari laptop.

Arsitektur

Laptop (tailnet 100.x)
        │
        ▼
Proxmox host (tailscale + subnet router)
        │
        ├── vmbr0 192.168.1.50/24  (LAN)
        └── vmbr1 10.10.10.1/24    (internal VM/LXC)
                ├── LXC web   10.10.10.11
                └── VM  db    10.10.10.12

Dengan konfigurasi ini, laptop bisa mengakses 10.10.10.11 dan 10.10.10.12 tanpa NAT atau port forwarding tambahan.

1. Instal Tailscale di host Proxmox

Proxmox berbasis Debian, sehingga installer Tailscale dapat digunakan.

curl -fsSL https://tailscale.com/install.sh | sh
systemctl status tailscaled --no-pager

Hubungkan host:

tailscale up --advertise-routes=10.10.10.0/24 --accept-dns=false
OpsiAlasan
--advertise-routesMembagikan subnet internal ke tailnet
--accept-dns=falseMenghindari konflik DNS pada host Proxmox

Jika juga ingin mengakses LAN 192.168.1.0/24, tambahkan route:

tailscale up --advertise-routes=10.10.10.0/24,192.168.1.0/24 --accept-dns=false

2. Aktifkan IP forwarding

Subnet router harus meneruskan paket antar-interface.

cat > /etc/sysctl.d/99-tailscale.conf <<'EOF'
net.ipv4.ip_forward = 1
net.ipv6.conf.all.forwarding = 1
net.ipv4.conf.all.src_valid_mark = 1
EOF

sysctl --system

Cek:

sysctl net.ipv4.ip_forward

3. Setujui route di admin console

Route yang diiklankan belum aktif sampai disetujui.

  1. Buka Tailscale Admin Console → Machines.
  2. Pilih node Proxmox.
  3. Buka menu Route settings.
  4. Setujui 10.10.10.0/24 (dan 192.168.1.0/24 bila dipakai).

Alternatif lewat CLI admin (dengan API key):

tailscale route approve 10.10.10.0/24

Route approval adalah kontrol keamanan

Jangan menyetujui subnet yang tidak Anda butuhkan. Subnet router yang terlalu luas dapat membuka jaringan kantor/rumah ke seluruh tailnet.

4. Aktifkan subnet routing di client

Di laptop:

sudo tailscale up --accept-routes

Cek rute:

ip route | grep 10.10.10
tailscale status
ping 10.10.10.11

Jika ping berhasil, akses SSH:

ssh deploy@10.10.10.11

5. Opsi: install Tailscale di dalam LXC

Untuk LXC tertentu, Tailscale bisa dipasang langsung di dalam container. Ini berguna bila Anda tidak ingin bergantung pada subnet router host.

Prasyarat LXC:

  • nesting=1
  • keyctl=1 (umumnya)
  • Akses ke /dev/net/tun

Contoh:

pct set 200 --features nesting=1,keyctl=1
pct exec 200 -- bash -c 'curl -fsSL https://tailscale.com/install.sh | sh'
pct exec 200 -- tailscale up --ssh --hostname=web-ct

Jika muncul error terkait /dev/net/tun, pastikan modul TUN tersedia di host:

lsmod | grep tun
modprobe tun

Pilih salah satu pola

Subnet router lebih mudah untuk banyak VM/LXC. Tailscale di dalam guest lebih mandiri dan cocok bila Anda ingin kontrol akses per-container. Hindari keduanya sekaligus pada node yang sama tanpa alasan jelas.

6. MagicDNS dan penamaan

Aktifkan MagicDNS di admin console. Setelah itu, node dapat diakses dengan nama:

ssh root@proxmox-lab
ssh deploy@web-ct

Untuk perangkat di subnet yang tidak menjalankan Tailscale, akses tetap memakai IP internal (10.10.10.11), kecuali Anda mengatur DNS tambahan.

7. ACL untuk lab

Contoh kebijakan:

{
  "tagOwners": {
    "tag:proxmox": ["group:admin"],
    "tag:lab": ["group:admin"]
  },
  "acls": [
    { "action": "accept", "src": ["group:admin"], "dst": ["tag:proxmox:*"] },
    { "action": "accept", "src": ["group:admin"], "dst": ["tag:lab:22,80,443"] }
  ],
  "ssh": [
    { "action": "accept", "src": ["group:admin"], "dst": ["tag:proxmox"], "users": ["root"] }
  ]
}

8. Troubleshooting

GejalaCek
Route tidak aktifApproval di admin console
Ping subnet gagalip_forward, --accept-routes, firewall
Hanya host bisa diaksesRoute belum disetujui atau client belum --accept-routes
LXC tidak bisa install Tailscalenesting, /dev/net/tun
Koneksi lewat DERPtailscale ping, tailscale netcheck
DNS konflik--accept-dns=false di host

Cek di host:

tailscale status
tailscale debug prefs
sysctl net.ipv4.ip_forward
ip route

Praktik: akses penuh lab

  1. Buat bridge internal vmbr1 dengan 10.10.10.1/24.
  2. Pasang LXC dengan IP 10.10.10.11.
  3. Install Tailscale di host Proxmox.
  4. Jalankan tailscale up --advertise-routes=10.10.10.0/24 --accept-dns=false.
  5. Aktifkan IP forwarding.
  6. Setujui route di admin console.
  7. Di laptop, jalankan tailscale up --accept-routes.
  8. Uji ping 10.10.10.11 dan ssh deploy@10.10.10.11.

Ringkasan

  • Proxmox dapat menjadi subnet router Tailscale untuk seluruh VM/LXC.
  • Aktifkan IP forwarding dan setujui route di admin console.
  • Client perlu --accept-routes agar bisa menjangkau subnet.
  • Tailscale di dalam LXC memerlukan dukungan TUN dan fitur container yang sesuai.

Selanjutnya

Terbitkan layanan ke internet di Domain, DNS, dan Cloudflare Fundamentals.

On this page