Mengglobalkan Proksi SOCKS di Linux
Aditya Phra•
Masalah yang aku jumpai saat memakai proksi SOCKS di Linux, agar bisa berjalan di seluruh aplikasi itu sangatlah ribet, harus dikonfigurasi di setiap aplikasi, konfigurasinya berbeda-beda pula dan juga tidak semua aplikasi bisa diatur agar bisa pakai proksi SOCKS.
Solusinya itu pakai aplikasi sing-box karena ada fitur yang kucari selama ini, yaitu bisa mengglobalkan proksi SOCKS di Linux.
Instal sing-box
Kalau kamu memakai sistem operasi Arch Linux seperti aku, sing-box bisa diinstal dari AUR:
paru -S sing-box
atau pakai versi yang sudah dikompilkan:
paru -S sing-box-bin
Kalau kamu pengguna distro lain, baca tutorial instal dari web resmi sing-box.
Konfigurasi sing-box
Alasan proksi SOCKS bisa berjalan di seluruh aplikasi itu karena memanfaatkan fitur TUN di Linux. Kuncinya itu, misal rekues dari browser dikirim ke TUN (inbound) kemudian diproses oleh sing-box baru diteruskan ke server proksi SOCKS (outbound).
Lokasi konfigurasi utama sing-box berada di /etc/sing-box/config.json.
Edit file itu, salin tempel konfigurasi di bawah yang sudah aku optimasi untuk penggunaan proksi SOCKS agar bisa berjalan di seluruh aplikasi. Kemudian sesuaikan dengan server proksi SOCKS milikmu, bagian username dan password bisa dihilangkan kalau server proksi SOCKS-mu tidak menerapkan autentikasi.
{
"log": {
"level": "info"
},
"dns": {
"servers": [
{
"type": "https",
"tag": "cloudflare",
"detour": "socks-out",
"domain_resolver": "local",
"server": "cloudflare-dns.com",
"server_port": 443
},
{
"type": "dhcp",
"tag": "local"
}
],
"final": "cloudflare",
"strategy": "ipv4_only"
},
"inbounds": [
{
"type": "tun",
"address": "172.19.0.1/30",
"auto_route": true
}
],
"outbounds": [
{
"type": "socks",
"tag": "socks-out",
"server": "192.168.43.1",
"server_port": 1080,
"version": "5",
"username": "adityaphra",
"password": "mypassword"
},
{
"type": "direct",
"tag": "direct"
}
],
"route": {
"rules": [
{
"port": 53,
"action": "hijack-dns"
},
{
"ip_is_private": true,
"outbound": "direct"
}
],
"final": "socks-out",
"auto_detect_interface": true,
"default_domain_resolver": "local"
}
}
Hidupkan sing-box untuk mengaktifkan proksi SOCKS:
sudo systemctl start sing-box
Setelah hidup, pastikan kalau sudah bisa dengan melihat log sing-box:
journalctl -u sing-box --output cat -e
Versi log realtime-nya:
journalctl -u sing-box --output cat -f
Biar bisa hidup setiap habis boot:
sudo systemctl enable sing-box
Kalau kamu ingin tahu penjelasan setiap bagian dari konfigurasi tadi, aku rekomendasikan untuk baca-baca di web dokumentasi sing-box.