Hướng dẫn thiết lập VPS Proxy: Cẩm nang chi tiết cho người mới bắt đầu

@naiyue777
TIẾNG TRUNG06 thg 6, 2026
224K
487
86
40
1.2K

TL;DR

Hướng dẫn này cung cấp quy trình từng bước để thiết lập máy chủ proxy cá nhân sử dụng VPS, Cloudflare và Xray (VLESS+Vision), đảm bảo kết nối internet ổn định và riêng tư.

Xin chào mọi người, mình là Nayue. Gần đây mình dành thời gian tìm hiểu về thiết lập VPS. Nhờ có thầy codex; mình thực sự đã hiểu từng bước bằng cách hỏi codex, và sau khi thành công, mình muốn viết bài chia sẻ với mọi người.

Hy vọng bài viết này hữu ích với bạn, và nếu mình có sai sót gì, hãy cho mình biết nhé~

1. Tại Sao Bạn Cần Tên Miền và VPS

Nếu bạn chỉ cần tạm thời vượt qua kiểm duyệt, cách dễ nhất là mua proxy có sẵn. Nhưng nếu bạn muốn tự kiểm soát cấu hình node, lựa chọn giao thức, quản lý chứng chỉ và phương thức đăng ký của client, thì tự xây dựng VPS sẽ kiểm soát được nhiều hơn và phù hợp cho việc sử dụng lâu dài.

Bài viết này nhằm giúp bạn có proxy riêng, nhưng hướng dẫn của mình không phải là toàn diện hay hoàn hảo nhất. Để đạt được nhiều chức năng hơn và cấu hình an toàn hơn, bạn cần nghiên cứu thêm nhiều hướng dẫn khác. Mục đích của hướng dẫn này là giúp bạn bắt đầu nhanh chóng.

Kết quả cuối cùng là: bạn có tên miền riêng, ví dụ: node.example.com.

Tên miền này trỏ đến VPS bạn đã mua. Dịch vụ proxy chạy trên VPS, client kết nối đến VPS thông qua tên miền này, sau đó VPS truy cập vào trang web mục tiêu.

Mối quan hệ tổng thể có thể hiểu như sau:

text
1Client Di động / Máy tính
2
3node.example.com
4
5Máy chủ Công cộng VPS
6
7Trang web Mục tiêu

Có hai thành phần chính ở đây: tên miền và VPS.

Vai trò của tên miền là cung cấp một điểm truy cập ổn định, dễ đọc và có thể ký chứng chỉ. Về lý thuyết, bạn có thể kết nối trực tiếp bằng IP của VPS, nhưng trên thực tế không được khuyến khích.

Có ba lý do:

Thứ nhất, tên miền dễ dàng di chuyển. Nếu IP VPS thay đổi, chất lượng đường truyền giảm, hoặc bạn đổi nhà cung cấp, bạn chỉ cần thay đổi bản ghi DNS của tên miền thành IP mới, và client vẫn kết nối đến cùng một tên miền.

Thứ hai, tên miền giúp dễ dàng xin chứng chỉ TLS. Bài viết này sử dụng phương án có TLS, và client xác minh chứng chỉ khi kết nối. Xin chứng chỉ bằng tên miền tự nhiên hơn và gần gũi hơn với cách sử dụng dịch vụ HTTPS thông thường.

Thứ ba, tên miền thuận tiện cho việc quản lý sau này. Ví dụ, bạn có thể đặt tên cho node chính:

node.example.com

Node dự phòng:

node2.example.com

Dịch vụ đăng ký:

sub.example.com

Điều này rõ ràng hơn nhiều so với việc nhớ một dãy IP.

Vai trò của VPS là cung cấp một máy chủ công cộng. Nó cần có IP công cộng, mạng ổn định, đủ băng thông và cho phép bạn đăng nhập qua SSH để cài đặt dịch vụ.

Bài viết này sử dụng hệ thống Ubuntu 22.04. Cấu hình không cần quá cao; 1C2G thường là đủ cho nhu cầu cá nhân. Điều bạn thực sự cần chú ý là vị trí trung tâm dữ liệu, băng thông và lưu lượng hàng tháng.

Cần lưu ý rằng giải pháp này chỉ phù hợp cho việc học tập và sử dụng cá nhân. Không chia sẻ node với người lạ, và không đăng thông tin nhạy cảm như link đăng ký, mã QR, UUID, hoặc IP máy chủ lên các trang công cộng.

2. Chuẩn Bị: Tên Miền, VPS, Tài Khoản Cloudflare, Công Cụ SSH

Trước khi bắt đầu, hãy chuẩn bị những thứ sẽ sử dụng lần này. Phần này không phức tạp, nhưng nên chuẩn bị mọi thứ một lần để tránh phải kiểm tra đi kiểm tra lại sau này.

Sự kết hợp mình thực sự sử dụng lần này là:

text
1Nhà đăng ký Tên miền: Porkbun
2Quản lý DNS: Cloudflare Miễn phí
3Khu vực VPS: Hồng Kông
4Hệ điều hành VPS: Ubuntu 22.04
5Cấu hình VPS: 1C2G / 100Mbps / 30G Ổ cứng / 300G Lưu lượng hàng tháng
6Script Máy chủ: v2ray-agent
7Lõi Proxy: Xray-core
8Giao thức Cuối cùng: VLESS + TCP + TLS + Vision
9Client Máy tính: Clash Verge
10Client Di động: Shadowrocket

Một số bạn có thể hỏi, "Ơ, nếu bạn mua VPS Hồng Kông, thì làm sao đăng ký AI?"

Haha, đừng lo. VPS này không phải để chơi AI. Nếu mục tiêu của bạn là sử dụng AI nước ngoài, thì hãy tìm một VPS ổn định tương ứng để mua. Bạn không cần phải sao chép chính xác nhà cung cấp VPS của mình; có rất nhiều đề xuất VPS trên X.

2.1 Một Tên Miền

Tên miền có thể được mua trên các nền tảng như Porkbun, Namecheap, hoặc Cloudflare Registrar. Lần này mình dùng Porkbun, giá khoảng 11 đô một năm, giá bình thường.

Khi mua tên miền, bạn chỉ cần mua tên miền; không cần thêm dịch vụ web hosting. Sau đó, chúng ta sẽ tự cấu hình dịch vụ trên VPS, và chứng chỉ sẽ được xin bằng Let's Encrypt miễn phí.

Khi mua, nên xác nhận những mục này:

text
1Tên miền đã mua thành công
2Bảo vệ quyền riêng tư Whois đã bật
3Tự động gia hạn đã bật
4Xác thực 2FA tài khoản đã bật
5Không mua thêm Web Hosting
6Không mua thêm SSL trả phí

Nhắc lại, mua tên miền không phải để tạo website, mà để cung cấp một điểm truy cập ổn định cho VPS.

Ví dụ, sau này chúng ta sẽ cấu hình một tên miền phụ:

node.example.com

Trỏ nó đến IP công cộng của VPS. Khi client kết nối, nó sẽ truy cập tên miền này thay vì ghi trực tiếp IP VPS.

naiyue777 - inline image

2.2 Một Tài Khoản Cloudflare

Cloudflare chịu trách nhiệm quản lý DNS ở đây; bạn không cần phải mua tên miền tại Cloudflare.

Cách làm thực tế của mình là:

text
1Tên miền mua tại Porkbun
2DNS quản lý bởi Cloudflare

Tức là, thay đổi Nameservers trong Porkbun thành hai Nameservers do Cloudflare cấp. Như vậy, tất cả các bản ghi DNS sẽ được cấu hình trong Cloudflare sau này.

Bước này sẽ được hướng dẫn chi tiết sau. Bây giờ, chỉ cần chuẩn bị một tài khoản Cloudflare và chọn gói miễn phí.

Mở https://dash.cloudflare.com/

Sau khi đăng ký/đăng nhập:

text
1Thêm tên miền
2
3Nhập tên miền của bạn (ví dụ: xxx.com), nhập tên miền gốc
4
5Chọn gói Free
6
7Cloudflare sẽ quét các bản ghi DNS hiện có
8
9Tiếp tục

Cloudflare cuối cùng sẽ cung cấp cho bạn hai nameservers, có định dạng như:

text
1xxxx.ns.cloudflare.com
2yyyy.ns.cloudflare.com
naiyue777 - inline image

2.3 Một VPS

VPS là máy thực sự chạy dịch vụ. Nó cần có IPv4 công cộng, quyền truy cập SSH, và các cổng 80, 443 phải có thể sử dụng được.

Mình mua từ Global Cloud, https://my.locvps.net/idcSystem.aspxhttps://my.locvps.net/idcSystem.aspx)?

Mình không quảng cáo. Nhu cầu mỗi người khác nhau; bạn có thể mua VPS bạn cần ở nơi khác dựa trên yêu cầu của mình.

naiyue777 - inline image

2.4 Công Cụ Đăng Nhập SSH

Mình sử dụng terminal tích hợp trên Mac để đăng nhập vào VPS. macOS không cần công cụ SSH bổ sung; chỉ cần mở terminal.

Định dạng lệnh đăng nhập SSH là:

text
1ssh root@<IP_VPS> -p <CỔNG_SSH>
2Ví dụ:
3ssh root@203.0.113.10 -p 43781

2.5 Phần Mềm Client

Sau khi máy chủ được thiết lập, bạn cần import node trên máy tính hoặc điện thoại.

Mình chủ yếu sử dụng hai client lần này:

text
1Mac: Clash Verge
2iPhone: Shadowrocket

Clash Verge phù hợp để import subscription. Sau đó, v2ray-agent sẽ tạo subscription định dạng ClashMeta, có thể thêm trực tiếp vào Clash Verge.

Shadowrocket phù hợp để kiểm tra một node đơn lẻ trên iPhone. Ngay cả khi không có định dạng Shadowrocket cụ thể trong subscription, bạn có thể copy link vless:// do script cài đặt xuất ra và import thủ công.

3. Kết Nối Tên Miền với Cloudflare

Sau khi mua tên miền, bước tiếp theo là giao quyền quản lý DNS cho Cloudflare.

Còn nhớ hai nameservers lúc trước không? Chúng ta sẽ cấu hình chúng.

Vai trò của hai Nameservers này là thông báo cho hệ thống DNS toàn cầu:

Tên miền này sẽ được Cloudflare quản lý các bản ghi phân giải từ bây giờ.

Nói cách khác, Porkbun vẫn là nhà đăng ký tên miền, nhưng các bản ghi DNS được chuyển sang quản lý bởi Cloudflare.

Mình sẽ dùng Porkbun làm ví dụ để minh họa cách sửa đổi. Nếu bạn mua từ các nền tảng khác, bạn có thể tự tìm cách sửa đổi.

Vào chi tiết tên miền và tìm cấu hình Nameservers.

Thay thế Nameservers gốc của Porkbun bằng hai nameservers do Cloudflare cung cấp.

naiyue777 - inline image
naiyue777 - inline image
naiyue777 - inline image

Sau khi lưu, bạn sẽ thấy hai địa chỉ Cloudflare này trong khu vực Nameserver của Porkbun.

Lưu bước này không có nghĩa là nó có hiệu lực ngay lập tức trên toàn cầu. Các thay đổi DNS cần thời gian để lan truyền, thường từ vài phút đến vài giờ. Trang Cloudflare cũng sẽ hiển thị thông báo:

Đang xác minh xem tên miền của bạn đã trỏ đến Cloudflare hay chưa.

Điều này là bình thường. Thông báo chính thức có thể nói 1 đến 2 giờ, tối đa 24 giờ. Thực tế, lần này mình chỉ đợi một lúc.

Sau khi sửa đổi, quay lại Cloudflare và đợi xác minh.

Khi thành công, Cloudflare sẽ hiển thị nội dung như:

Tên miền của bạn hiện đã được Cloudflare bảo vệ.

Hoặc hiển thị trạng thái site là Active.

Trạng thái này có nghĩa là:

Tên miền đã trỏ đến Cloudflare thành công. Các bản ghi DNS tiếp theo có thể được cấu hình trong Cloudflare.

Trước khi bước này hoàn thành, không nên vội vàng chạy script cài đặt máy chủ. Bởi vì việc xin chứng chỉ và xác minh IP tên miền sau này phụ thuộc vào việc lan truyền DNS chính xác. Nếu DNS chưa chuyển đổi hoàn toàn, bạn rất có thể sẽ gặp lỗi xác minh tên miền sau này.

Sau khi trang Cloudflare hiển thị thành công, tốt nhất nên xác nhận lại một lần nữa bằng lệnh.

Trong terminal Mac, thực thi:

dig +short NS example.com

Bình thường, nó sẽ trả về Nameservers của Cloudflare.

Nếu nó vẫn trả về Nameservers của Porkbun, điều đó có nghĩa là quản lý DNS chưa chuyển hoàn toàn sang Cloudflare. Lúc này, đừng tiếp tục cấu hình node; hãy đợi một lúc và kiểm tra lại.

4. Cấu Hình DNS: Thêm Bản Ghi và Giữ Mây Xám

Sau khi tên miền được kết nối với Cloudflare, bước tiếp theo là thêm bản ghi DNS trong Cloudflare thực sự trỏ đến VPS.

Cách sử dụng thực tế ở đây là:

text
1Tên miền gốc: xxx.com
2Tên miền Node: node.xxx.com
3IPv4 VPS: xx.xx.xx.xx
4Trạng thái bản ghi Cloudflare: DNS only

4.1 Vào Trang DNS của Cloudflare

Đăng nhập Cloudflare, vào site của bạn, sau đó mở:

text
1DNS → Records

Ở đây bạn sẽ thấy các bản ghi DNS đã được Cloudflare quét hoặc đã tồn tại.

Nếu tên miền của bạn vừa chuyển từ Porkbun sang, bạn có thể thấy một số bản ghi mặc định, chẳng hạn như:

text
1Bản ghi A
2Bản ghi CNAME
3Bản ghi MX
4Bản ghi TXT

Bạn có thể xóa những bản ghi này trước; chúng ta sẽ tự cấu hình bản ghi mới.

Vì mình định dùng 'node' làm tên miền node, mình cần thêm một bản ghi cho 'node'.

4.2 Thêm Bản Ghi A

Nhấp vào:

text
1Add record

Sau đó điền:

text
1Type: A
2Name: node
3Content: IPv4 Công cộng của VPS
4TTL: Auto
5Proxy status: DNS only
naiyue777 - inline image

4.3 Tại Sao Ở Đây Bạn Phải Chọn Mây Xám

Có hai trạng thái phổ biến cho Proxy status trong Cloudflare:

text
1Proxied: Mây cam
2DNS only: Mây xám

Trong bài viết này, bạn phải chọn:

DNS only

Tức là mây xám.

Sự khác biệt có thể hiểu đơn giản là:

Mây xám: Cloudflare chỉ chịu trách nhiệm phân giải DNS; client kết nối trực tiếp.

Mây cam: Client kết nối đến Cloudflare trước, sau đó Cloudflare chuyển tiếp đến site gốc.

Đối với các trang web thông thường, như blog, trang chủ, hoặc trang tĩnh, sử dụng mây cam cho phép bạn sử dụng CDN, WAF, bộ nhớ đệm của Cloudflare và ẩn IP gốc.

Nhưng hướng dẫn này sử dụng:

VLESS + TCP + TLS + Vision

Đây không phải là kịch bản reverse proxy cho trang web HTTP thông thường. Để cho phép client thiết lập kết nối trực tiếp với dịch vụ Xray trên VPS, bản ghi 'node' này nên giữ nguyên mây xám.

4.4 Xác Minh DNS Phân Giải Ra VPS

Sau khi lưu bản ghi DNS, thực thi trong terminal Mac:

text
1dig @1.1.1.1 +short A [tên miền của bạn, ví dụ: node.example.com]
2dig @8.8.8.8 +short A [tên miền của bạn, ví dụ: node.example.com]
3dig @223.5.5.5 +short A [tên miền của bạn, ví dụ: node.example.com]

Kết quả bình thường sẽ trả về IP VPS của bạn.

Lưu ý: Nếu máy tính của bạn đang bật proxy và sử dụng chế độ TUN, nó có thể ảnh hưởng đến đầu ra terminal. Vui lòng tắt chế độ TUN trước khi thực hiện xác minh này.

5. Khởi Tạo Máy Chủ

Đầu tiên, đăng nhập vào máy chủ qua SSH:

text
1Ví dụ:
2ssh root@203.0.113.10 -p 43781

Khi đăng nhập lần đầu, terminal có thể hỏi có tin tưởng dấu vân tay máy chủ hay không:

text
1Are you sure you want to continue connecting (yes/no/[fingerprint])?

Nhập: yes.

Sau đó nhập mật khẩu root.

Sau khi đăng nhập, trước tiên cập nhật danh sách gói:

text
1apt update
2apt upgrade -y

Nếu nó bị kẹt ở giao diện cấu hình màu xanh hoặc tím, đừng đóng cửa sổ. Ubuntu sẽ hỏi có giữ lại tệp cấu hình cục bộ khi nâng cấp một số gói nhất định.

Mình đã gặp hai lời nhắc về tệp cấu hình lần này.

Lời nhắc đầu tiên là:

naiyue777 - inline image

Lời nhắc thứ hai là:

text
1/etc/cloud/cloud.cfg

Lời nhắc trong terminal trông như sau:

text
1cloud.cfg (Y/I/N/O/D/Z) [default=N] ?

Nhấn Enter trực tiếp ở đây để sử dụng mặc định: N

Trước khi quá trình nâng cấp hoàn tất, Ubuntu có thể hiển thị giao diện:

text
1Daemons using outdated libraries
2Which services should be restarted?

Nó hỏi: một số dịch vụ vẫn đang tải các phiên bản thư viện cũ; có nên khởi động lại các dịch vụ này không?

Thông thường, giữ các lựa chọn mặc định và chọn: OK

Sau khi cập nhật hệ thống hoàn tất, cài đặt một số công cụ sẽ được sử dụng sau:

text
1apt install -y curl wget sudo vim ufw lsof unzip socat jq qrencode dnsutils

Các công cụ này sẽ được sử dụng cho:

text
1curl / wget: Tải script, kiểm tra truy cập
2ufw: Cấu hình tường lửa
3lsof / ss: Kiểm tra cổng đang sử dụng
4unzip: Giải nén tệp
5socat: Có thể được sử dụng khi xin chứng chỉ
6jq: Xử lý JSON
7qrencode: Tạo mã QR
8dnsutils: Cung cấp lệnh dig

Bước cuối cùng để kiểm tra xem tên miền có trỏ đến máy chủ không:

text
1curl -4 ifconfig.me
2dig +short A [tên miền của bạn, ví dụ: node.example.com]

Hai kết quả này phải khớp nhau.

6. Cấu Hình Tường Lửa và Sao Lưu Trước Khi Cài Đặt

Sau khi khởi tạo VPS hoàn tất, đừng vội cài đặt v2ray-agent. Hãy làm hai việc trước:

Đầu tiên, cấu hình tường lửa và xác nhận rằng các cổng SSH, 80 và 443 có sẵn.

Thứ hai, sao lưu các cấu hình quan trọng hiện tại để dễ dàng khôi phục nếu xảy ra sự cố sau này.

Bước này trông không phức tạp, nhưng rất quan trọng. Đặc biệt là tường lửa; nếu sai thứ tự, bạn có thể tự khóa mình khỏi máy chủ.

6.1 Xác Nhận Cổng Đăng Nhập Hiện Tại Trước

Trước khi cấu hình tường lửa, hãy xác nhận cổng nào bạn đang sử dụng để đăng nhập vào VPS.

Nếu lệnh đăng nhập của bạn là:

ssh root@203.0.113.10 -p 43781

Thì cổng SSH của bạn là:

43781

Đừng đoán bước này. Nhiều nhà cung cấp VPS không sử dụng cổng mặc định 22 mà cấp cho bạn một cổng SSH tùy chỉnh. Lần này mình cũng được cấp một cổng tùy chỉnh.

Nếu sau này bạn bật tường lửa nhưng quên cho phép cổng này, bạn có thể thấy:

Phiên SSH hiện tại không bị ngắt kết nối, nhưng các cửa sổ mới không bao giờ kết nối lại được với máy chủ.

Vì vậy, quy tắc tường lửa đầu tiên phải là cho phép cổng SSH.

6.2 Cho Phép Các Cổng Cần Thiết

Ba cổng cần thiết sau này trong bài viết này:

text
1Cổng SSH: Dùng để đăng nhập từ xa vào VPS
280/tcp: Dùng để xác minh chứng chỉ HTTP
3443/tcp: Dùng cho dịch vụ proxy cuối cùng

Thực thi trên VPS:

text
1ufw allow 43781/tcp
2ufw allow 80/tcp
3ufw allow 443/tcp

Nếu cổng SSH của bạn không phải là 43781, hãy thay thế bằng cổng của bạn.

Sau khi thực thi, bạn có thể kiểm tra các quy tắc trước:

ufw status verbose

Nếu nó hiển thị:

Status: inactive

Không sao cả; điều đó có nghĩa là các quy tắc đã được thêm vào, nhưng tường lửa chưa được bật.

6.3 Bật Tường Lửa UFW

Sau khi xác nhận cổng SSH đã được cho phép, hãy bật UFW:

ufw enable

Hệ thống sẽ nhắc:

Nhập:

y

Sau đó kiểm tra lại:

ufw status verbose

Bình thường bạn sẽ thấy nội dung như:

text
1Status: active
2
3To Action From
4-- ------ ----
543781/tcp ALLOW Anywhere
680/tcp ALLOW Anywhere
7443/tcp ALLOW Anywhere
843781/tcp (v6) ALLOW Anywhere (v6)
980/tcp (v6) ALLOW Anywhere (v6)
10443/tcp (v6) ALLOW Anywhere (v6)

Nếu bạn không cần IPv6, bạn có thể bỏ qua các quy tắc v6. Điều quan trọng ở đây là IPv4 SSH, 80 và 443 phải ở trạng thái ALLOW.

6.4 Mở Terminal Mới Để Kiểm Tra SSH

Sau khi bật tường lửa, đừng đóng cửa sổ SSH hiện tại ngay lập tức.

Cách đúng là: giữ cửa sổ hiện tại mở, mở một cửa sổ terminal mới trên Mac và đăng nhập lại vào VPS.

Thực thi:

ssh root@203.0.113.10 -p 43781

Nếu cửa sổ mới có thể đăng nhập bình thường, điều đó có nghĩa là tường lửa không chặn SSH.

Sau khi xác nhận mọi thứ ổn, hãy tiếp tục các bước tiếp theo.

Nếu cửa sổ mới không thể đăng nhập nhưng cửa sổ cũ vẫn còn, bạn có thể kiểm tra ngay lập tức:

ufw status verbose

Xác nhận xem bạn có quên cho phép cổng SSH hay không. Nếu thực sự cấu hình sai, bạn có thể tạm thời tắt UFW:

ufw disable

Sau đó cấu hình lại.

6.5 Sao Lưu Trước Khi Cài Đặt

Sau khi xác nhận tường lửa ổn, hãy bắt đầu sao lưu.

Mục tiêu của bước này là lưu trạng thái quan trọng trước khi cài đặt v2ray-agent. Sau đó, script sẽ thay đổi Nginx, thư mục chứng chỉ, cấu hình Xray, v.v. Nếu cài đặt thất bại, ít nhất bạn biết nó trông như thế nào trước đó.

Thực thi:

mkdir -p /root/backup-before-v2ray-agent

Sao lưu cấu hình Nginx:

Sao lưu thư mục chứng chỉ Let's Encrypt:

Sao lưu cấu hình SSH:

naiyue777 - inline image

Ghi lại các cổng đang sử dụng hiện tại:

ss -tulpn > /root/backup-before-v2ray-agent/ports-before.txt

Ghi lại trạng thái tường lửa hiện tại:

ufw status verbose > /root/backup-before-v2ray-agent/ufw-status.txt

Cuối cùng, kiểm tra kết quả sao lưu:

ls -lah /root/backup-before-v2ray-agent

Đầu ra của mình lúc đó tương tự như:

text
1total 28K
2drwxr-xr-x 4 root root 4.0K May 2 08:02 .
3drwx------ 6 root root 4.0K May 2 08:02 ..
4drwxr-xr-x 9 root root 4.0K May 2 07:56 letsencrypt
5drwxr-xr-x 8 root root 4.0K May 2 07:56 nginx
6-rw-r--r-- 1 root root 1.1K May 2 08:02 ports-before.txt
7-rw-r--r-- 1 root root 3.1K May 2 06:58 sshd_config
8-rw-r--r-- 1 root root 600 May 2 08:02 ufw-status.txt

6.6 Kiểm Tra Cổng Đang Sử Dụng Hiện Tại

Trước khi cài đặt v2ray-agent, tốt nhất nên xem 80 và 443 đã bị chiếm dụng chưa.

Thực thi:

Nếu không có đầu ra, điều đó có nghĩa là không có tiến trình nào đang lắng nghe trên cổng 80 hoặc 443.

Nếu Nginx đã được cài đặt, bạn có thể thấy Nginx đang lắng nghe trên cổng 80 hoặc 443. Sau đó, script v2ray-agent thường sẽ xử lý cấu hình Nginx, nhưng ít nhất bạn nên biết trạng thái trước khi cài đặt.

7. Cài Đặt v2ray-agent và Chọn Xray + VLESS Vision

Sau khi máy chủ đã sẵn sàng, bạn có thể chính thức cài đặt chương trình máy chủ.

Những gì mình sử dụng lần này là:

text
1Script máy chủ: v2ray-agent
2Lõi: Xray-core
3Giao thức: VLESS + TCP + TLS + Vision
4Cổng: 443
5Tên miền: node.example.com
6Chứng chỉ: Let's Encrypt

7.1 Tải và Chạy Script Cài Đặt

Thực thi trên VPS:

wget -P /root -N --no-check-certificate "https://raw.githubusercontent.com/mack-a/v2ray-agent/master/install.sh"; && chmod 700 /root/install.sh && /root/install.sh

Lệnh này thực hiện ba việc:

text
1Tải install.sh về /root
2Thêm quyền thực thi cho install.sh
3Chạy script cài đặt

Khi mình chạy, thông tin script hiển thị tương tự như:

text
1Tác giả: mack-a
2Phiên bản hiện tại: v3.5.14
3Github: https://github.com/mack-a/v2ray-agent
4Mô tả: Script đồng tồn tại tám trong một

Menu chính sẽ xuất hiện sau khi script cài đặt chạy:

text
11. Cài đặt
22. Cài đặt kết hợp tùy chỉnh
33. Một chạm không tên miền
44. Quản lý Hysteria 2
55. Quản lý REALITY
66. Quản lý Tuic
77. Quản lý người dùng
88. Quản lý trang giả
99. Quản lý chứng chỉ
1010. Quản lý CDN node
11...

Chọn ở đây:

Cài đặt kết hợp tùy chỉnh

Lý do là chúng ta muốn chọn rõ ràng:

text
1Xray-core
2VLESS + TLS_Vision + TCP

Đừng để script đưa chúng ta vào các đường dẫn không tên miền hoặc mặc định khác.

7.2 Chọn Lõi: Xray-core

Sau khi vào cài đặt kết hợp tùy chỉnh, script sẽ nhắc chọn lõi:

text
1Chức năng 1/1: Chọn cài đặt lõi
2
31. Xray-core
42. sing-box

Mình chọn ở đây:

Xray-core

Lý do là mình đi theo phương án cổ điển Xray + VLESS Vision, có khả năng tương thích trưởng thành, và các client như Clash Verge và Shadowrocket có thể hỗ trợ.

Nhập:

1

Sau đó nhấn Enter.

7.3 Chọn Giao Thức: VLESS + TLS Vision + TCP

Tiếp theo, script sẽ hiển thị danh sách các giao thức. Các tùy chọn mình thấy lúc đó tương tự như:

text
10. VLESS+TLS_Vision+TCP [Được khuyến nghị]
21. VLESS+TLS+WS [Chỉ khuyến nghị cho CDN]
33. VMess+TLS+WS [Chỉ khuyến nghị cho CDN]
44. Trojan+TLS [Không khuyến nghị]
57. VLESS+Reality+uTLS+Vision [Được khuyến nghị]
612. VLESS+Reality+X_HTTP+TLS [Có thể dùng CDN]

Chọn ở đây:

VLESS+TLS_Vision+TCP [Được khuyến nghị]

Nhập:

0

Sau đó nhấn Enter.

7.4 Cài Đặt Các Thành Phần Cơ Bản

Sau khi chọn giao thức, script sẽ bắt đầu cài đặt các phụ thuộc.

Quá trình mình thấy tương tự như:

text
1Tiến độ 1/12: Cài đặt công cụ
2---> Kiểm tra và cài đặt bản cập nhật
3---> Cài đặt unzip
4---> Cài đặt socat
5---> Cài đặt crontabs
6---> Cài đặt jq
7---> Cài đặt ping6
8---> Cài đặt qrencode
9---> Cài đặt nginx
10---> Cài đặt acme.sh

Một số thành phần sẽ được sử dụng sau sẽ được cài đặt ở đây:

text
1nginx: Liên quan đến trang giả và chuyển tiếp cục bộ
2acme.sh: Xin chứng chỉ TLS
3jq: Xử lý cấu hình
4qrencode: Tạo mã QR
5socat: Có thể được sử dụng trong quá trình xin chứng chỉ

Bước này có thể chậm hơn trên máy mới. Nếu không có đầu ra trong một thời gian dài, hãy đợi một lúc; đừng ngắt quãng thường xuyên.

7.5 Nhập Tên Miền Node

Script sẽ sau đó vào quá trình khởi tạo Nginx và chứng chỉ, nhắc nhập tên miền:

Vui lòng nhập tên miền cần cấu hình Ví dụ: www.v2ray-agent.com --->

Nhập tên miền của bạn, chẳng hạn như:

node.example.com

Lưu ý rằng bạn nên nhập toàn bộ tên miền phụ (subdomain) tại đây, không phải tên miền gốc.

7.6 Nhập Cổng: Sử Dụng Mặc Định 443

Sau khi nhập tên miền, script sẽ yêu cầu nhập cổng:

Vui lòng nhập cổng [Mặc định: 443], có thể nhập cổng tùy chỉnh [Nhấn Enter để dùng mặc định]

Nhấn Enter trực tiếp tại đây để sử dụng mặc định:

443

Script của tôi hiển thị:

---> Cổng: 443

Tường lửa đã cho phép:

443/tcp

Vì vậy có thể dùng trực tiếp tại đây.

7.7 Chờ Xác Minh IP Tên Miền

Sau khi cổng được xác nhận, script sẽ kiểm tra xem phân giải tên miền có đúng không.

Thông thường bạn sẽ thấy nội dung như:

text
1---> Xác minh IP tên miền thành công
2---> Đang xóa cấu hình mặc định của Nginx
3---> Nginx đã khởi động thành công
4---> Nginx đã đóng thành công
5---> Phát hiện cổng 443 đang mở
6---> Đang kiểm tra IP tên miền
7---> IP tên miền hiện tại đúng

Nếu bước này thất bại, đừng ép buộc cài đặt. Hãy quay lại kiểm tra DNS trước:

dig @1.1.1.1 +short A node.example.com

dig @8.8.8.8 +short A node.example.com

Đảm bảo kết quả trả về IP của VPS.

Cũng hãy kiểm tra xem bản ghi này trên Cloudflare có phải là đám mây xám hay không:

Trạng thái Proxy: Chỉ DNS

Nếu được đặt thành đám mây cam, khả năng phát hiện của script và các kết nối sau đó có thể bất thường.

7.8 Xin Chứng Chỉ TLS

Tiếp theo, bước xin chứng chỉ:

Tiến trình 3/12: Đang xin chứng chỉ TLS

Script sẽ hỏi:

Bạn có muốn sử dụng DNS API để xin chứng chỉ [Hỗ trợ NAT]? [y/n]

Tôi chọn:

n

Lý do là VPS này có IPv4 công khai, và cổng 80 và 443 đã được cho phép, nên không cần dùng DNS API để xin chứng chỉ.

Sau đó script sẽ cho bạn chọn tổ chức cấp chứng chỉ:

text
11. letsencrypt [Mặc định]
22. zerossl
33. buypass [Không hỗ trợ đăng ký DNS]

Nhấn Enter trực tiếp tại đây để sử dụng mặc định:

letsencrypt

Let's Encrypt là chứng chỉ miễn phí, hoàn toàn đủ dùng cho cá nhân. Bản thân chứng chỉ không phải yếu tố chính gây ra bất thường node; điều thực sự cần đảm bảo là:

Phân giải tên miền chính xác

Xin chứng chỉ thành công

Tác vụ gia hạn bình thường

Cấu hình máy chủ chính xác

7.9 UUID và Tên Người Dùng

Sau đó, script sẽ yêu cầu UUID:

Vui lòng nhập UUID tùy chỉnh [phải hợp lệ], [Nhấn Enter] để tạo UUID ngẫu nhiên

Khuyến nghị nhấn Enter trực tiếp để script tự động tạo ngẫu nhiên.

Tiếp theo là yêu cầu tên người dùng:

Vui lòng nhập tên người dùng tùy chỉnh [phải hợp lệ], [Nhấn Enter] để tạo tên ngẫu nhiên

Bạn cũng có thể nhấn Enter trực tiếp để tạo ngẫu nhiên. Bạn cũng có thể nhập tên dễ nhận biết cho mình, nhưng đừng dùng tên thật, số điện thoại, email hoặc thông tin cá nhân khác.

7.10 Xuất Tài Khoản Sau Khi Cài Đặt

Sau khi cài đặt hoàn tất, script sẽ bước vào bước cuối cùng:

Tiến trình 12/12: Tài khoản

Kết quả của tôi lúc đó là:

text
1VLESS TCP TLS_Vision [Khuyến nghị]
2Định dạng chung (VLESS+TCP+TLS_Vision)
3vless://...
4Văn bản thuần đã định dạng (VLESS+TCP+TLS_Vision)
5Loại giao thức: VLESS
6Địa chỉ: node.example.com
7Cổng: 443
8ID người dùng: ...
9Bảo mật: tls
10client-fingerprint: chrome
11Phương thức truyền: tcp
12flow: xtls-rprx-vision
13Tên tài khoản: ...
14Mã QR VLESS

Điều này cho thấy máy chủ đã tạo một node VLESS Vision.

7.11 Kiểm Tra Trạng Thái Xray và Nginx

Sau khi cài đặt, đừng vội import vào client. Hãy kiểm tra trạng thái dịch vụ trên VPS trước:

text
1systemctl status xray --no-pager
2systemctl status nginx --no-pager
3ss -tulpn | grep -E '(:443|:80|xray|nginx)'

Kết quả chính tôi đã kiểm tra:

text
1xray.service active (running)
2nginx.service active (running)
3xray listening on public *:443
4nginx listening on 127.0.0.1:31300 and 127.0.0.1:31302

Điều này có nghĩa là:

Cổng 443 công khai được Xray tiếp quản, Nginx cung cấp trang web giả hoặc dịch vụ phụ trợ trên các cổng nội bộ, và các dịch vụ đã khởi động bình thường.

Nếu xray.service không active (running), bạn cần xem log trước; đừng tiếp tục import vào client.

Bạn có thể thực thi:

journalctl -u xray --no-pager -n 80

8. Tạo Liên Kết Đăng Ký và Chuẩn Bị cho Clash Verge

Sau khi cài đặt ở phần trước, script đã xuất ra một liên kết node vless:// đơn lẻ. Liên kết này có thể import trực tiếp vào các client như Shadowrocket.

Nhưng nếu bạn đang sử dụng Clash Verge trên Mac, khuyến nghị nên tạo một liên kết đăng ký (subscription link).

Lợi ích của liên kết đăng ký là:

text
1Client chỉ cần thêm đăng ký một lần
2Làm mới đăng ký khi thông tin node thay đổi
3Quản lý dễ dàng hơn cho nhiều người dùng hoặc nhiều node
4Clash Verge có thể sử dụng trực tiếp định dạng ClashMeta

Khi tôi thực sự tạo đăng ký, tôi đã sử dụng chức năng quản lý người dùng của v2ray-agent:

text
1vasma
2→ 7. Quản lý người dùng
3→ 2. Xem đăng ký
4→ Chọn định dạng ClashMeta

8.1 Mở Lại Menu v2ray-agent

Sau khi script cài đặt kết thúc, nó sẽ tự động tạo một lệnh tắt:

vasma

Thực thi trên VPS:

vasma

Điều này sẽ mở lại menu chính của v2ray-agent.

Trong menu, bạn có thể thấy:

text
11. Cài đặt
22. Cài đặt kết hợp tùy chỉnh
33. Một chạy không tên miền
44. Quản lý Hysteria 2
55. Quản lý REALITY
66. Quản lý Tuic
77. Quản lý người dùng
88. Quản lý trang web giả
99. Quản lý chứng chỉ
1010. Quản lý node CDN
11...

Chọn tại đây:

Quản lý người dùng

8.2 Vào Xem Đăng Ký

Sau khi vào quản lý người dùng, bạn sẽ thấy menu như:

text
1Chức năng 1/1: Quản lý tài khoản
2
31. Xem tài khoản
42. Xem đăng ký
53. Quản lý đăng ký khác
64. Thêm người dùng
75. Xóa người dùng

Chọn tại đây:

Xem đăng ký

Bước này sẽ tạo lại nội dung đăng ký cho tài khoản cục bộ.

Script cũng sẽ nhắc nhở điều gì đó như:

Xem đăng ký sẽ tạo lại đăng ký cho tài khoản cục bộ. Bạn cần nhập thủ công giá trị muối (salt) đã mã hóa md5. Nếu không biết, chỉ cần dùng một giá trị ngẫu nhiên. Nó không ảnh hưởng đến nội dung của các đăng ký từ xa đã được thêm.

Nếu bạn chỉ dùng cho riêng mình, chỉ cần dùng giá trị ngẫu nhiên mặc định.

8.3 Nhập Cổng Đăng Ký

Script sẽ nhắc:

text
1Bắt đầu cấu hình đăng ký, vui lòng nhập cổng đăng ký
2
3Vui lòng nhập cổng tùy chỉnh [phải hợp lệ], các cổng không được trùng lặp, [Nhấn Enter] để lấy cổng ngẫu nhiên

Có hai lựa chọn tại đây:

Nhấn Enter trực tiếp: Script tạo một cổng ngẫu nhiên

Nhập thủ công một cổng: Dễ nhớ cho bạn, nhưng không được xung đột với các cổng hiện có

Tôi khuyên người mới bắt đầu nên nhấn Enter trực tiếp để script tạo cổng ngẫu nhiên.

Nếu bạn chọn cổng tùy chỉnh, bạn cần xác nhận thêm:

Cổng không bị chiếm dụng

Tường lửa đã cho phép cổng này

Nhóm bảo mật của nhà cung cấp cũng cho phép cổng này

Để giảm biến số, sử dụng cổng ngẫu nhiên cho lần cấu hình đầu tiên sẽ dễ dàng hơn.

8.4 Nhắc Trang Web Giả

Script có thể nhắc:

Bắt đầu thêm trang web giả

Phát hiện đã cài đặt trang web giả, bạn có muốn cài đặt lại không [y/n]

Nếu bạn đã cấu hình trang web giả khi cài đặt VLESS Vision trước đó, thường chọn:

n

Có nghĩa là không cài đặt lại.

Cài đặt lại cũng không sao, nhưng không cần thêm biến số trong hướng dẫn cho người mới bắt đầu. Mục tiêu hiện tại của chúng ta chỉ là tạo một liên kết đăng ký, không phải cấu hình lại trang web giả.

8.5 Cách Chọn Giá Trị Muối (Salt)

Sau đó, script sẽ yêu cầu một muối:

Vui lòng nhập giá trị muối, [Nhấn Enter] để sử dụng ngẫu nhiên

Chỉ cần nhấn Enter tại đây.

Vai trò của muối có thể hiểu đơn giản là:

Một giá trị ngẫu nhiên dùng để tạo nội dung liên quan đến đăng ký

Không cần chỉ định thủ công cho mục đích cá nhân. Một giá trị ngẫu nhiên thực sự an toàn hơn và tránh việc sử dụng lại các chuỗi cố định.

8.6 Chọn Định Dạng Đăng Ký ClashMeta

Sau khi đăng ký được tạo, script sẽ hiển thị nhiều định dạng.

Bạn sẽ thấy:

Default

ClashMeta

sing-box

Đối với việc sử dụng Clash Verge trên Mac, khuyến nghị chọn:

ClashMeta

Lý do là Clash Verge hỗ trợ cấu hình ClashMeta tốt hơn, và các trường như VLESS Vision, fingerprint, flow cũng phù hợp hơn với định dạng ClashMeta.

Nếu bạn sử dụng client khác, bạn có thể chọn dựa trên hỗ trợ của client:

Clash Verge: ClashMeta

sing-box: sing-box

Shadowrocket: Thường có thể import trực tiếp liên kết vless:// đơn lẻ

Đừng chỉ copy định dạng "Default" vào Clash Verge. Hãy sử dụng ClashMeta nếu có.

8.7 Lưu Liên Kết Đăng Ký

Sau khi script xuất ra liên kết đăng ký, hãy copy liên kết đăng ký ClashMeta và lưu nó ở một nơi an toàn trên máy tính trước.

Lưu ý: Không lưu nó trong các kho lưu trữ công khai, không đăng nó trong bài viết, và không hiển thị toàn bộ liên kết trong ảnh chụp màn hình.

Lý do đơn giản: nếu người khác có được liên kết đăng ký của bạn, họ có thể sử dụng node của bạn, tiêu tốn băng thông VPS của bạn, và thậm chí khiến node bị lạm dụng.

9. Import Đăng Ký vào Clash Verge và Kiểm Tra

Máy chủ đã được cài đặt và liên kết đăng ký đã được tạo. Tiếp theo, cấu hình client trên Mac.

9.1 Thêm Đăng Ký

Mở Clash Verge và vào trang cấu hình. Các phiên bản khác nhau có thể có văn bản giao diện khác nhau một chút, thường gọi là:

Profiles

Hoặc:

Configuration

Nhấp để thêm đăng ký mới và điền liên kết đăng ký ClashMeta đã tạo ở bước trước.

Thông thường bạn cần điền:

Name: Tùy chỉnh, ví dụ: My VPS

Type: Remote

URL: Liên kết đăng ký ClashMeta

Đừng đặt toàn bộ liên kết đăng ký vào tên.

Sau khi điền xong, lưu lại, sau đó nhấp để cập nhật đăng ký.

Nếu đăng ký bình thường, Clash Verge sẽ kéo cấu hình node và hiển thị node VLESS Vision vừa tạo trong danh sách node.

9.2 Chọn Node

Sau khi đăng ký được cập nhật thành công, vào trang chọn node.

Thông thường, bạn sẽ thấy một hoặc nhiều nhóm chính sách, ví dụ:

ProxyAutoGlobalNodeName

Chọn node vừa tạo.

9.3 Bật System Proxy hoặc TUN

Clash Verge thường có hai công tắc phổ biến:

System Proxy

TUN Mode

Hiểu đơn giản:

System Proxy: Cho phép hầu hết các ứng dụng tuân theo cài đặt proxy hệ thống đi qua Clash

TUN Mode: Ở cấp độ thấp hơn, chiếm nhiều lưu lượng hơn, bao gồm một số ứng dụng không tuân theo proxy hệ thống

Khi kiểm tra lần đầu, bạn có thể bật:

System Proxy

Sau đó sử dụng trình duyệt để truy cập một trang web kiểm tra.

Nếu một số ứng dụng không tuân theo proxy hệ thống, thì hãy xem xét bật TUN.

9.4 Kiểm Tra IP Thoát

Mở trình duyệt và truy cập:

https://ifconfig.me

Nếu proxy đang hoạt động, IP hiển thị trên trang sẽ là IP thoát của VPS, không phải IP băng thông rộng cục bộ hoặc IP nhà mạng di động của bạn.

Bạn cũng có thể thực thi trong terminal:

curl https://ifconfig.me

Nếu system proxy của Clash Verge không hoạt động với terminal, hãy sử dụng kết quả trang trình duyệt làm tiêu chuẩn.

9.5 Kiểm Tra Các Trang Web Bên Ngoài và Video

Sau khi IP thoát bình thường, bạn có thể tiếp tục kiểm tra một số trang web:

text
1Google
2YouTube
3GitHub
4Telegram
5Các trang web bạn thực sự cần truy cập

Khi kiểm tra, đừng chỉ kiểm tra xem trang chủ có mở được không, mà hãy kiểm tra:

Trang web có tải bình thường không

text
1Trang web có tải bình thường không
2Video có phát được không
3Có ổn định trong vài phút không
4Có thường xuyên mất kết nối không
5Tốc độ có đáp ứng kỳ vọng không

Nếu YouTube có thể mở nhưng video rất lag, không nhất thiết là lỗi cấu hình; có thể là:

text
1Chất lượng đường truyền VPS trung bình
2Tắc nghẽn giờ cao điểm
3Giới hạn băng thông hàng tháng
4Quy tắc client chưa được đặt đúng

Nếu một trang web cụ thể báo lỗi nhưng các trang web khác bình thường, đừng vội cài đặt lại máy chủ. Bạn có thể đánh giá theo các ý tưởng sau:

text
1Chỉ một trang web bất thường: Ưu tiên kiểm tra quy tắc, DNS và hạn chế của trang web đích
2Tất cả các trang web đều bất thường: Ưu tiên kiểm tra kết nối node, đăng ký và trạng thái máy chủ
3Điện thoại có thể truy cập nhưng Mac không thể: Ưu tiên kiểm tra Clash Verge / TUN / Fake-IP
4VPS có thể truy cập qua curl nhưng client không thể: Ưu tiên kiểm tra cấu hình client

Lời Kết

Khi tất cả các bước trên đã hoàn thành, xin chúc mừng, bạn đã có proxy riêng của mình!

Hãy cực kỳ cẩn thận không chia sẻ nó với người khác, và đặc biệt không liên quan đến giao dịch tiền bạc, vì điều đó có thể rất nguy hiểm~

Ngoài ra, xin nhắc lại, hướng dẫn này chỉ dành cho mục đích bắt đầu. Nhiều chuyên gia sẽ thực hiện thêm nhiều cấu hình bổ sung hoặc sử dụng các giao thức khác; hãy tự khám phá thêm nhé!

Bài viết này được tự động chuyển đổi và định dạng từ Markdown bởi YouMind.

Lưu một chạm

Đọc sâu bài viết viral bằng AI trong YouMind

Lưu nguồn, đặt câu hỏi tập trung, tóm tắt lập luận và biến một bài viết viral thành các ghi chú có thể tái sử dụng trong một không gian làm việc AI duy nhất.

Khám phá YouMind
Dành cho nhà sáng tạo

Biến Markdown của bạn thành bài viết 𝕏 gọn gàng

Khi bạn đăng bài viết dài của riêng mình, việc định dạng hình ảnh, bảng và khối mã cho 𝕏 rất mệt mỏi. YouMind biến cả bản nháp Markdown thành một bài viết 𝕏 gọn gàng, sẵn sàng để đăng.

Thử Markdown sang 𝕏

Thêm pattern để giải mã

Bài viết viral gần đây

Khám phá thêm bài viết viral