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.
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
Bukan dari Homebrew (UI berbeda, pakai wg-quick CLI). Artikel ini fokus ke versi App Store — paling umum dipakai user Mac.
Public key Mac kamu sudah ada entry-nya di sisi server.
Test dulu: bisa ping IP internal kantor? Kalau split tunnel saja belum jalan, full tunnel tidak akan jalan.
Cek dari MikroTik dengan /ip dns print. Catat IP-nya.
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
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
[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
[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
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
/ip dns print
# Output contoh:
# servers: 103.10.x.x,103.10.y.y
# allow-remote-requests: yes
# cache-size: 4096KiB
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
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'
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
# 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
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.
# 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
Besok pagi, buka log untuk review:
# 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"
Troubleshooting Mac
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.
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.
Penyebab: AllowedIPs belum diubah. Solusi: Edit config, pastikan AllowedIPs = 0.0.0.0/0, ::/0 persis seperti itu. Spasi setelah koma. Save → Activate.
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.
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
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.