Chuyên mục
Network

Hướng dẫn cài đặt V2Ray Server + Websocket + TLS nhanh gọn lẹ bằng Docker

Cách đây vài ngày có 1 bạn đã hỏi cách cài đặt V2Ray trong bài viết Portainer: “Ad có thể hướng dẫn cài v2ray server trên docker ko“. Phản ứng của mình khi sau khi thấy câu hỏi: “WTF is v2ray?

Mình chưa nghe đến cái tên V2Ray bao giờ. Sự tò mò nổi lên, thế là mất mấy ngày mò mẫm để nghiên cứu và tìm hiểu V2Ray là gì. Hôm nay mò xong, chia sẻ lại bài viết để mọi người tham khảo.

1. V2Ray là gì?

V2Ray là thành phần cốt lõi của Project V – một tập hợp các công cụ giúp bạn xây dựng mạng riêng tư qua internet. V2Ray chịu trách nhiệm về các giao thức mạng và truyền thông. Nó có thể làm việc một mình, cũng như kết hợp với các công cụ khác. (Nguồn: V2Ray)

V2Ray hỗ trợ nhiều giao thức như Socks, HTTP, Shadowsocks, VMess,…Mỗi giao thức có thể được truyền tải và mã hoá theo nhiều cách: TCP, mKCP, Websocket, QUICK… tuỳ theo cách bạn cấu hình V2Ray

  1.  TCP – Kết nối mặc định. TCP (Transmission Control Protocol) là giao thức truyền tải thông tin tiêu chuẩn trên Internet, sử dụng trong SSH, FTP, HTTP,
  2.  Websocket – Sử dụng websocket giúp ẩn địa chỉ IP của máy ảo đang thiết lập V2Ray bằng cách sử dụng tên miền kết hợp với Cloudflare, giúp tăng tính riêng tư, hạn chế bị phía cung cấp dịch vụ chặn IP của VPS.
  3. mKCP – Kết nối tương tự như TCP, nhưng nhanh hơn.
  4. QUIC – Kết nối của Google nhằm thay thế TCP và UDP, nhanh hơn TCP.

Nhờ tính năng bảo mật và mã hoá ưu việt, V2Ray thường được dùng làm Web Proxy để chống lại kiểm duyệt Internet, truy cập vào các trang web bị chặn bởi nhà mạng. V2Ray được sử dụng phổ biến ở Trung Quốc nhằm vượt qua hệ thống kiểm duyệt mạng gắt gao của hệ thống tường lửa Great Firewall của chính phủ Trung Quốc.

Trong bài viết này mình sẽ cài đặt V2Ray Server kết nối thông qua Websocket, được bảo mật TLS thông qua chứng chỉ SSL cung cấp bởi Let’s Encrypt.

Nghe có vẻ phức tạp thế thôi nhưng cách thiết lập cực kỳ nhanh gọn lẹ. Nhờ có Docker, chỉ mất khoảng vài phút là đã có trong tay V2Ray Server được thiết lập bảo mật.

2. Yêu cầu hệ thống

Bạn cần chuẩn bị sẵn hệ thống như sau:

  • 1 VPS sử dụng CPU x86 (Intel / AMD) cài đặt Linux (Ubuntu / Debian / Arch…) Hướng dẫn trong bài viết này không sử dụng trên Raspberry Pi hay VPS Flex A1 của Oracle được. Bạn có thể dùng VPS của Digital Ocean, Vultr, Hetzner, UpCloud,…
  • VPS đã được cài đặt sẵn Docker và Docker-Compose. Xem hướng dẫn.
  • 1 tên miền riêng (.com, .net, …) đã được thiết lập trên Cloudflare.

3. Tải V2Ray-Nginx-Docker

Trong bài viết này mình sẽ sử dụng VPS của HostHach, máy chủ ở HongKong. VPS được cài đặt Ubuntu 20.04.

Sau khi thử nghiệm nhiều cách cài đặt V2Ray bằng Docker khác nhau, mình đã tìm ra cách thiết lập V2Ray hiệu quả và dễ sử dụng nhất ở đây: V2ray-nginx-docker.

Truy cập SSH vào VPS và clone repo về máy

cd ~
git clone https://github.com/alphacodinghub/v2ray-nginx-docker.git
cd v2ray-nginx-docker

Nếu bị báo lỗi git: command not found, bạn cần cài đặt thêm git rồi sau đó cài đặt lại

apt install git

4. Cấu hình thông số

Bạn cần thay đổi thông tin trong file .env nằm trong thư mục v2ray-nginx-docker

nano .env

Nội dung mặc định sẽ như dưới đây

APP_NAME=myapp
APP_DOMAIN=example.com
[email protected]
LISTENING_PORT=3033
CLIENT_ID=2e5762cc-20d2-42b1-b0ad-cbe55dc5fa35
CLIENT_ALTERID=64
CLIENT_WSPATH=/allproducts

Có 3 dòng bắt buộc bạn phải thay đổi:

  • APP_NAME: nhập vào tên bất kỳ, ví dụ: alibaba
  • APP_DOMAIN: điền vào tên miền sẽ sử dụng cho V2Ray, ví dụ: v2ray.thuanbui.me
  • ACME_EMAIL: nhập vào email của bạn, email này sẽ được Let’s Encrypt dùng để cấp chứng chỉ SSL cho tên miền.

Bạn có thể thay đổi thêm CLIENT_ID thành thông số UUID khác. Sử dụng công cụ Online UUID Generator để tạo UUID.

Sau khi thay đổi, thông số của mình như sau

APP_NAME=alibaba
APP_DOMAIN=thuanbui.me
[email protected]
LISTENING_PORT=3033
CLIENT_ID=a5f3874d-040a-48e8-a629-bd7ff329408f
CLIENT_ALTERID=64
CLIENT_WSPATH=/allproducts

5. Cấu hình tên miền trên Cloudflare

Tiếp theo bạn cần truy cập Cloudflare, thêm A Record trong mục DNS cho 2 subdomain như sau:

  • alibaba.v2ray.thuanbui.me trỏ về IP của VPS
  • traefik.v2ray.thuanbui.me trỏ về IP của VPS
Lưu ý đừng kích hoạt đám mây ở mục DNS Online nhé.

Truy cập thêm vào mục SSL/TLS vào chọn Full (Strict)

6. Kích hoạt V2Ray

Quay lại VPS, bạn đã có thể kích hoạt V2Ray

docker-compose up

Công cụ ACME tích hợp trong Docker container sẽ tự động kích hoạt chứng chỉ bảo mật SSL của Let’s Encrypt cho 2 tên miền alibaba.v2ray.thuanbui.metraefik.v2ray.thuanbui.me. Nếu ở bạn bỏ qua bước 4 hoặc cấu hình sai trên Cloudflare, bạn sẽ thấy thong báo lỗi Unbale to obtain ACME certificate for ...

Còn nếu kích hoạt SSL thành công, bạn có thể truy cập vào Traefik dashboard theo địa chỉ: https://traefik.v2ray.thuanbui.me. Còn khi truy cập vào https://alibaba.v2ray.thuanbui.me sẽ được tự động chuyển hướng về Baidu.

Traefik là công cụ Reverse Proxy tương tự như Nginx Proxy Manager, được tích hợp trong package này để phục vụ cho việc thiết lập chứng chỉ SSL và Reverse Proxy cho dịch vụ V2Ray.

Website https://alibaba.v2ray.thuanbui.me được dùng để nguỵ trang cho V2Ray Server. Bạn có thể copy nội dung web vào thư mục ./conf/html để không bị chuyển hướng về Baidu khi truy cập nữa

Sau khi biết Container đã hoạt động ổn, mình tạm ngưng bằng cách bấm nút Ctrl + C, sau đó kích hoạt lại cho Container chạy ngầm

docker-compose up -d

V2Ray Server đã sẵn sàng phục vụ.

7. Cấu hình V2Ray Client

Có rất nhiều ứng dụng V2Ray Client trên mọi nền tảng.

  • Windows: V2RayW, V2RayN, V2RayS, Clash, Qv2ray, Netch
  • MacOS: V2RayX, V2RayU, ClashX, Qv2ray
  • Linux: V2RayA
  • Android: v2RayNG, Clash for Android, NapsternetV
  • iOS: ShadowRocket, Kitsunebi, Quantumult, i2Ray, Pepi, 91VPN, Pharos Pro, FairVPN

Dưới dây là cách thiết lập V2Ray Client MacOS sử dụng V2RayX. Bạn có thể áp dụng các thông số tương tự cho các client khác.

Tải V2RayX trên Github: V2RayX Release, và copy app vào mục Applications trên MacOS và chạy V2RayX.

Bạn sẽ thấy có biểu tượng mới xuất hiện trên Menu Bar của MacOS, bấm chuột phải và chọn Configure, cấu hình như sau:

  • Address: điền vào địa chỉ đã thiết lập trong file .env ở bước 3: alibaba.v2ray.thuanbui.me
  • USER ID: nhập vào CIENT_ID trong file .env
  • Security: auto
  • Network: chọn ws (websocket)

Bấm tiếp vào transport settings…, chọn qua tab WebSocket, điền /allproducts vào mục path.

Bấm tiếp qua tab TLS, cấu hình như dưới đây. Sau đó bấm OK, rồi OK thêm 1 lần nữa.

8. Kiểm tra kết nối V2Ray

Bấm chuột phải vào biểu tượng V2RayX và chọn

  1. Global Mode: kích hoạt chế độ System Proxy để toàn bộ mạng đi qua Web Proxy của V2Ray
  2. Bấm Load core để kích hoạt kết nối đến V2Ray Server.

Kiểm tra xem Proxy đã hoạt động ngon chưa: truy cập vào https://www.whatismyip.com/ thấy IP chuyển qua IP của HostHatch Hong Kong.

Mình có thể truy cập vào hàng loạt “web người lớn” bị chặn ở Việt Nam như p***b,… Vậy là V2Ray đã hoạt động ngon lành!

Còn dưới đây là kiểm tra nhanh tốc độ kết nối mạng: kết nối trực tiếp vs kết nối qua WireGuard vs. kết nối qua V2Ray.

Những hạn chế hiện tại:

  • Chưa thể kích hoạt tính năng Proxy của Cloudflare nhằm ẩn IP của VPS. Mỗi lần kích hoạt Proxy của Cloudflare là V2Ray Client không thể kết nối đến Server.
  • Chỉ dùng cho cá nhân, chưa hỗ trợ tạo nhiều tài khoản kết nối.

Dù sao thì ở Việt nam cũng chẳng lo bị nhà mạng chặn IP VPS gắt gao đến thế, nên hiện tại vậy là xài ngon rồi. Bao giờ mò ra phương pháp cài đặt V2Ray nào bảo mật và tiện lợi hơn mình sẽ chia sẻ sau.

Chúc bạn cài đặt thành công!

Nếu bài viết của mình mang đến thông tin, kiến thức hữu ích cho bạn, đừng ngại mời mình ly bia để có thêm động lực chia sẻ nhiều hơn nữa. Cám ơn bạn!

Bởi Thuận Bùi

Runner at Yêu Chạy Bộ. Blogger at Ba Lô & Dép Lào. Web Developer at TB's Blog.
Follow me: Facebook / Instagram

6 trả lời trong “Hướng dẫn cài đặt V2Ray Server + Websocket + TLS nhanh gọn lẹ bằng Docker”

Mạng bị đơ khi đông người truy cập là do Router Wifi yếu, không chịu nổi tải nhiều. Cách tốt nhất là thay Router xịn, lắp Access Point xịn nhé. Mình dùng Router Mikrotik RB750GR3 và AP TP-Link EAP245 (Wifi AC) thấy chạy phà phà.

Mình kéo dây rồi lắp mỗi con Access Point 1 tầng, sau đó cài Omada trên máy ảo để quản lý đống Access Point đó. Cách này hiệu quả ăn đứt mấy giải pháp Mesh không dây.

Cảm ơn a nhiều ạ, vậy là em biết cách làm ở gia đình rồi.
Còn ở công ty 50 người cùng 1 tầng thì em xài Router Mikrotik RB750GR3 và AP TP-Link EAP245 là đủ rồi phải ko a

Thiết bị mạng có chịu tải nổi 50 người 1 lúc hay không thì phải thiết lập thử rồi theo dõi mới chắc nha. Mình chưa có điều kiện test thực tế bao giờ nên không chắc được.

Trả lời