// IP ADDRESS ANDA SAAT INI
Mengambil informasi koneksi…
Buka Network Dashboard — Test Jaringan Kantor →

Skenario nyata yang melatarbelakangi artikel ini: malam itu seorang network admin lagi WFH pakai MacBook, dapat laporan internet kantor lambat. Mau verifikasi dengan MTR — tapi tunnel WireGuard yang sudah connect ternyata cuma split tunnel: subnet internal kantor jalan, traffic internet umum tetap lewat ISP rumah. curl ifconfig.me return IP rumah, jadi MTR ke 8.8.8.8 mengukur jalur dari ISP rumah — bukan jalur yang dikomplain user. Dua perubahan kecil di config Mac plus konfirmasi sisi server MikroTik = full tunnel jalan. Artikel ini dokumentasi langkah-langkah yang sudah terbukti jalan dari pengalaman langsung, plus bonus monitoring station semalaman pakai caffeinate.

WireGuard Full Tunnel di Mac
Ilustrasi: WireGuard Full Tunnel di Mac
Prasyarat sisi server: sebelum lanjut, pastikan MikroTik sudah dikonfigurasi full tunnel — lihat WireGuard Full Tunnel di MikroTik. Tanpa NAT masquerade di server, perubahan di Mac tidak akan jalan.

Split Tunnel vs Full Tunnel — Ringkas

Split tunnel = tunnel cuma untuk traffic ke subnet internal kantor; browsing dan internet umum tetap lewat ISP rumah. Full tunnel = semua traffic lewat tunnel ke kantor lalu keluar via ISP kantor. Konsekuensi: IP publik yang terlihat luar = IP kantor, log gateway kantor mencatat semua aktivitas, latency naik 5–15ms.

Untuk penjelasan lengkap perbedaan, kapan butuh masing-masing, dan setup sisi server — lihat WireGuard Full Tunnel di MikroTik.

Yang Dibutuhkan

WireGuard from Mac App Store

Bukan dari Homebrew (UI berbeda, pakai wg-quick CLI). Artikel ini fokus ke versi App Store — paling umum dipakai user Mac.

Peer terdaftar di server MikroTik

Public key Mac kamu sudah ada entry-nya di sisi server.

Split tunnel sudah connect

Test dulu: bisa ping IP internal kantor? Kalau split tunnel saja belum jalan, full tunnel tidak akan jalan.

DNS server kantor

Cek dari MikroTik dengan /ip dns print. Catat IP-nya.

Server sudah full-tunnel-ready

AllowedAddress peer di MikroTik sudah include 0.0.0.0/0, dan NAT masquerade sudah ada — lihat artikel MikroTik.

Langkah 1 — Edit Config di WireGuard Mac

Penting — Mac-only quirk: tombol Edit hanya muncul saat tunnel Inactive. Kalau tunnel masih Active, Edit di-disable. Klik Deactivate dulu, tunggu status berubah ke Inactive, baru klik Edit. Ini constraint dari Network Extension framework Apple — beda dari Windows yang bisa edit kapan saja.

Buka WireGuard di Mac (icon di menu bar atau dari Applications). Pilih tunnel kamu di panel kiri. Klik Deactivate kalau masih Active. Setelah status Inactive, klik Edit. Editor terbuka — UI clean dengan monospace font.

Config Sebelum dan Sesudah

SEBELUM — Split Tunnel
[Interface]
PrivateKey = YOUR_PRIVATE_KEY
Address = 10.20.20.2/32

[Peer]
PublicKey = SERVER_PUBLIC_KEY
Endpoint = 103.10.x.x:51820
AllowedIPs = 10.20.20.0/24, 10.1.0.0/16
PersistentKeepalive = 25
Tipikal split tunnel — AllowedIPs cuma subnet internal, tidak ada DNS.
SESUDAH — Full Tunnel
[Interface]
PrivateKey = YOUR_PRIVATE_KEY
Address = 10.20.20.2/32
DNS = 103.10.x.x, 8.8.8.8       # ← TAMBAHKAN baris ini

[Peer]
PublicKey = SERVER_PUBLIC_KEY
Endpoint = 103.10.x.x:51820
AllowedIPs = 0.0.0.0/0, ::/0    # ← UBAH dari subnet ke 0.0.0.0/0
PersistentKeepalive = 25
Dua perubahan: tambah baris DNS di [Interface], ubah AllowedIPs di [Peer]. Ganti 103.10.x.x dengan IP DNS kantor sebenarnya.

Kenapa Baris DNS Wajib di Mac?

Tanpa baris DNS =, semua DNS query ikut ter-tunnel ke MikroTik — tapi MikroTik tidak otomatis jadi DNS resolver kalau client tidak menunjuk explicit. Hasilnya: semua DNS query timeout. Browser akan menampilkan error "Could not resolve host" atau "DNS_PROBE_FINISHED_NXDOMAIN". Pakai DNS kantor sebagai primary (resolusi internal jalan), 8.8.8.8 sebagai fallback kalau DNS kantor down.

Cara Cari IP DNS Kantor

Terminal MikroTik
/ip dns print

# Output contoh:
#  servers: 103.10.x.x,103.10.y.y
#  allow-remote-requests: yes
#  cache-size: 4096KiB
IP pertama di field "servers" = primary DNS kantor. Pakai itu sebagai DNS primary di config Mac.

Setelah selesai edit, klik Save. Window editor close. Sekarang klik Activate di panel utama untuk start tunnel dengan config full tunnel baru.

Langkah 2 — Pastikan Server MikroTik Sudah Siap

Mac sudah dikonfigurasi, tapi tanpa sisi server, tidak akan ada hasil. Sisi server butuh dua hal: (1) AllowedAddress peer kamu di MikroTik sudah include 0.0.0.0/0, (2) NAT masquerade rule untuk subnet WireGuard ke interface WAN. Detail langkah-langkah server, troubleshooting, dan urutan rule NAT ada di WireGuard Full Tunnel di MikroTik.

Langkah 3 — Verifikasi Full Tunnel Berhasil

Buka Terminal di Mac (Spotlight: Cmd+Space → ketik "terminal"). Tiga test berikut, urut.

Test 1 — IP Publik via Terminal

Terminal Mac
curl ifconfig.me

# Output yang diharapkan:
# IP publik kantor (bukan IP rumah)

# Verbose alternatif kalau mau lihat detail koneksi:
curl -v ifconfig.me 2>&1 | grep -E 'Connected|HTTP'
curl built-in di Mac, tidak perlu install. Kalau hasil masih IP rumah → AllowedIPs belum benar.

Test 2 — Visual Check via cekipsaya.com

Buka cekipsaya.com di Safari atau Chrome. IP yang muncul di banner harus IP kantor + nama institusi/ISP kantor. Test paling cepat untuk konfirmasi visual — sebelum lanjut MTR.

Test 3 — MTR dari Perspektif Kantor

MTR via Homebrew
# Install mtr dulu kalau belum ada
brew install mtr

# Run 100 paket
sudo mtr --report --report-cycles 100 8.8.8.8

# Output diharapkan:
# Hop 1: 10.20.20.1   ← gateway WG
# Hop 2: 103.10.x.x   ← gateway ISP KANTOR
# Hop 3: ...           ← upstream kantor
sudo diperlukan karena MTR butuh raw socket. Hop 2 harus gateway ISP kantor, bukan ISP rumah. Untuk cara baca lengkap (StDev, Wrst, Loss%) lihat artikel Threshold Normal MTR.
Tanpa Homebrew: pakai traceroute built-in Mac saja: traceroute 8.8.8.8. Tidak ada packet loss per-hop, tapi cukup untuk konfirmasi route.

Bonus — Monitoring Jaringan Kantor Semalaman dari Rumah

Ini value unik Mac yang tidak dimiliki Windows: kombinasi caffeinate + mtr + loop sederhana = monitoring station semalaman. Skenario yang sangat berguna: ada laporan internet kantor lemot di jam-jam tertentu (mis. tengah malam saat user sudah tidur), tapi siang besok susah reproduce. Solusinya — biarkan Mac jalan MTR setiap 15 menit semalaman lewat tunnel, log hasilnya, besok pagi tinggal review.

Skrip Monitoring Semalaman
# Cegah Mac sleep + jalankan MTR setiap 15 menit
# Boleh tutup layar laptop, script tetap jalan
caffeinate -i bash << 'EOF'
LOG="$HOME/Desktop/mtr-log-$(date '+%Y%m%d').txt"
while true; do
    echo "--- $(date '+%Y-%m-%d %H:%M:%S') ---" >> "$LOG"
    sudo mtr --report --report-cycles 50 --no-dns 8.8.8.8 >> "$LOG" 2>&1
    sleep 900   # 15 menit
done
EOF
Jalankan ini di Terminal sebelum tidur. caffeinate -i = cegah idle sleep tapi izinkan display sleep. Boleh tutup layar — script tetap jalan. Ctrl+C besok pagi untuk stop.

Besok pagi, buka log untuk review:

Review Hasil Pagi
# Buka log di TextEdit
open "$HOME/Desktop/mtr-log-$(date '+%Y%m%d').txt"

# Atau filter cepat — tampilkan blok dengan loss tinggi (>1%)
grep -B2 -A1 -E '\s+[1-9][0-9]?\.[0-9]%' "$HOME/Desktop/mtr-log-$(date '+%Y%m%d').txt" | head -100

# Hitung jumlah snapshot yang punya loss
grep -c -E '\s+[1-9][0-9]?\.[0-9]%' "$HOME/Desktop/mtr-log-$(date '+%Y%m%d').txt"
Pattern grep di atas tangkap baris dengan loss 1%+. Kalau jumlahnya sedikit dan terkonsentrasi di jam tertentu, kamu sudah punya bukti angka untuk lapor ke ISP — beda dari laporan generik "internet lemot".
caffeinate aman — tools bawaan Mac, dipakai juga oleh sistem saat install update. Tidak ada side effect ke hardware atau battery health. Mac tetap akan menjalankan power saving normal kecuali untuk sleep.

Troubleshooting Mac

Tombol Edit di-disable / tidak muncul

Penyebab: tunnel masih Active. Network Extension framework Apple tidak izinkan edit config saat tunnel jalan. Solusi: klik Deactivate dulu, tunggu status berubah ke Inactive (1–2 detik), tombol Edit langsung enabled.

<code>curl ifconfig.me</code> error "Could not resolve host"

Penyebab utama: baris DNS belum ditambahkan di [Interface]. Solusi: Deactivate → Edit → tambah DNS = 103.10.x.x, 8.8.8.8 di [Interface] → Save → Activate. Test ulang. Kalau masih error, masalah di sisi server — cek artikel MikroTik troubleshooting NAT.

IP masih IP rumah setelah Activate

Penyebab: AllowedIPs belum diubah. Solusi: Edit config, pastikan AllowedIPs = 0.0.0.0/0, ::/0 persis seperti itu. Spasi setelah koma. Save → Activate.

MTR tidak tersedia / "command not found"

Solusi: install via Homebrew: brew install mtr. Butuh Homebrew terpasang dulu (brew.sh). Alternatif tanpa install: pakai traceroute 8.8.8.8 built-in Mac — tidak ada loss per-hop, tapi cukup untuk verifikasi route.

Tunnel connect tapi semua website timeout

Penyebab: NAT masquerade di MikroTik salah interface WAN, atau MTU mismatch. Solusi: verifikasi di sisi server — cek artikel MikroTik bagian troubleshooting. Kalau interface NAT sudah benar tapi tetap timeout, kecilkan MTU di MikroTik: /interface wireguard set wireguard1 mtu=1380.

Kembali ke Split Tunnel

Setelah selesai test atau monitoring, kembalikan ke split tunnel: Deactivate → Edit → kembalikan AllowedIPs ke subnet internal → hapus baris DNS → Save → Activate. Atau ikuti tip di artikel Windows: bikin dua tunnel terpisah — satu split, satu full — tinggal switch sesuai kebutuhan tanpa edit config bolak-balik.

FAQ — Pertanyaan yang Sering Ditanyakan

WireGuard untuk Mac App Store memakai Apple Network Extension framework yang tidak mengizinkan modifikasi config saat tunnel aktif — ini constraint OS, bukan keterbatasan WireGuard. Berbeda dari Windows yang bisa edit kapan saja, atau Linux yang manipulasi file langsung. Trade-off: Mac sedikit lebih ribet, tapi guarantee tidak ada race condition saat config berubah.
Aman. caffeinate hanya mencegah idle sleep — flag <code>-i</code> spesifik izinkan display sleep tetap (layar boleh mati, system tetap jalan). Tools bawaan Mac, dipakai juga oleh installer Apple. Tidak mempengaruhi battery health atau hardware. Untuk monitoring semalaman, pastikan Mac dicas — MTR + interface WireGuard memang ringan tapi over time tetap drain battery.
Bisa via <code>brew install wireguard-tools</code>, tapi UI berbeda — pakai <code>wg-quick up wg0</code> di terminal, tidak ada GUI. Workflow mirip Linux. Cocok kalau kamu dev yang suka CLI atau butuh automasi. Untuk user umum, App Store version lebih nyaman.
Sedikit. Traffic memutar via server kantor, plus overhead enkripsi WireGuard. Dampak tergantung jarak Mac ke server kantor dan kapasitas server. Untuk monitoring/testing, latency tambahan 5–15ms tidak signifikan. Untuk video meeting Zoom intensif, mungkin terasa — kembalikan ke split tunnel saat tidak butuh.
Buka <a href="https://dnsleaktest.com" rel="nofollow">dnsleaktest.com</a> di Safari/Chrome → Run Extended Test. Semua DNS server yang muncul harus dari kantor atau <code>8.8.8.8</code> — bukan ISP rumah. Mac jarang DNS leak kalau baris <code>DNS =</code> sudah ada di config. Kalau ada leak, coba restart tunnel atau reboot Mac (refresh DNS cache OS).

Kesimpulan

Tutorial ini lahir dari setup yang dilakukan langsung di MacBook praktisi — bukan tutorial generik. Tiga hal yang sering luput: (1) Deactivate dulu sebelum bisa Edit config (constraint Network Extension framework Apple), (2) baris DNS = ... di [Interface] wajib agar internet tidak putus, (3) sisi server MikroTik harus sudah ada NAT masquerade — tanpa itu Mac terlihat connect tapi tidak bisa apa-apa. Bonus: caffeinate + mtr + cron ala Mac bisa jadi monitoring station kantor semalaman dari rumah, sangat berguna saat ada laporan gangguan jam-jam tertentu. Sebelum mulai, pastikan sisi server MikroTik sudah dikonfigurasi.

COBA SEKARANG
Buka Network Dashboard — Test Jaringan Kantor
→ Buka Network Dashboard — Test Jaringan Kantor
// ARTIKEL INI MEMBANTU?

Share ke teman yang butuh info ini: