Physical Address
304 North Cardinal St.
Dorchester Center, MA 02124
Physical Address
304 North Cardinal St.
Dorchester Center, MA 02124

Menggunakan SOCKS5 proxy di level aplikasi memang mudah, tetapi pendekatan ini memiliki kelemahan mendasar: traffic dari aplikasi yang tidak mendukung konfigurasi proxy akan tetap keluar melalui jalur normal. Solusi yang lebih solid adalah membangun transparent proxy — sebuah gateway yang secara transparan mengarahkan semua traffic dari perangkat klien melewati proxy, tanpa konfigurasi tambahan di sisi aplikasi.
Artikel ini membahas cara membangun transparent proxy berbasis Sing-box di atas LXC Debian di Proxmox. LXC bertindak sebagai router sekaligus proxy gateway: menerima traffic dari klien di jaringan lokal, mengenkapsulasi seluruhnya melalui antarmuka TUN, lalu meneruskannya ke SOCKS5 proxy eksternal. Hasilnya, semua perangkat yang mengarahkan gateway-nya ke LXC ini akan otomatis menggunakan IP dari provider proxy.
[Klien (Windows/Linux/dll)]
|
| (gateway → IP LXC eth1)
↓
[LXC Debian — Router + Sing-box]
eth0 → Internet (uplink utama)
eth1 → Jaringan lokal klien (vmbr40)
tun0 → Antarmuka virtual Sing-box
|
↓
[SOCKS5 Proxy Eksternal]
|
↓
[Internet (dengan IP Proxy)]
LXC secara default tidak memiliki akses ke /dev/net/tun yang dibutuhkan Sing-box untuk membuat antarmuka virtual. Izin ini harus diberikan dari host Proxmox.
Buka shell Proxmox Host, lalu edit file konfigurasi LXC (ganti 100 dengan ID container yang sesuai):
nano /etc/pve/lxc/100.conf
Tambahkan dua baris berikut di bagian paling bawah file:
lxc.cgroup2.devices.allow: c 10:200 rwm
lxc.mount.entry: /dev/net/tun dev/net/tun none bind,create=file
Penjelasan:
c 10:200 rwm — memberikan izin read/write/mknod pada device character 10:200, yaitu /dev/net/tun.bind,create=file — me-mount /dev/net/tun dari host ke dalam namespace LXC.Restart LXC dari panel Proxmox agar perubahan pada konfigurasi cgroup dan mount diterapkan.
Langkah ini mengubah LXC Debian menjadi router yang bisa meneruskan traffic dari klien ke internet.
Buka konsol LXC Debian, lalu edit /etc/sysctl.conf:
nano /etc/sysctl.conf
Cari baris berikut dan hapus tanda # di depannya:
net.ipv4.ip_forward=1
Terapkan perubahan tanpa perlu reboot:
sysctl -p
apt update
apt install iptables iptables-persistent -y
Pilih Yes pada kedua pop-up yang muncul saat instalasi
iptables-persistentuntuk menyimpan rule yang ada saat ini.
Buat rule NAT agar traffic dari jaringan lokal dapat keluar melalui eth0 (antarmuka uplink ke internet), lalu simpan agar persisten setelah reboot:
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
netfilter-persistent save
Sing-box bertugas sebagai transparent proxy: mencegat semua traffic termasuk DNS, membypass traffic ke IP privat, dan melempar sisanya ke SOCKS5 proxy eksternal.
bash <(curl -fsSL https://sing-box.app/deb-install.sh)
Script ini mendeteksi arsitektur sistem, menambahkan repository resmi Sing-box, dan menginstall versi terbaru.
nano /etc/sing-box/config.json
Hapus semua konten bawaan, lalu tempelkan konfigurasi berikut. Konfigurasi ini kompatibel dengan Sing-box versi 1.13+:
{
"log": {
"level": "info"
},
"dns": {
"servers": [
{
"type": "tcp",
"tag": "dns-remote",
"server": "8.8.8.8",
"detour": "proxy"
},
{
"type": "local",
"tag": "dns-local"
}
]
},
"inbounds": [
{
"type": "tun",
"tag": "tun-in",
"interface_name": "tun0",
"address": [
"172.19.0.1/30"
],
"auto_route": true,
"strict_route": true
}
],
"outbounds": [
{
"type": "socks",
"tag": "proxy",
"server": "your-proxy-server.com",
"server_port": 12345,
"version": "5",
"username": "your-username",
"password": "your-password"
},
{
"type": "direct",
"tag": "direct"
}
],
"route": {
"default_domain_resolver": "dns-local",
"rules": [
{
"action": "sniff"
},
{
"protocol": "dns",
"action": "hijack-dns"
},
{
"ip_is_private": true,
"outbound": "direct"
}
],
"auto_detect_interface": true,
"final": "proxy"
}
}
Sesuaikan nilai berikut dengan kredensial SOCKS5 yang dimiliki:
| Field | Keterangan |
|---|---|
server | Hostname atau IP SOCKS5 proxy |
server_port | Port SOCKS5 proxy |
username | Username autentikasi |
password | Password autentikasi |
Penjelasan konfigurasi kunci:
tun inbound — Membuat antarmuka virtual tun0. auto_route mengatur routing tabel agar semua traffic masuk ke TUN. strict_route mencegah kebocoran traffic yang bypass TUN.dns-remote — DNS resolver yang querynya dikirim melalui proxy, memastikan tidak ada DNS leak ke ISP lokal.hijack-dns — Mencegat semua query DNS dari klien (termasuk yang mengarah ke 8.8.8.8), memproses ulang lewat Sing-box.ip_is_private — Traffic ke IP privat (RFC 1918) dikirim langsung tanpa proxy, menjaga aksesibilitas jaringan lokal.final: "proxy" — Semua traffic yang tidak cocok dengan rule di atas diteruskan ke SOCKS5.Sebelum menjalankan layanan, pastikan tidak ada error sintaks pada config:
sing-box check -c /etc/sing-box/config.json
Jika tidak ada output error, konfigurasi valid.
systemctl enable sing-box
systemctl restart sing-box
Verifikasi status layanan:
systemctl status sing-box
Pastikan statusnya active (running) dan tidak ada baris error atau failed di log.
Arahkan perangkat klien yang berada di segmen jaringan yang sama dengan eth1 LXC (misalnya jaringan vmbr40).
| Parameter | Nilai |
|---|---|
| IP Address | Bebas dalam satu segmen vmbr40 (contoh: 192.168.40.10) |
| Subnet Mask | 255.255.255.0 |
| Default Gateway | IP eth1 dari LXC Debian (contoh: 192.168.40.1) |
| DNS Server | 8.8.8.8 (akan di-hijack Sing-box, bersifat dekoratif) |
Catatan: DNS server yang diisi di klien tidak berpengaruh pada privasi — Sing-box akan mengintersepsi semua query DNS dan meneruskannya melalui proxy. Isi
8.8.8.8sebagai nilai valid agar konfigurasi tidak error.
Setelah pengaturan disimpan, verifikasi dengan mengakses situs seperti https://ipinfo.io dari browser klien — IP yang tampil seharusnya adalah IP dari provider SOCKS5, bukan IP ISP lokal.
# --- Proxmox Host ---
nano /etc/pve/lxc/100.conf # Tambahkan izin TUN
# --- LXC Debian: Routing & NAT ---
nano /etc/sysctl.conf # Aktifkan ip_forward
sysctl -p # Terapkan sysctl
apt update && apt install iptables iptables-persistent -y
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
netfilter-persistent save
# --- LXC Debian: Sing-box ---
bash <(curl -fsSL https://sing-box.app/deb-install.sh)
nano /etc/sing-box/config.json # Paste dan sesuaikan konfigurasi
sing-box check -c /etc/sing-box/config.json
systemctl enable sing-box
systemctl restart sing-box
systemctl status sing-box
| Gejala | Kemungkinan Penyebab | Solusi |
|---|---|---|
sing-box gagal start | Error pada config.json | Jalankan sing-box check dan periksa log dengan journalctl -u sing-box |
| TUN device tidak tersedia | Izin LXC belum diterapkan | Pastikan dua baris di 100.conf sudah benar, restart LXC |
| Klien tidak bisa akses internet | IP forwarding tidak aktif | Cek dengan sysctl net.ipv4.ip_forward, harus bernilai 1 |
| IP yang terdeteksi masih IP lokal | Gateway klien salah | Pastikan default gateway mengarah ke IP eth1 LXC |
| DNS leak (query ke ISP lokal) | strict_route tidak aktif | Pastikan "strict_route": true ada di konfigurasi inbound TUN |
Artikel ini disusun berdasarkan pengujian langsung pada lingkungan berikut:
vmbr40Konfigurasi SOCKS5 dalam artikel ini menggunakan placeholder generik. Sesuaikan nilai server, server_port, username, dan password dengan kredensial provider proxy yang digunakan.
Disclaimer: Artikel ini ditujukan untuk keperluan privasi jaringan yang sah, seperti melindungi traffic dari surveillance ISP atau mengakses layanan dengan pembatasan geografis. Penggunaan transparent proxy untuk tujuan yang melanggar hukum atau ketentuan layanan pihak ketiga sepenuhnya menjadi tanggung jawab pengguna.