Cara Instal Server Trojan WebSocket TLS dengan Sing-box

Panduan kali ini, kita akan menginstal server Trojan WebSocket + TLS dengan menggunakan sing-box.

Kita akan menggunakan fitur auto tls dari sing-box agar tidak perlu lagi setup sertifikat TLS untuk server Trojan WebSocket.

Jika kalian belum tahu apa itu sing-box, sing-box ini adalah alat all-in-one untuk membuat server proxy yang berguna untuk melewati sensor internet.

Persiapan

Berikut beberapa hal yang perlu kalian siapkan sebelum lanjut ke proses instalasi.

  • Linux Debian/Ubuntu
  • Domain

Instalasi

Langkah pertama, instal gcc, git, dan curl dengan apt.

$ sudo apt update
$ sudo apt install git curl build-essential -y

Kemudian unduh repositori sing-box menggunakan Git.

$ git clone https://github.com/SagerNet/sing-box

Ganti ke direktori sing-box.

$ cd sing-box

Setelah itu, instal go compiler.

$ ./release/local/install_go.sh

Langkah terakhir, instal sing-box.

$ ./release/local/install.sh

Setelah instalasi rampung, langkah selanjutnya adalah menyetel konfigurasi sing-box.

Konfigurasi server

Sebelum lanjut ke tahap selanjutnya, arahkan alamat IP publik VPS ke domain kalian.

Jika kalian menggunakan Cloudflare, buka setelan DNS, tambahkan record baru, kemudian konfigurasikan seperti pada gambar berikut.

Cloudflare DNS

Setelah DNS dikonfigurasi, edit file konfigurasi sing-box yang terletak di /usr/local/etc/sing-box/config.json dengan teks editor nano.

$ nano /usr/local/etc/sing-box/config.json

Hapus seluruh konfigurasi dan ganti dengan yang ini:

{
  "log": {
    "level": "info",
    "timestamp": true
  },
  "inbounds": [
    {
      "type": "trojan",
      "tag": "trojan-ws-in",
      "listen": "::",
      "listen_port": 443,
      "users": [
        {
          "name": "aditya",
          "password": "8JCsPssfgS8tiRwiMlhARg=="
        }
      ],
      "tls": {
        "enabled": true,
        "acme": {
          "domain": "domain_kalian.com",
          "email": "[email protected]"
        }
      },
      "transport": {
        "type": "ws",
        "path": "/trojan"
      }
    }
  ],
  "outbounds": [
    {
      "type": "direct",
      "tag": "direct"
    }
  ]
}

Yang perlu diedit:

  • email, isi dengan alamat email kalian
  • password, isi dengan password yang kuat
  • domain, isi dengan domain yang sudah diarahkan ke alamat server

Kemudian simpan file konfigurasi dengan menekan CTRL + S kemudian tekan CTRL + X untuk keluar dari nano.

Setelah dikonfigurasi, jalankan perintah berikut untuk memastikan tidak ada kesalahan pada file konfigurasi sing-box.

$ sing-box check -D /usr/local/etc/sing-box

Jika tidak ada error pada konfigurasi, hidupkan service sing-box agar berjalan secara otomatis saat server dihidupkan.

$ sudo systemctl enable sing-box

Setelah itu, mulai server Trojan WebSocket.

$ sudo systemctl start sing-box

Catatan: pastikan alokasi port 80 dan 443 tersedia karena dibutuhkan untuk proses verifikasi domain oleh Let’s Encrypt.

Konfigurasi klien

Ada ada pilihan aplikasi klien Trojan WebSocket, antara lain sing-box, xray, v2ray, dan clash.

Contoh berikut ini adalah konfigurasi untuk aplikasi klien sing-box untuk Android.

{
  "log": {
    "level": "info",
    "timestamp": true
  },
  "dns": {
    "servers": [
      {
        "tag": "google",
        "address": "tls://8.8.8.8"
      },
      {
        "tag": "block",
        "address": "rcode://success"
      }
    ],
    "rules": [
      {
        "geosite": "category-ads-all",
        "server": "block",
        "disable_cache": true
      }
    ],
    "strategy": "ipv4_only"
  },
  "inbounds": [
    {
      "type": "tun",
      "inet4_address": "172.19.0.1/30",
      "auto_route": true,
      "strict_route": false,
      "sniff": true
    }
  ],
  "outbounds": [
    {
      "type": "trojan",
      "tag": "trojan-ws-out",
      "server": "domain_kalian.com",
      "server_port": 443,
      "password": "8JCsPssfgS8tiRwiMlhARg==",
      "tls": {
        "enabled": true
      },
      "transport": {
        "type": "ws",
        "path": "/trojan"
      }
    },
    {
      "type": "direct",
      "tag": "direct"
    },
    {
      "type": "block",
      "tag": "block"
    },
    {
      "type": "dns",
      "tag": "dns-out"
    }
  ],
  "route": {
    "rules": [
      {
        "protocol": "dns",
        "outbound": "dns-out"
      },
      {
        "geoip": ["private"],
        "outbound": "direct"
      },
      {
        "geosite": "category-ads-all",
        "outbound": "block"
      }
    ],
    "auto_detect_interface": true
  }
}

Cara Memperbarui Sing-box

Untuk memperbarui sing-box, ganti ke direktori repositori sing-box yang telah diunduh.

$ cd sing-box

Kemudian jalankan perintah berikut ini:

$ ./release/local/update.sh