V2Ray melalui WebSocket dengan Nginx TLS plus CDN


Artikel ini menunjukkan cara menyiapkan server V2Ray di Debian 9, dengan V2Ray yang digawangi oleh situs web https yang dihosting di nginx. Alamat IP server tersembunyi di balik jaringan distribusi konten (CDN). Server akan bertindak sebagai server V2Ray untuk aliran WebSocket, tetapi akan menampilkan situs web normal ke browser web biasa. Mesin klien dalam tutorial ini adalah PC Windows.

Server Debian 9

Server akan menerima input pada port 443. (Jika ada lalu lintas yang tiba di port 80, itu akan dialihkan ke port 443.) Jika lalu lintas adalah aliran WebSocket, itu diproksikan ke V2Ray, yang mendengarkan di port localhost 8388 Jika lalu lintas adalah permintaan https normal, sebaliknya, lalu lintas ditangani oleh nginx secara langsung dan halaman web dikembalikan.

Mulailah dengan mendaftarkan nama domain untuk situs web Anda.

Dapatkan juga virtual private server (VPS).

Sekarang kembali ke pencatat nama domain Anda, dan tambahkan rekam A DNS yang menunjuk dari nama host server Anda (mis. Http://www.example.com ) dan juga nama domain polos Anda (mis. Example.com) ke alamat IP server Anda.

Kami akan mengaktifkan algoritma kontrol kemacetan BBR untuk meningkatkan kinerja jaringan. PuTTY atau SSH ke server Anda, dan edit file konfigurasi kontrol sistem:

sudo vi /etc/sysctl.conf

Untuk mencegah editor vi memasuki mode visual saat Anda menempelkan perintah, lakukan:

:set mouse-=a

Anda dapat menambahkan set mouse- = a ke file ~ / .vimrc atau file system-wide / etc / vim / vimrc untuk membuat perubahan ini permanen.

Tambahkan dua baris ini di akhir file /etc/sysctl.conf:

net.core.default_qdisc=fqnet.ipv4.tcp_congestion_control=bbr

Tekan tombol Esc pada keyboard komputer Anda untuk keluar dari mode penyisipan, dan ketik: wq untuk menulis file ke disk dan keluar dari editor.

Jadikan perubahan ini efektif sekarang dengan mengeluarkan perintah:

sudo sysctl -p

Sekarang kami siap untuk menginstal server web. Buka firewall Anda untuk mengizinkan lalu lintas masuk pada port 80 dan 443:

sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPTsudo iptables -A INPUT -p tcp --dport 443 -j ACCEPTsudo dpkg-reconfigure iptables-persistent

Instal server web nginx:

sudo apt-get install nginx

Edit file konfigurasi situs default untuk dimasukkan ke dalam nama domain Anda:

sudo vi /etc/nginx/sites-available/default

Di nama server, ganti garis bawah _ dengan nama host Anda yang sebenarnya, misalnya http://www.example.com

Tekan tombol Esc pada keyboard komputer Anda untuk keluar dari mode penyisipan, dan ketik: wq untuk menulis file ke disk dan keluar dari editor.

Periksa format file konfigurasi:

sudo nginx -t

Mulai ulang nginx untuk mengambil konfigurasi baru:

sudo systemctl restart nginx

Sekarang buat konten situs web Anda.

Saat Anda telah menambahkan beberapa konten, Anda dapat mengunjungi situs web Anda di browser untuk mengonfirmasi bahwa server web Anda berfungsi.

Sekarang instal bot sertifikat Let’s Encrypt untuk nginx:

sudo apt install python-certbot-nginx

Minta sertifikat untuk domain Anda.

sudo certbot --authenticator webroot --webroot-path /var/www/html --installer nginx -d example.com -d www.example.com

Certbot menempatkan sertifikat dan kunci Anda di /etc/letsencrypt/live/example.com/.

Secara otomatis mengubah definisi situs default untuk menyertakan situs SSL.

Dan, selama Anda memilih opsi untuk memaksa akses aman, certbot juga menambahkan baris secara otomatis untuk memaksa https:

if ($scheme != "https") {return 301 https://$host$request_uri;} # managed by Certbot

Untuk menghemat keharusan memperbarui sertifikat SSL Anda secara manual setiap 90 hari, tambahkan baris ke tabel cron pengguna root Anda:

sudo crontab -e

Tambahkan garis di bagian bawah. Misalnya, untuk memeriksa pembaruan, dan memperbarui jika perlu, pada 01:23 setiap hari Sabtu (hari 6), Anda akan meletakkan:

# m h dom mon dow command23 1 * * 6 certbot renew > /var/log/letsencrypt/renew.log

Tekan tombol Esc pada keyboard komputer Anda untuk keluar dari mode penyisipan, dan ketik: wq untuk menulis file ke disk dan keluar dari editor.

Sekarang kami akan menambahkan situs Anda ke jaringan distribusi konten (CDN) Anda. Demi artikel ini, kami menggunakan Cloudflare sebagai CDN kami. Kami memilih paket gratis.

Cloudflare biasanya dapat menemukan catatan DNS Anda yang ada secara otomatis. Jika tidak, Anda harus menambahkan entri untuk nama server dan nama domain polos Anda secara manual.

Cloudflare memberi Anda dua server namanya sendiri untuk digunakan. Mereka akan memiliki nama seperti:

alpha.ns.cloudflare.combeta.ns.cloudflare.com

Sekarang kembali ke pendaftar nama domain Anda, dan ubah server nama Anda menjadi server nama khusus yang diberikan kepada Anda oleh Cloudflare. Simpan perubahan Anda.

Anda harus menunggu hingga 24 jam agar perubahan pada server nama Anda diterapkan.

Anda sekarang dapat menguji semuanya sejauh ini dengan mengunjungi http://www.example.com , yang akan dialihkan ke https://www.example.com .

Mulai saat ini, nama server Anda akan menyelesaikan alamat IP milik CDN Anda. Anda harus secara eksplisit menentukan alamat IP asli server Anda saat Anda menggunakan SSH.

Untuk menginstal V2Ray, PuTTy atau SSH ke server Anda, dan mendownload serta menjalankan skrip instalasi V2Ray:

wget https://install.direct/go.sh
sudo bash go.sh

PORT default dan UUID ditampilkan menjelang akhir penginstalan. UUID secara efektif adalah kata sandi, dan perlu diketahui oleh klien saat kami menyiapkan PC Windows sebentar lagi. Ini akan terlihat seperti ini:

"id": "bee4f295-b5bf-4f7d-a8a5-2bc6de91e7e5",

Edit file konfigurasi V2Ray /etc/v2ray/config.json:

sudo vi /etc/v2ray/config.json

Dalam spesifikasi masuk, alih-alih nomor port yang dihasilkan oleh go.sh, masukkan nomor port yang ingin Anda gunakan secara internal untuk nginx guna mengirim streaming ke V2Ray, dan juga tentukan bahwa V2Ray harus mendengarkan di localhost:

"port": 8388,"listen": "127.0.0.1",

Setelah akhir bagian setelan spesifikasi masuk, tambahkan bagian baru untuk streamSettings:

"streamSettings": {  "network": "ws",  "wsSettings": {    "path": "/websocket/"  }}

Tekan tombol Esc pada keyboard komputer Anda untuk keluar dari mode penyisipan, dan ketik: wq untuk menulis file ke disk dan keluar dari editor.

Mulai V2Ray dengan file konfigurasi Anda yang telah direvisi:

sudo systemctl start v2ray

Edit file konfigurasi host virtual default:

sudo vi /etc/nginx/sites-available/default

Di dalam blok server utama, tetapi setelah spesifikasi yang ada, tambahkan blok lokasi baru ke lalu lintas proxy WebSocket ke V2Ray, yang mendengarkan di port localhost 8388:

location /websocket/ {  proxy_redirect off;  proxy_pass http://127.0.0.1:8388;  proxy_http_version 1.1;  proxy_set_header Upgrade $http_upgrade;  proxy_set_header Connection "upgrade";  proxy_set_header Host $http_host;}

Tekan tombol Esc pada keyboard komputer Anda untuk keluar dari mode penyisipan, dan ketik: wq untuk menulis file ke disk dan keluar dari editor.

Mulai ulang nginx untuk mengambil konfigurasi baru:

sudo systemctl restart nginx

Klien Windows 10

Kunjungi Github dan identifikasi rilis terbaru V2Ray:

https://github.com/v2ray/v2ray-core/releases

Untuk PC Windows 64-bit modern, Anda perlu mengunduh dan mengekstrak v2ray-windows-64.zip.

Sebelum meluncurkan program, edit file config.json di dalam folder yang diekstrak.

Konfigurasikan V2Ray untuk mengirimkan lalu lintas keluarnya ke port 443 server Anda. Tentu saja, Anda harus mengganti nilai Anda sendiri untuk server dan id pengguna dalam contoh ini:

"outbound": {  "protocol": "vmess",  "settings": {    "vnext": [      {        "address": "www.example.com",        "port": 443,        "users": [          {            "id": "bee4f255-b5bf-4f4d-a8a5-2bc6de91e7e7",            "alterId": 64,            "security": "aes-128-gcm"          }         ]      }    ]  },  "streamSettings": {    "network": "ws",    "wsSettings": {      "path": "/websocket/"    },    "security": "tls",    "tlsSettings": {      "serverName": "www.example.com",      "allowInsecure": false    }  }}

Simpan file konfigurasi.

Klik dua kali pada v2ray.exe untuk meluncurkan program.

Anda mungkin mendapatkan peringatan yang mengatakan, “Windows melindungi PC Anda”, dan Anda tetap perlu mengklik Jalankan.

Jendela perintah dengan pesan muncul, dan V2Ray mulai mendengarkan pada 127.0.0.1 port 1080.

Konfigurasikan browser Anda untuk mengirim lalu lintas ke proxy SOCKS5 (yaitu V2Ray) yang sekarang mendengarkan pada port localhost 1080.

Di Firefox, Anda dapat melakukannya di bawah Pengaturan Koneksi Jaringan:

  • Pilih Konfigurasi proxy manual
  • Untuk SOCKS Host, masukkan 127.0.0.1
  • Untuk Port, pasang 1080
  • Pilih SOCKS v5
  • Periksa Proxy DNS saat menggunakan SOCKS v5

Di Chrome, Anda dapat melakukannya dengan menginstal dan mengkonfigurasi SwitchyOmega untuk mengirim lalu lintas ke proxy SOCKS5 di 127.0.0.1 port 1080.

Sekarang Anda dapat membuka browser dan memeriksa alamat IP Anda di situs seperti whatismyipaddress.com .

Jika Anda mematikan proxy, atau menggunakan browser lain atau PC lain, Anda dapat menjelajahi situs web http://www.example.com seperti biasa.

Di jendela perintah V2Ray di PC Anda, lakukan Ctrl + c untuk menutup program V2Ray. Ingat juga untuk mengatur Firefox atau Chrome kembali ke pengaturan jaringan normal mereka.

Posting Komentar

0 Komentar