2 poin oleh GN⁺ 2025-11-29 | 1 komentar | Bagikan ke WhatsApp
  • Pemblokiran pengguna Inggris oleh Imgur menyebabkan masalah di mana tautan gambar di Reddit, forum, dokumentasi, dan berbagai tempat lain semuanya ditampilkan sebagai “unavailable”
  • Alih-alih VPN per perangkat, dibangun struktur bypass otomatis di tingkat seluruh jaringan agar Imgur bisa diakses dari semua perangkat
  • Dirancang arsitektur yang menggabungkan Pi-hole, Traefik, Gluetun, Nginx, dan NixOS untuk melewati blokir DNS dan meneruskan trafik melalui VPN
  • Dengan memanfaatkan TLS passthrough dan berbagi jaringan Docker, trafik terenkripsi diteruskan apa adanya sambil meminimalkan penurunan kecepatan
  • Hasilnya, gambar Imgur dapat diakses dari semua perangkat tanpa konfigurasi tambahan, dengan struktur pembukaan blokir jaringan yang transparan tanpa kehilangan kecepatan

Pemblokiran Imgur dan contoh ketidaknyamanan

  • Setelah Imgur memblokir akses pengguna Inggris, muncul masalah tautan gambar di Reddit, forum, dokumentasi, dan berbagai halaman web lain tidak bisa ditampilkan
    • Semua gambar pratinjau shader Minecraft hilang, sehingga tidak mungkin mengetahui shader yang dimaksud
    • Di posting lama maupun file README, banyak tautan Imgur masih tersisa sehingga kondisi tidak dapat diakses terus berlanjut

Memilih solusi tingkat jaringan alih-alih VPN

  • Solusi umum adalah memakai VPN, tetapi jika seluruh trafik dialihkan lewat VPN pada lingkungan internet cepat 2.5Gbps, kecepatan akan turun
  • Ada juga masalah kompleksitas pengelolaan karena VPN harus dipasang dan dihubungkan di setiap perangkat
  • Tujuannya adalah solusi tingkat jaringan yang tidak memerlukan konfigurasi klien dan bekerja otomatis di semua perangkat
Iklan

Perancangan arsitektur level jaringan

  • Di lingkungan homelab yang sudah ada, telah digunakan Traefik (reverse proxy), Pi-hole (DNS), dan NixOS (konfigurasi deklaratif)
  • Pada tahap DNS, permintaan i.imgur.com dicegat lalu diteruskan melalui kontainer koneksi VPN (Gluetun)
    • Pi-hole mengembalikan IP Traefik
    • Traefik memeriksa hostname SNI lalu merutekan ke Gluetun
    • Gluetun meneruskan permintaan lewat VPN
    • Nginx di dalam Gluetun mem-proxy ke server Imgur yang sebenarnya
    • Gambar kemudian dikembalikan lagi melalui tunnel

Konfigurasi Nginx dan Gluetun

  • Karena Gluetun hanya menyediakan koneksi VPN, diperlukan Nginx untuk berperan sebagai proxy di dalam jaringan VPN
  • Nginx dikonfigurasi dalam mode TCP stream untuk membaca header SNI dan meneruskan trafik ke i.imgur.com:443
    • TLS handshake berlangsung end-to-end sehingga Nginx tidak melihat data yang telah didekripsi
  • Di Docker Compose, dijalankan dua kontainer (Gluetun dan Nginx)
    • Dengan pengaturan network_mode: "service:gluetun", Nginx berbagi stack jaringan milik Gluetun
    • Semua trafik Nginx otomatis melewati tunnel VPN
Iklan

Integrasi Traefik dan NixOS

  • Traefik menggunakan TCP routing dan TLS passthrough untuk meneruskan permintaan i.imgur.com ke Gluetun
    • TLS tidak diakhiri, hanya header SNI yang diperiksa
  • Di NixOS, stack Docker Compose dijalankan sebagai layanan systemd
    • Agenix digunakan untuk menyimpan kredensial VPN dalam keadaan terenkripsi
    • Repositori dotfiles tetap bisa dibuka ke publik sambil tetap melindungi informasi rahasia

Hasil dan performa

  • Semua perangkat dalam jaringan, termasuk ponsel, laptop, dan perangkat tamu, bisa mengakses gambar Imgur tanpa pengaturan tambahan
  • Pi-hole mencegat DNS, Traefik melakukan routing, dan Gluetun menangani tunneling VPN
  • Hampir tidak ada jeda saat memuat gambar, dan karena hanya trafik Imgur yang melewati VPN, kecepatan trafik umum tetap terjaga
  • Perawatannya sederhana, dan tercipta struktur pembukaan blokir wilayah yang otomatis di lingkungan homelab
  • Konten berbasis Imgur seperti shader Minecraft kini bisa kembali dilihat dengan normal

1 komentar

 
GN⁺ 2025-11-29
Opini Hacker News
  • Di jaringan saya, saya mengatur agar hanya satu router yang mengenali VPN
    Saya memakai box fanless murah dengan Linux dan beberapa port, lalu cukup menyiapkan antarmuka WireGuard sekali saja dengan systemd-networkd
    Dengan begitu, hanya trafik tertentu yang bisa dirutekan lewat VPN, atau bisa juga dibuat SSID/VLAN khusus VPN
    Namun routing berbasis domain bisa agak rumit, jadi kalau perlu saya berencana menambahkan proxy di router yang memungkinkan override DNS lokal
    • Tanpa membuka browser terpisah, ini bisa diselesaikan dengan mudah memakai ekstensi FoxyProxy untuk menetapkan proxy berdasarkan pola URL
    • Saya menaruh splitter VPN terpusat berbasis x-ray/singbox di RPi, lalu menambahkan Tailscale agar bisa diakses dari mana saja
      Ini juga mendukung routing terpisah geografis berbasis aturan, jadi cukup berguna
    • Saya penasaran apa nama produk box Linux fanless itu
  • Saat melihat judul “Geo-Unblocked”, saya kira isinya tentang menyusun sendiri blok IP non-Inggris, ternyata cuma cerita tentang mengalihkan sebagian trafik ke VPN
    • Kalau menjalankan peran ISP sendiri, Anda bisa “berada” di mana pun yang diinginkan
      Sebagai referensi, ada tulisan terkait di blog ini
    • Tapi mengubah alamat WAN itu mirip dengan mengubah skema IP di dalam jaringan, jadi rasanya tidak akan benar-benar berhasil
  • Kadang saya berpikir, “apa perlu sampai sejauh ini hanya untuk sesekali melihat gambar Imgur?”, tapi saat menelusuri materi belakangan ini saya sadar ketergantungan pada Imgur ternyata cukup tinggi
    Saya kesal karena tangkapan layar tidak tampil, dan tulisan ini mungkin jadi dorongan terakhir buat saya
    • Mungkin sekarang terasa berlebihan, tetapi pemerintah tampak makin ingin membatasi akses ke lebih banyak konten, jadi menurut saya bersiap lebih awal adalah langkah yang bijak
    • Imgur dipakai di lebih banyak tempat daripada yang dibayangkan. Misalnya, gambar di situs Core Devices (tim penerus Pebble) juga ada di Imgur
      Pemblokiran seperti ini memang mudah dilewati, tetapi kalau Imgur sampai hilang, banyak situs akan rusak
    • Penyensoran tidak akan berhenti di Imgur
      Jika orang masih bisa menghindari sensor tanpa kehilangan trafik yang berarti, maka penting bahwa server luar negeri tidak perlu tunduk pada regulasi otoriter
      UE juga tampaknya bergerak ke arah serupa, jadi alat untuk menolak sensor harus tersebar luas
    • Saya juga merasa bypass-nya lebih sulit dari dugaan, tetapi Veepn versi gratis yang diatur ke Singapura ternyata bekerja, meski lambat
  • Cara seperti ini tampaknya juga bisa dipakai untuk melewati pembatasan ‘rumah yang sama’ milik Netflix atau Spotify
    Jika disiapkan di Raspberry Pi atau mini PC bersama PiHole, trafik rumah keluarga bisa ditunnel ke IP saya
  • Di UniFi, ini juga bisa diterapkan dengan mudah lewat policy-based routing (PBR)
    Tambahkan file konfigurasi WireGuard di aplikasi seluler, lalu di policy engine tentukan agar hanya domain tertentu dirutekan ke antarmuka VPN
    • Kekurangannya, kalau IPv6 aktif, trafik justru akan melewati VPN
      Saya sempat mengatasi sementara dengan membuat aturan firewall panjang untuk memblokir rentang IPv6, tetapi situs berbasis Cloudflare jadi bermasalah
      Semoga UniFi segera mendukung IPv6 WireGuard
  • Pemblokiran regional Imgur di Inggris bertahan lewat cookie, jadi menyalakan VPN sebentar saja tidak cukup
    Reddit bahkan lebih parah: profil pengguna yang pernah mengunggah postingan NSFW pun tidak bisa dilihat
  • Saya pernah penasaran apakah ada cara mengirim hanya domain tertentu lewat VPN sementara sisanya tetap sebagai trafik biasa
    Dengan begitu semuanya bisa berjalan otomatis tanpa repot menyalakan dan mematikan VPN setiap kali
    Misalnya ini akan berguna untuk media sosial yang memerlukan verifikasi usia, aplikasi yang diblokir per negara (seperti Spotify), atau sensor pada situs berita
    • Itu disebut split tunneling berbasis domain
      Biasanya hanya diterapkan pada permintaan HTTP/S, tetapi vendor seperti ZScaler memperluasnya ke protokol lain
      Di Tailscale, fitur App Connector menjalankan peran tersebut
    • Pada dasarnya, tulisan itu sendiri sudah menerapkan konfigurasi seperti itu
  • Saya juga menyiapkannya secara serupa memakai fitur PBR di router OpenWRT
    Perlu sekitar 15 menit untuk mengatur agar hanya domain tertentu yang lewat VPN, dan hasilnya bekerja sangat baik
  • Saya biasanya menangani masalah seperti ini dengan file PAC proxy
    Di lingkungan seperti Wi-Fi pesawat yang memblokir VPN, SSH biasanya masih diizinkan, jadi saya menggabungkan dynamic forwarding dengan file PAC agar hiburan dalam pesawat atau situs pelacakan terhubung langsung
    Ini bekerja cukup baik