Tutorial ini akan menunjukkan cara mengatur server proxy Shadowsocks di Ubuntu. Shadowsocks adalah proxy Socks5 yang ringan, cepat, dan aman untuk melewati sensor Internet. Kita akan belajar cara mengatur sisi server dan cara mengkonfigurasi klien desktop di Ubuntu. Ada banyak implementasi Shadowsocks, tutorial ini menunjukkan cara menggunakan Shadowsocks-libev, karena
- Ditulis dalam bahasa C, sangat cepat bahkan pada mesin kelas bawah.
- Terpelihara dengan baik.
- Ini adalah implementasi yang paling kaya fitur. TCP fast open, multiuser, management API, redirect mode, tunnel mode, UDP relay, AEAD cipher, dan plugins semuanya didukung.
Prasyarat
Untuk menyelesaikan tutorial ini, Anda memerlukan:
- VPS (Server Pribadi Virtual). Saya merekomendasikan Vultr. Mereka menawarkan VPS performa tinggi memori 512 juta hanya dengan $2,5 per bulan, yang sempurna untuk server proxy pribadi Anda.
- Kemudian instal Ubuntu di VPS Anda.
Langkah 1:Instal Server Shadowsocks-libev di Ubuntu
SSH ke server Ubuntu jarak jauh Anda. Shadowsocks-libev
disertakan dalam repositori Ubuntu sejak 17.04, sehingga Anda dapat menginstalnya dengan:
sudo apt update sudo apt install shadowsocks-libev
Pengguna Ubuntu 16.04 dapat menginstalnya dari PPA dengan menjalankan perintah berikut. software-properties-common
diperlukan jika Anda ingin menginstal perangkat lunak dari PPA. Mungkin tidak ada di server Ubuntu Anda.
sudo apt install software-properties-common -y sudo add-apt-repository ppa:max-c-lv/shadowsocks-libev -y sudo apt update sudo apt install shadowsocks-libev
Perpustakaan natrium crypto (libsodium) akan dipasang bersama dengan shadowsocks-libev. Ini adalah persyaratan jika Anda ingin menggunakan metode enkripsi ChaCha20-Poly1305 yang aman dan cepat. Setelah terinstal, edit file konfigurasi.
sudo nano /etc/shadowsocks-libev/config.json
Isi default file adalah sebagai berikut.
{ "server":["::1", "127.0.0.1"], "mode":"tcp_and_udp", "server_port":8388, "local_port":1080, "password":"ACRrobo9ymXb", "timeout":60, "method":"chacha20-ietf-poly1305" }
Kita perlu mengubah 127.0.0.1
ke 0.0.0.0
, jadi server Shadowsocks-libev akan mendengarkan alamat IP publik. Kemudian ubah server_port
ke nomor port lain seperti 8888. Kata sandi dibuat secara acak, sehingga Anda dapat membiarkannya apa adanya.
Simpan dan tutup file. Kemudian mulai ulang layanan shadowsocks-libev agar perubahan diterapkan.
sudo systemctl restart shadowsocks-libev.service
Aktifkan mulai otomatis saat boot.
sudo systemctl enable shadowsocks-libev.service
Periksa statusnya. Pastikan itu berjalan.
systemctl status shadowsocks-libev.service
Jika Anda melihat kesalahan berikut.
This system doesn't provide enough entropy to quickly generate high-quality random numbers. The service will not start until enough entropy has been collected.
Anda dapat memperbaiki kesalahan ini dengan menginstal rng-tools
.
sudo apt-get install rng-tools
Kemudian jalankan
sudo rngd -r /dev/urandom
Sekarang Anda dapat memulai layanan Shadowsocks-libev.
Langkah 2:Konfigurasi Firewall
Jika Anda menggunakan firewall iptables di server Anda, maka Anda perlu mengizinkan lalu lintas ke port TCP dan UDP yang sedang didengarkan Shadowsocks. Misalnya, jika port 8888 sedang digunakan oleh Shadowsocks, jalankan perintah berikut:
sudo iptables -I INPUT -p tcp --dport 8888 -j ACCEPT sudo iptables -I INPUT -p udp --dport 8888 -j ACCEPT
Jika Anda menggunakan firewall UFW, jalankan perintah berikut:
sudo ufw allow 8888
Jika Anda menggunakan AWS atau Google Cloud, Anda perlu mengonfigurasi firewall di panel kontrol berbasis web.
Langkah 3:Instal dan Konfigurasi Klien Shadowsocks-libev
Desktop Ubuntu
shadowsocks-libev
paket berisi perangkat lunak server dan perangkat lunak klien. Di desktop Ubuntu 20.04, 18.04, jalankan perintah berikut untuk menginstal Shadowsocks-libev.
sudo apt update sudo apt install shadowsocks-libev
Di desktop Ubuntu 16.04, jalankan perintah berikut untuk menginstal Shadowsocks-libev.
sudo add-apt-repository ppa:max-c-lv/shadowsocks-libev -y sudo apt update sudo apt install shadowsocks-libev
Shadowsocks-libev (server) akan secara otomatis mulai setelah diinstal. Anda harus menghentikan server Shadowsocks di desktop Ubuntu.
sudo systemctl stop shadowsocks-libev
Juga, nonaktifkan mulai otomatis saat boot.
sudo systemctl disable shadowsocks-libev
Biner klien Shadowsocks diberi nama ss-local
. Ada unit layanan systemd template untuknya: /lib/systemd/system/[email protected]
. Sebelum memulai klien, kita perlu membuat file konfigurasi sisi klien. Kita dapat menyalin konfigurasi server Shadowsocks-libev ke file konfigurasi klien.
sudo cp /etc/shadowsocks-libev/config.json /etc/shadowsocks-libev/location-of-your-server.json
Anda dapat mengganti location-of-your-server
dengan sesuatu seperti SFO, LAX. Kemudian edit file konfigurasi klien.
sudo nano /etc/shadowsocks-libev/location-of-your-server.json
Ubah alamat server ke alamat IP publik server Anda, dan tambahkan baris berikut untuk memberi tahu klien agar mendengarkan di 127.0.0.1.
"local_address":"127.0.0.1",
Jadi file konfigurasi klien akan terlihat seperti ini:
{ "server":"your-server-ip-address", "mode":"tcp_and_udp", "server_port":8888, "local_address":"127.0.0.1", "local_port":1080, "password":"ACRrobo9ymXb", "timeout":60, "method":"chacha20-ietf-poly1305" }
Simpan dan tutup file. Kemudian kita dapat memulai klien dengan:
sudo systemctl start [email protected]location-of-your-server.service
Dan aktifkan mulai otomatis saat boot.
sudo systemctl enable [email protected]location-of-your-server.service
Periksa statusnya. Pastikan itu berjalan.
systemctl status [email protected]location-of-your-server.service
Sekarang proses ss-local mendengarkan 127.0.0.1:1080 di desktop Ubuntu Anda dan terhubung ke server Shadowsocks Anda.
Desktop Windows
Pengguna Windows dapat mengunduh klien Shadowsocks ini. Setelah diinstal, Anda dapat menambahkan server baru di perangkat lunak klien. Tentukan alamat IP server, port dan kata sandi. Klik Apply
tombol
Jika Anda memiliki beberapa server proxy, Anda dapat mengklik tombol Add
tombol untuk menambahkan lebih banyak server proxy. Perhatikan bahwa Anda hanya menggunakan satu server proxy dalam satu waktu.
Langkah 4:Konfigurasi Browser Web untuk Menggunakan Proksi Socks
Untuk membuat program Anda menggunakan proksi kaus kaki, program tersebut harus mendukung proksi kaus kaki. Program seperti Firefox, Google Chrome dan Dropbox memungkinkan pengguna untuk menggunakan proxy. Saya akan menunjukkan cara mengkonfigurasi Firefox dan Google Chrome.
Firefox
Di Firefox, buka Edit> Preferensi> Umum (atau Alat -> Opsi -> Umum ). Kemudian gulir ke bawah ke bawah dan klik Setelan di Proxy Jaringan . Di Setelan Koneksi jendela, pilih konfigurasi proxy manual . Kemudian pilih SOCKS v5 karena Shadowsocks adalah proxy Socks5. Masukkan 127.0.0.1
di bidang SOCKS Host dan 1080
di bidang pelabuhan. Pastikan DNS Proksi saat menggunakan SOCKS v5 diaktifkan. Klik Oke untuk menerapkan modifikasi ini.
Google Chrome
Meskipun Anda dapat mengonfigurasi proxy untuk Google Chrome dan browser Chromium dari baris perintah, sebaiknya pasang ekstensi Proxy SwitchyOmega untuk mengelola proxy.
Setelah ekstensi dipasang di Google Chrome, konfigurasikan server proxy sebagai berikut:
- Pilih
SOCKS5
protokol. - Setel
127.0.0.1
sebagai alamat server. - Setel
1080
sebagai nomor port.
Terapkan perubahan. Kemudian klik ikon ekstensi di sudut kanan atas dan klik Proxy SwithyOmega
.
Secara default, SwithyOmega menggunakan pengaturan proxy sistem operasi. Kita perlu mengubahnya dari system proxy
ke proxy
.
Sekarang proxy Anda seharusnya berfungsi.
Langkah 5:Uji Kebocoran DNS
Pergi ke dnsleaktest.com. Anda akan melihat alamat IP server Shadowsocks Anda, yang menunjukkan bahwa proxy Anda berfungsi.
Klik tes Standar. Pastikan ISP lokal Anda tidak ada dalam hasil pengujian.
Proxy di Baris Perintah
Agar program baris perintah Anda menggunakan proxy, Anda dapat menginstal tsocks
.
sudo apt install tsocks
Kemudian edit file konfigurasi.
sudo nano /etc/tsocks.conf
Temukan baris berikut:
server = 192.168.0.1
Ubah ke
server = 127.0.0.1
Simpan dan tutup file. Sekarang Anda dapat mengizinkan program baris perintah untuk menggunakan proxy Shadowsocks seperti ini:
sudo tsocks apt update
Ada juga program serupa yang disebut proxychains.
Aktifkan TCP Fast Open
Anda dapat mempercepat Shadowsocks dengan mengaktifkan TCP fast open. TCP adalah protokol berorientasi koneksi, yang berarti data hanya dapat dipertukarkan setelah koneksi dibuat, yang dilakukan melalui jabat tangan tiga arah. Dengan kata lain, secara tradisional, data hanya dapat dipertukarkan setelah jabat tangan tiga arah selesai. TCP fast open (TFO) adalah mekanisme yang memungkinkan pertukaran data sebelum jabat tangan tiga arah selesai, menghemat hingga 1 round-trip time (RTT).
Dukungan buka cepat TCP digabungkan ke kernel Linux sejak versi 3.7 dan diaktifkan secara default sejak versi 3.13. Anda dapat memeriksa versi kernel Anda dengan menjalankan:
uname -r
Untuk memeriksa konfigurasi buka cepat TCP di server Ubuntu Anda, jalankan
cat /proc/sys/net/ipv4/tcp_fastopen
Itu dapat mengembalikan 4 nilai.
- 0 berarti dinonaktifkan.
- 1 artinya diaktifkan untuk koneksi keluar (sebagai klien).
- 2 artinya diaktifkan untuk koneksi masuk (sebagai server).
- 3 artinya diaktifkan untuk koneksi keluar dan masuk.
Semua VPS Ubuntu saya (Virtual Private Server) mengembalikan 1
setelah menjalankan perintah di atas. Kami ingin tcp_fastopen disetel ke 3 di server kami. Untuk mencapai itu, kita dapat mengedit file konfigurasi sysctl.
sudo nano /etc/sysctl.conf
Kemudian tempel baris berikut di akhir file.
net.ipv4.tcp_fastopen=3
Muat ulang setelan sysctl agar perubahan diterapkan.
sudo sysctl -p
Kemudian Anda juga perlu mengaktifkan TCP fast open di file konfigurasi Shadowsocks.
sudo nano /etc/shadowsocks-libev/config.json
Tambahkan baris berikut.
"fast_open": true
Jadi file konfigurasi server Shadowsocks Anda akan terlihat seperti ini:
{ "server":"your-server-ip-address", "server_port":8388, "local_port":1080, "password":"focobguph", "timeout":60, "method":"chacha20-ietf-poly1305", "fast_open": true }
Perhatikan bahwa baris konfigurasi terakhir tidak memiliki koma. Simpan dan tutup file. Kemudian restart server Shadowsocks.
sudo systemctl restart shadowsocks-libev
Periksa apakah itu berjalan. (Kesalahan dalam file konfigurasi dapat mencegahnya memulai ulang.)
systemctl status shadowsocks-libev
Anda juga perlu mengedit file konfigurasi klien Shadowsocks dan memulai ulang untuk mengaktifkan TCP fast open di desktop Ubuntu.
Aktifkan TCP BBR
TCP BBR adalah algoritma kontrol kemacetan TCP yang secara drastis dapat meningkatkan kecepatan koneksi. Lihat tutorial berikut.
- Cara Mudah Meningkatkan Kinerja Jaringan Ubuntu dengan Mengaktifkan TCP BBR
Untuk penggunaan lebih lanjut di Shadowsocks, periksa manual.
man shadowsocks-libev
Pemecahan Masalah
Sesekali, proxy Shadowsocks-libev saya berhenti bekerja dan kesalahan berikut ditampilkan di sisi server ketika saya memeriksa status dengan systemctl
.
ERROR: server recv: Connection reset by peer
Di sisi klien, kesalahan dikembalikan oleh systemctl
adalah:
ERROR: remote_recv_cb_recv: Connection reset by peer
Saya tidak tahu mengapa itu terjadi, tetapi memulai ulang shadowsocks-libev
layanan di server dapat memperbaiki masalah ini.
sudo systemctl restart shadowsocks-libev
Saya tidak ingin memulai ulang layanan secara manual setiap saat, jadi saya menambahkan tugas cron untuk melakukannya untuk saya secara berkala.
sudo crontab -e
Letakkan baris berikut di akhir file.
0 */3 * * * /bin/systemctl restart shadowsocks-libev
Ini akan memulai kembali layanan setiap 3 jam. Artinya, restart terjadi pada jam 12 pagi, 3 pagi, 6 pagi, 9 pagi dan seterusnya. Perhatikan bahwa waktu ditentukan oleh cron. Tidak ditentukan dengan menghitung berapa lama layanan telah berjalan.
Jika Anda melihat kesalahan berikut di log Shadowsocks-libev.
ERROR: unable to resolve www.youtube.com
Ini berarti server Shadowsocks-libev tidak berhasil menyelesaikan DNS. Sangat membantu untuk menentukan server DNS di /etc/shadowsocks-libev/config.json
mengajukan. Cukup tambahkan baris berikut dalam file dan mulai ulang layanan shadowsocks-libev.
"name_server":"1.1.1.1",
Jika Anda memiliki resolver DNS sendiri yang berjalan di server Shadowsocks, Anda dapat menentukan 127.0.0.1 sebagai server nama.
"name_server":"127.0.0.1",
Ingat bahwa dalam file JSON, baris terakhir tidak diakhiri dengan koma.
Itu dia! Saya harap tutorial ini membantu Anda menginstal proxy Shadowsocks-libev di Ubuntu. Seperti biasa, jika menurut Anda postingan ini bermanfaat, berlangganan buletin gratis kami untuk mendapatkan lebih banyak tips dan trik 🙂