1. Prosedur standard :

sudo apt update && apt upgrade -y
sudo apt install -y snapd

2. install haveged untuk randomness yang lebih baik (opsional)

sudo apt install -y haveged
sudo reboot

3. Install Shadowsocks via snap supaya dapat release aplikasi yang terbaru.

sudo snap install shadowsocks-libev

4. Buat file configuration untuk shadowsocks :

sudo mkdir -p /var/snap/shadowsocks-libev/common/etc/shadowsocks-libev
sudo touch /var/snap/shadowsocks-libev/common/etc/shadowsocks-libev/config.json
sudo vi /var/snap/shadowsocks-libev/common/etc/shadowsocks-libev/config.json

5. Isi file json :

{
   "server":["::0", "0.0.0.0"],
   "mode":"tcp_and_udp",
   "server_port":443,
   "password":"your-secure-password",
   "timeout":60,
   "method":"chacha20-ietf-poly1305",
   "nameserver":"1.1.1.1"
}

6. Buat file untuk systemd service unit

sudo touch /etc/systemd/system/[email protected]
sudo vi /etc/systemd/system/[email protected]

# isi nya :

[Unit]
Description=Shadowsocks-Libev Custom Server Service for %I
Documentation=man:ss-server(1)
After=network-online.target
    
[Service]
Type=simple
ExecStart=/usr/bin/snap run shadowsocks-libev.ss-server -c /var/snap/shadowsocks-libev/common/etc/shadowsocks-libev/%i.json
    
[Install]
WantedBy=multi-user.target

7. Aktifkan shadowsocks

# Aktifkan service
sudo systemctl enable --now shadowsocks-libev-server@config

# Lihat status shadowsocks
sudo systemctl status shadowsocks-libev-server@config

8. Buka firewall

sudo ufw allow 443

9. Pakai QR Code untuk menambah profil di aplikasi shadowsocks : ( Aplikasi Android)

https://shadowsocks.org/en/config/quick-guide.html#qrcode

10. Optimasi kernel + TCP BBR

# Edit sysctl :
sudo vi /etc/sysctl.conf

# Tambahkan :
fs.file-max = 51200
net.core.netdev_max_backlog = 250000
net.core.somaxconn = 4096
net.ipv4.tcp_syncookies = 1
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_fin_timeout = 30
net.ipv4.tcp_keepalive_time = 1200
net.ipv4.ip_local_port_range = 10000 65000
net.core.netdev_max_backlog = 4096
net.ipv4.tcp_max_syn_backlog = 8192
net.ipv4.tcp_max_tw_buckets = 5000
net.ipv4.tcp_fastopen = 3
net.ipv4.tcp_mtu_probing = 1
net.core.rmem_max = 67108864
net.core.wmem_max = 67108864
net.ipv4.tcp_mem = 25600 51200 102400
net.ipv4.tcp_rmem = 4096 87380 67108864
net.ipv4.tcp_wmem = 4096 65536 67108864
net.core.default_qdisc=fq
net.ipv4.tcp_congestion_control=bbr

# Reload sysctl
sudo sysctl -p

# Check TCP BBR :
sudo sysctl net.ipv4.tcp_congestion_control

11. check listening port : (Jika butuh cari port yang terpakai)

sudo lsof -i -P -n | grep LISTEN