Skip to content
Intermediate / 8 min read

Cara Mengonfigurasi Proxy IPRoyal Shadowsocks di Linux untuk Trafik CLI dan Browser yang Berfokus pada Privasi

Siapkan IPRoyal Shadowsocks di Linux dengan shadowsocks-libev, jalankan sebagai layanan systemd, verifikasi IP keluar Anda, dan rutekan trafik curl, Git, Python, serta browser melalui proxy SOCKS5 lokal.

Linux SOCKS5 Shadowsocks Privasi/Anonimitas

Ringkasan

Shadowsocks adalah protokol proxy terenkripsi berbasis SOCKS5. Di Linux, klien Shadowsocks lokal mendengarkan di 127.0.0.1:1080, mengenkripsi trafik, dan meneruskannya ke endpoint Shadowsocks jarak jauh. Ini memungkinkan Anda merutekan alat CLI tertentu, browser, atau trafik sistem melalui endpoint IPRoyal Shadowsocks tanpa mengubah seluruh tumpukan jaringan Anda.

Tutorial ini menunjukkan cara mengonfigurasi proxy IPRoyal Shadowsocks di Linux menggunakan shadowsocks-libev, menjalankan klien sebagai layanan systemd, memverifikasi IP keluar Anda, dan merutekan alat umum seperti curl, git, Python, dan Firefox melalui listener SOCKS5 lokal. IPRoyal digunakan sebagai contoh penyedia karena menawarkan proxy residensial, ISP, dan pusat data dengan dukungan HTTP, SOCKS5, dan Shadowsocks. Jika Anda menggunakan penyedia lain, ganti kredensial dan detail server dengan milik Anda sendiri.

Prasyarat

  • Distribusi Linux dengan systemd, seperti Ubuntu, Debian, Fedora, Arch Linux, atau server atau desktop yang kompatibel.
  • Akses sudo atau root untuk instalasi dan manajemen layanan.
  • Akun IPRoyal dengan kredensial Shadowsocks: alamat server, port server, kata sandi, dan metode enkripsi.
  • Keakraban dasar dengan terminal dan editor teks seperti nano atau vim.
  • Opsional: curl untuk pengujian.

Bagaimana IPRoyal Shadowsocks cocok dalam pengaturan Linux

Shadowsocks bukan proxy HTTP. Ini membuat terowongan terenkripsi ke endpoint jarak jauh dan mengekspos proxy SOCKS5 lokal. Aplikasi Anda harus dikonfigurasi untuk menggunakan proxy SOCKS5 lokal tersebut, atau Anda dapat secara selektif merutekan trafik melaluinya.

Alur umum:

  1. Aplikasi terhubung ke 127.0.0.1:1080.
  2. Klien Shadowsocks lokal mengenkripsi permintaan.
  3. Permintaan terenkripsi dikirim ke endpoint IPRoyal Shadowsocks.
  4. Endpoint meneruskan permintaan ke situs tujuan.
  5. Respons kembali melalui terowongan yang sama.

Karena listener lokal adalah SOCKS5, Anda dapat menggunakannya dengan alat yang mendukung SOCKS5 atau socks5h (SOCKS5 dengan resolusi DNS jarak jauh). Gunakan socks5h ketika Anda ingin kueri DNS diselesaikan melalui proxy alih-alih di mesin lokal Anda.

Langkah-langkah

Langkah 1: Instal klien Shadowsocks di Linux

Instal shadowsocks-libev, yang menyediakan klien ss-local dan bekerja baik dengan systemd.

Untuk Debian atau Ubuntu:

sudo apt update
sudo apt install shadowsocks-libev

Untuk Fedora atau distribusi keluarga RHEL:

sudo dnf install shadowsocks-libev

Untuk Arch Linux:

sudo pacman -S shadowsocks-libev

Jika distribusi Anda tidak menyediakan paket shadowsocks-libev, Anda dapat menginstal shadowsocks-rust dari manajer paket Anda atau membangunnya dari sumber. Konsep konfigurasi di bawah ini sama, meskipun nama biner mungkin berbeda.

Langkah 2: Buat file environment IPRoyal Shadowsocks

Buat file environment yang berisi detail endpoint IPRoyal Shadowsocks. Ganti nilai placeholder dengan server, port, kata sandi, dan metode yang tepat dari dasbor IPRoyal Anda.

sudo mkdir -p /etc/iproyal
sudo nano /etc/iproyal/shadowsocks.env

Tambahkan nilai berikut:

SS_SERVER=YOUR_IPROYAL_SERVER
SS_PORT=8388
SS_PASSWORD=YOUR_IPROYAL_PASSWORD
SS_METHOD=aes-256-gcm
SS_LOCAL_ADDRESS=127.0.0.1
SS_LOCAL_PORT=1080

Catatan:

  • Gunakan metode enkripsi persis seperti yang disediakan oleh IPRoyal. Metode umum meliputi aes-256-gcm, chacha20-ietf-poly1305, dan aes-128-gcm, tetapi endpoint harus mendukung metode yang Anda pilih.
  • Jika IPRoyal memberi Anda endpoint SOCKS5 alih-alih endpoint Shadowsocks, gunakan konfigurasi klien SOCKS5 atau alat seperti ProxyChains alih-alih Shadowsocks.
  • Jaga agar file hanya dapat dibaca oleh root jika berisi kredensial:
sudo chmod 600 /etc/iproyal/shadowsocks.env

Langkah 3: Uji konfigurasi di foreground

Sebelum membuat layanan, jalankan klien di foreground untuk mengonfirmasi bahwa kredensial dan jalur jaringan berfungsi.

sudo ss-local -s YOUR_IPROYAL_SERVER -p 8388 -b 127.0.0.1 -l 1080 -k YOUR_IPROYAL_PASSWORD -m aes-256-gcm -u -v

Biarkan terminal itu terbuka. Di terminal kedua, uji listener SOCKS5 lokal:

curl --socks5-hostname 127.0.0.1:1080 https://ifconfig.me

Jika perintah mengembalikan alamat IP yang berbeda dari IP publik normal Anda, terowongan berfungsi. Tekan Ctrl+C di terminal pertama untuk menghentikan klien foreground.

Langkah 4: Jalankan klien Shadowsocks sebagai layanan systemd

Buat unit systemd agar klien mulai saat boot dan memulai ulang setelah kegagalan.

sudo nano /etc/systemd/system/iproyal-shadowsocks.service

Tambahkan:

[Unit]
Description=IPRoyal Shadowsocks local client
After=network-online.target
Wants=network-online.target

[Service]
EnvironmentFile=/etc/iproyal/shadowsocks.env
ExecStart=/usr/bin/ss-local -s ${SS_SERVER} -p ${SS_PORT} -b ${SS_LOCAL_ADDRESS} -l ${SS_LOCAL_PORT} -k ${SS_PASSWORD} -m ${SS_METHOD} -u
Restart=on-failure
RestartSec=5
LimitNOFILE=32768

[Install]
WantedBy=multi-user.target

Sesuaikan path ExecStart jika biner ss-local Anda berada di tempat lain. Anda dapat menemukannya dengan:

command -v ss-local

Jika penyedia Anda tidak mendukung relay UDP, hapus -u dari baris ExecStart.

Muat ulang systemd dan mulai layanan:

sudo systemctl daemon-reload
sudo systemctl enable --now iproyal-shadowsocks
sudo systemctl status iproyal-shadowsocks

Langkah 5: Verifikasi listener SOCKS5 lokal dan IP keluar

Periksa bahwa klien mendengarkan secara lokal:

ss -ltnp | grep 1080

Lalu verifikasi IP keluar melalui proxy:

curl --socks5-hostname 127.0.0.1:1080 https://ifconfig.me
curl --socks5-hostname 127.0.0.1:1080 https://ipinfo.io/ip

Bandingkan hasilnya dengan koneksi langsung Anda:

curl https://ifconfig.me

Jika alamatnya berbeda, klien lokal meneruskan trafik melalui endpoint IPRoyal Shadowsocks. Jika sama, lihat bagian pemecahan masalah di bawah.

Langkah 6: Rutekan alat CLI melalui proxy SOCKS5 lokal

Gunakan listener SOCKS5 lokal dengan alat yang mendukung SOCKS5. Utamakan socks5h agar resolusi DNS terjadi melalui proxy.

Untuk curl:

curl --socks5-hostname 127.0.0.1:1080 https://httpbin.org/ip

Untuk git:

git config --global http.proxy socks5h://127.0.0.1:1080
git config --global https.proxy socks5h://127.0.0.1:1080

Untuk menghapus pengaturan proxy Git tersebut nanti:

git config --global --unset http.proxy
git config --global --unset https.proxy

Untuk Python requests, instal dukungan SOCKS dan gunakan proxy:

python3 -m pip install 'requests[socks]'
import requests

proxies = {
    'http': 'socks5h://127.0.0.1:1080',
    'https': 'socks5h://127.0.0.1:1080',
}

response = requests.get('https://httpbin.org/ip', proxies=proxies, timeout=30)
print(response.json())

Untuk wget, gunakan wrapper yang kompatibel dengan SOCKS5 atau variabel environment jika didukung. curl dan Python biasanya memberikan perilaku yang paling jelas untuk pengujian SOCKS5.

Langkah 7: Konfigurasikan proxy browser atau desktop

Untuk Firefox, buka Pengaturan, cari Pengaturan Jaringan, pilih Konfigurasi proxy manual, dan atur:

  • Host SOCKS: 127.0.0.1
  • Port: 1080
  • SOCKS v5: dipilih
  • Proxy DNS saat menggunakan SOCKS v5: diaktifkan

Untuk lingkungan desktop GNOME, Anda dapat mengatur proxy sistem secara manual:

gsettings set org.gnome.system.proxy mode 'manual'
gsettings set org.gnome.system.proxy.socks host '127.0.0.1'
gsettings set org.gnome.system.proxy.socks port 1080

Untuk kembali ke koneksi langsung:

gsettings set org.gnome.system.proxy mode 'none'

Tidak semua aplikasi menghormati pengaturan proxy sistem. Jika ragu, konfigurasikan proxy langsung di aplikasi atau gunakan wrapper yang mendukung SOCKS5.

Langkah 8: Konfirmasi perilaku DNS dan kebocoran

Jalankan permintaan yang melaporkan resolver dan IP:

curl --socks5-hostname 127.0.0.1:1080 https://ipinfo.io/json

Periksa apakah IP yang dilaporkan milik endpoint proxy. Karena socks5h mengirim hostname ke proxy untuk resolusi, kueri DNS lokal dihindari untuk permintaan tersebut. Jika Anda menggunakan socks5:// sebagai gantinya, hostname mungkin diselesaikan secara lokal terlebih dahulu, yang dapat membocorkan informasi DNS.

Pemecahan masalah

Layanan mulai tetapi IP tidak berubah

  • Konfirmasi bahwa perintah pengujian Anda menggunakan --socks5-hostname atau socks5h://, bukan koneksi langsung.
  • Periksa log layanan:
journalctl -u iproyal-shadowsocks -e
  • Verifikasi bahwa alamat server, port, kata sandi, dan metode enkripsi sama persis dengan dasbor IPRoyal.
  • Uji dengan tujuan berbeda seperti https://httpbin.org/ip untuk menyingkirkan perilaku khusus situs.

ss-local gagal dengan error autentikasi atau metode

  • Metode enkripsi harus cocok dengan endpoint jarak jauh. Jika IPRoyal menyediakan chacha20-ietf-poly1305, jangan gunakan aes-256-gcm.
  • Periksa spasi di akhir atau karakter tersembunyi di kolom kata sandi.
  • Jika kata sandi Anda berisi karakter khusus, kutip dengan benar di file environment atau gunakan file konfigurasi yang didukung klien Anda.
  • Jalankan klien dalam mode verbose untuk melihat error persisnya:
sudo ss-local -s YOUR_IPROYAL_SERVER -p 8388 -b 127.0.0.1 -l 1080 -k YOUR_IPROYAL_PASSWORD -m aes-256-gcm -u -v

Koneksi ditolak pada 127.0.0.1:1080

  • Layanan lain mungkin sudah menggunakan port 1080. Periksa dengan:
sudo ss -ltnp | grep 1080
  • Ubah SS_LOCAL_PORT di file environment ke nilai lain, seperti 1081, mulai ulang layanan, dan perbarui perintah klien Anda.
  • Konfirmasi bahwa layanan systemd benar-benar berjalan:
systemctl is-active iproyal-shadowsocks

Timeout atau throughput lambat

  • Coba endpoint atau region IPRoyal yang berbeda jika dasbor Anda menawarkan beberapa lokasi.
  • Uji dengan mode hanya TCP dengan menghapus -u dari baris ExecStart jika endpoint tidak mendukung UDP.
  • Periksa firewall lokal dan kebijakan jaringan Anda. Beberapa jaringan perusahaan atau kampus memblokir port keluar non-standar.
  • Kurangi nilai timeout hanya untuk pengujian; timeout yang sangat rendah dapat menyebabkan kegagalan palsu pada tautan lambat.

Trafik browser tidak menggunakan proxy

  • Di Firefox, pastikan SOCKS v5 dipilih dan Proxy DNS saat menggunakan SOCKS v5 diaktifkan.
  • Jika menggunakan pengaturan GNOME, ingat bahwa hanya sebagian aplikasi yang menghormati proxy sistem.
  • Uji tujuan yang sama dengan curl --socks5-hostname untuk mengonfirmasi listener SOCKS5 lokal bekerja secara independen dari browser.

Ringkasan

Anda mengonfigurasi endpoint IPRoyal Shadowsocks di Linux dengan menginstal shadowsocks-libev, membuat konfigurasi klien lokal, menjalankannya sebagai layanan systemd, dan memverifikasi IP keluar melalui listener SOCKS5 lokal. Anda juga mempelajari cara merutekan trafik curl, Git, Python requests, dan browser melalui 127.0.0.1:1080, serta cara memecahkan masalah autentikasi, port, DNS, dan timeout yang umum. IPRoyal adalah salah satu penyedia yang perlu dipertimbangkan ketika Anda membutuhkan proxy residensial, ISP, atau pusat data dengan dukungan SOCKS5 dan bergaya Shadowsocks; selalu konfirmasi protokol dan kredensial yang tepat di dasbor penyedia Anda sebelum mengonfigurasi klien.