Hướng dẫn cài đặt V2ray, Nginx và cài đặt SSL để chạy V2ray trên port 443 cho máy chủ Ubuntu 22.04

Pham Kha
07:41 10-11-2023
5426

1. V2ray là gì?

V2Ray là một phần mềm mã nguồn mở được thiết kế để cung cấp dịch vụ mạng an toàn, ẩn danh và linh hoạt. Được phát triển chủ yếu bởi V2Ray.com, nó là một phần của dự án V2Ray.

V2Ray hỗ trợ nhiều giao thức mạng khác nhau như VMess, Shadowsocks, SOCKS, và nhiều giao thức khác. Mục tiêu chính của V2Ray là cung cấp một cách an toàn để truy cập internet, bảo vệ quyền riêng tư và thông tin cá nhân của người dùng. Đặc biệt, nó thường được sử dụng để vượt qua các biện cản mạng và truy cập các nội dung bị kiểm duyệt.

V2Ray cũng có thể được cấu hình để hoạt động như một máy chủ hoặc một khách hàng, cho phép người dùng tùy chỉnh cấu hình để đáp ứng nhu cầu cụ thể của họ. Nó được sử dụng rộng rãi trong cộng đồng người dùng có nhu cầu bảo vệ quyền riêng tư và truy cập internet một cách an toàn.

2. Nginx là gì?

Nginx (phát âm là "Engine X") là một máy chủ web và cũng có thể hoạt động như một máy chủ proxy ngược (reverse proxy server) và máy chủ cân bằng tải (load balancer). Nó được thiết kế để xử lý các yêu cầu web và cung cấp các tính năng như đọc ghi trang web, cân bằng tải, bảo vệ chống tấn công DDoS, và nhiều chức năng khác.

Nginx có hiệu suất cao và có thể xử lý nhiều kết nối đồng thời mà vẫn giữ được tốc độ xử lý nhanh chóng. Điều này làm cho nó trở thành một lựa chọn phổ biến cho việc triển khai trang web có yêu cầu cao về hiệu suất.

Quảng cáo

Ngoài ra, Nginx cũng được sử dụng làm một máy chủ proxy để chuyển hướng yêu cầu từ người dùng đến các máy chủ ứng dụng khác, giúp tăng cường bảo mật và cân bằng tải. Đối với ứng dụng web đòi hỏi khả năng mở rộng và linh hoạt, Nginx thường được tích hợp vào cấu trúc của hệ thống.

3. Tại sao lại sử dụng SSL?

SSL (Secure Sockets Layer) là một giao thức bảo mật dùng để bảo vệ sự truyền tải thông tin giữa máy tính của người sử dụng và máy chủ trên Internet. Phiên bản tiếp theo của SSL là TLS (Transport Layer Security). Dưới đây là một số lý do chính mà SSL/TLS được sử dụng:

  1. Bảo mật Dữ liệu: SSL/TLS mã hóa dữ liệu truyền tải giữa máy tính của người dùng và máy chủ. Điều này có nghĩa là người ngoại đạo khó có thể đọc được thông tin khi nó đang được truyền qua mạng. Điều này đặc biệt quan trọng khi bạn truyền tải thông tin nhạy cảm như thông tin tài khoản ngân hàng, thông tin thẻ tín dụng, hay bất kỳ thông tin cá nhân quan trọng nào.

  2. Xác nhận danh tính: SSL/TLS giúp xác nhận danh tính của máy chủ. Điều này đảm bảo rằng người dùng đang kết nối với máy chủ thực sự của trang web mà họ mong đợi, giúp ngăn chặn các cuộc tấn công giả mạo.

    Quảng cáo

  3. SEO và Đánh giá uy tín: Các công cụ tìm kiếm như Google ưu tiên các trang web sử dụng SSL/TLS trong kết quả tìm kiếm. Việc triển khai SSL không chỉ giúp cải thiện thứ hạng của trang web trong công cụ tìm kiếm mà còn tăng độ tin cậy và uy tín đối với người dùng.

  4. Bảo vệ khỏi cuộc tấn công MITM (Man-in-the-Middle): SSL/TLS giúp ngăn chặn cuộc tấn công MITM bằng cách mã hóa dữ liệu và xác nhận danh tính. Nếu có bất kỳ sự can thiệp nào vào quá trình truyền tải dữ liệu, nó sẽ trở nên rất khó khăn để giả mạo kết nối.

  5. Đáp ứng yêu cầu tuân thủ pháp luật và tiêu chuẩn ngành: Trong một số lĩnh vực và quốc gia, việc sử dụng SSL/TLS là bắt buộc để tuân thủ các quy định bảo mật và bảo vệ thông tin cá nhân.

Những lợi ích này khiến SSL/TLS trở thành một phần quan trọng của bảo mật web và là tiêu chuẩn để đảm bảo an toàn cho người sử dụng và dữ liệu truyền tải qua mạng.

Quảng cáo

4. Hướng dẫn cài đặt V2ray

bash <(curl -L https://raw.githubusercontent.com/v2fly/fhs-install-v2ray/master/install-release.sh)
systemctl enable v2ray
systemctl start v2ray

5. Cài đặt Nginx và Cerbot

apt update
apt install nginx certbot python3-certbot-nginx

6. Cấu hình cho V2ray và Nginx

6.1 Cấu hình V2ray

nano /usr/local/etc/v2ray/config.json

Điền thông tin cấu hình như bên dưới, sau khi điền xong ấn Ctrl + X -> Y -> Enter

{
  "inbounds": [
    {
      "port": 10000,
      "listen": "127.0.0.1",
      "protocol": "vmess",
      "settings": {
        "clients": [
          {
            "id": "b46e1304-67db-4f6b-82e2-f4f166ae0024",
            "alterId": 0
          }
        ]
      },
      "streamSettings": {
        "network": "ws",
        "wsSettings": {
          "path": "/4g" //phai trung voi path trong nginx
        }
      }
    }
  ],
  "outbounds": [
    {
      "protocol": "freedom",
      "settings": {}
    }
  ]
}

Bạn có thể tạo ID khác tại đây: Online UUID Generator Tool

6.2 Cấu hình Nginx

nano /etc/nginx/sites-available/<domain>

Phần domain thay thành domian của bạn nhé

server {
    listen 443 ssl;
    listen [::]:443 ssl;
  
    ssl_certificate     /etc/letsencrypt/live/domain/fullchain.pem; 
    ssl_certificate_key /etc/letsencrypt/live/domain/privkey.pem;
    ssl_session_timeout 1d;
    ssl_session_cache shared:MozSSL:10m;
    ssl_session_tickets off;
  
    ssl_protocols         TLSv1.2 TLSv1.3;
    ssl_ciphers           ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384;
    ssl_prefer_server_ciphers off;
  
    server_name domain;
    location /4g { //path này phải trùng với v2ray
      if ($http_upgrade != "websocket") {
          return 404;
      }
      proxy_redirect off;
      proxy_pass http://127.0.0.1:10000;
      proxy_http_version 1.1;
      proxy_set_header Upgrade $http_upgrade;
      proxy_set_header Connection "upgrade";
      proxy_set_header Host $http_host;
      # Show real IP in v2ray access.log
      proxy_set_header X-Real-IP $remote_addr;
      proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }
  }

Phần này các bạn để ý phần ssl_certificate các bạn thay chổ domain thành domain của bạn.

Quảng cáo

7. Tạo chứng chỉ SSL với Certbot

Certbot là một công cụ tự động hóa cài đặt và duy trì chứng chỉ SSL/TLS từ Let's Encrypt trên máy chủ web. Let's Encrypt cung cấp chứng chỉ SSL/TLS miễn phí và tự động hóa. Certbot hỗ trợ nhiều loại máy chủ web và cung cấp quy trình tự động hóa để lấy, cài đặt, và cập nhật chứng chỉ, giúp người quản trị hệ thống triển khai HTTPS một cách dễ dàng.

certbot certonly --nginx -d domain

Thay domain thành domain của bạn.

Vị trí của file SSL sau khi tạo xong /etc/letsencrypt/live/ bạn phải thay thế vào trong nginx bằng đường dẫn đến 2 file SSL này. SSL này có thời hạn 90 ngày

Sau khi kiểm tra SSL đã đúng đường dẫn trong "/etc/nginx/sites-available/domain" bạn thực hiện lệnh.

Quảng cáo

service nginx restart

8. Hướng dẫn khắc phục lỗi khi không kết nối được với v2ray

Khi chưa kết nối được với v2ray bạn có thể thử thêm cách bên dưới là thêm “Environment="V2RAY_VMESS_AEAD_FORCED=false“ vào trước “ExecStart

nano /etc/systemd/system/v2ray.service
[Unit]
Description=V2Ray Service
Documentation=https://www.v2fly.org/
After=network.target nss-lookup.target

[Service]
User=nobody
CapabilityBoundingSet=CAP_NET_ADMIN CAP_NET_BIND_SERVICE
AmbientCapabilities=CAP_NET_ADMIN CAP_NET_BIND_SERVICE
NoNewPrivileges=true
Environment="V2RAY_VMESS_AEAD_FORCED=false" << them dong nay vao
ExecStart=/usr/local/bin/v2ray -config /usr/local/etc/v2ray/config.json
Restart=on-failure
RestartPreventExitStatus=23

[Install]
WantedBy=multi-user.target
systemctl daemon-reload
service v2ray restart

Bài viết mới