V2Ray upstream proxy: đưa outbound qua proxy HTTP, SOCKS5
V2Ray upstream proxy là cách cho V2Ray core chuyển lưu lượng ra ngoài qua một proxy HTTP hoặc SOCKS5 khác, thay vì đi thẳng từ máy đang chạy. ProxyVN đã tải V2Ray 5.53.0 từ trang phát hành chính thức, dựng proxy thử có mật khẩu và chạy bảy tình huống. Bài ghi lại cấu hình chạy được, số liệu đo và các lỗi chỉ thấy khi làm thật.
V2Ray upstream proxy dùng trong tình huống nào
V2Ray là phần mềm định tuyến mạng mã nguồn mở. Nó nhận kết nối ở phía vào, gọi là inbound, rồi gửi đi ở phía ra, gọi là outbound. Mỗi outbound dùng một giao thức: đi thẳng (freedom), chặn (blackhole), giao thức riêng như VMess, VLESS, hoặc proxy thường là http và socks.
Upstream proxy nghĩa là proxy nằm phía trên, tức chặng tiếp theo sau V2Ray. Khi anh em đặt outbound kiểu socks hoặc http trỏ tới máy chủ proxy, V2Ray không tự kết nối tới website nữa. Nó nhờ proxy kết nối giúp, website chỉ thấy IP của proxy.
Ba tình huống hay gặp
Tình huống đầu là anh em đã có sẵn V2Ray làm bộ định tuyến cục bộ cho máy hoặc cho cả nhóm, giờ cần một phần lưu lượng ra bằng IP Việt Nam hay IP dân cư. Thay vì cài thêm một công cụ khác, chỉ cần thêm một outbound trỏ tới proxy và một quy tắc định tuyến.
Tình huống thứ hai là công cụ thu thập dữ liệu chỉ hỗ trợ một proxy duy nhất, trong khi anh em muốn tên miền A đi proxy này, tên miền B đi proxy khác, mạng nội bộ đi thẳng. V2Ray đứng giữa, nhận một cổng SOCKS cục bộ rồi chia luồng theo quy tắc.
Tình huống thứ ba là máy chủ chỉ ra được Internet qua một proxy HTTP của công ty. Tài liệu V2Ray gọi đây là proxy phía trước (front proxy). Outbound chính vẫn là VMess hay Shadowsocks tới máy chủ của anh em, nhưng kết nối TCP tới máy chủ đó phải đi qua proxy HTTP trước.
Giới hạn cần biết trước
Proxy HTTP chỉ mang được TCP. Trang tài liệu giao thức HTTP của V2Ray ghi rõ outbound http không hỗ trợ UDP, nên truy vấn DNS qua định tuyến và mọi giao thức UDP sẽ không đi qua được. Proxy SOCKS5 có lệnh UDP ASSOCIATE, nhưng nhiều nhà cung cấp tắt lệnh này.
Proxy HTTP cũng không mã hóa đường truyền giữa V2Ray và proxy. Tài liệu khuyên chỉ dùng http như một chặng nội bộ hoặc proxy phía trước, không dùng để chuyển dữ liệu nhạy cảm qua mạng công cộng. Nếu website đích dùng HTTPS thì nội dung vẫn được TLS bảo vệ, proxy chỉ thấy tên miền và cổng.
Thêm một chặng là thêm độ trễ. Proxy cũng không tự vượt CAPTCHA, không xóa dấu vân tay trình duyệt và không thay được việc tuân thủ điều khoản của website. Bài này chỉ bàn phần mạng.
Chuẩn bị trước khi cấu hình V2Ray upstream proxy
Trước khi sửa file cấu hình, anh em cần biết mình đang chạy bản nào, file cấu hình viết theo định dạng nào và proxy được cấp là loại gì. Ba thứ này quyết định cú pháp đúng.
Phiên bản V2Ray dùng để thử
Mình tải gói v2ray-windows-64.zip bản 5.53.0 từ trang phát hành V2Ray core trên GitHub, phát hành ngày 02/08/2026. Gói đi kèm file .dgst chứa mã băm. Mình so mã SHA2-256 của file tải về với mã trong file .dgst, hai giá trị trùng khớp trước khi giải nén.
(Get-FileHash .\v2ray-windows-64.zip -Algorithm SHA256).Hash
Select-String -Path .\v2ray-windows-64.zip.dgst -Pattern "SHA2-256"
.\v2ray.exe version
Lệnh version in ra dòng V2Ray 5.53.0 (V2Fly, a community-driven edition of V2Ray). Anh em nên kiểm mã băm mỗi lần tải, nhất là khi lấy file từ trang chia sẻ khác ngoài GitHub của dự án.
Định dạng v4 và v5
V2Ray 5 đọc được hai kiểu file JSON. Kiểu cũ thường gọi là v4, có các khóa inbounds, outbounds, routing quen thuộc. Kiểu mới là jsonv5, cấu trúc khác. Bản 5.53.0 vẫn chạy file v4 với lệnh run -c, mọi ví dụ trong bài dùng kiểu này vì phần lớn tài liệu và giao diện như v2rayN vẫn xuất ra v4.
Nếu anh em chép một đoạn cấu hình trên mạng, nhìn tên khóa để biết nó thuộc kiểu nào. Trộn hai kiểu trong cùng một file là nguyên nhân hay gặp của lỗi không đọc được cấu hình.
Xray dùng chung cú pháp này được không
Xray là một nhánh tách ra từ V2Ray, giữ phần lớn cú pháp v4. Tài liệu outbound của Xray có cùng các khóa protocol, settings, tag, streamSettings. Tuy vậy Xray đã chuyển phần nối chuỗi sang sockopt.dialerProxy thay cho proxySettings. Mình chỉ chạy thử V2Ray, nên phần Xray anh em đối chiếu tài liệu của đúng bản đang dùng.
Thông tin proxy cần có
Một proxy upstream cần năm thông tin: loại (HTTP hay SOCKS5), địa chỉ, cổng, tên đăng nhập và mật khẩu. Nếu nhà cung cấp xác thực bằng IP thì bỏ hai trường cuối nhưng phải thêm IP máy chạy V2Ray vào danh sách cho phép. Bài xác thực proxy bằng IP whitelist hay user password so sánh hai cách này.
Proxy thường được cấp dạng chuỗi ip:port:user:pass. V2Ray không nhận chuỗi này mà cần tách thành từng trường trong JSON. Bài định dạng proxy giải thích cách đọc các kiểu chuỗi khác nhau.
Môi trường thử
Mình dựng một trang đích trả về đường dẫn và User-Agent, một proxy HTTP và một proxy SOCKS5 cùng yêu cầu tài khoản user1 với mật khẩu p@ss#2026. Hai proxy ghi log mọi yêu cầu, gồm lệnh, địa chỉ đích và xác thực có đúng hay không. Các tên miền đuôi .test chỉ proxy phân giải được, máy chạy V2Ray thì không.
Cách sắp đặt này giúp biết chắc ai phân giải tên miền. Nếu proxy nhận được tên miền, tức DNS do proxy làm. Nếu V2Ray tự phân giải, nó sẽ báo lỗi không tìm thấy máy chủ.

Inbound, routing, outbound, upstream
Cấu hình V2Ray upstream proxy bằng outbound socks và http
Phần này là cấu hình chính. Mình đặt hai inbound cục bộ, một SOCKS ở cổng 10808 và một HTTP ở cổng 10809, rồi khai báo hai outbound tới hai proxy upstream và một outbound đi thẳng.
File cấu hình đầy đủ
{
"log": {"loglevel": "info"},
"inbounds": [
{"tag": "in-socks", "protocol": "socks", "listen": "127.0.0.1", "port": 10808, "settings": {"udp": true}},
{"tag": "in-http", "protocol": "http", "listen": "127.0.0.1", "port": 10809}
],
"outbounds": [
{"tag": "up-socks", "protocol": "socks",
"settings": {"servers": [{"address": "127.0.0.1", "port": 8903,
"users": [{"user": "user1", "pass": "p@ss#2026"}]}]}},
{"tag": "up-http", "protocol": "http",
"settings": {"servers": [{"address": "127.0.0.1", "port": 8902,
"users": [{"user": "user1", "pass": "p@ss#2026"}]}]}},
{"tag": "direct", "protocol": "freedom"}
],
"routing": {
"domainStrategy": "AsIs",
"rules": [
{"type": "field", "domain": ["full:shop-a.test"], "outboundTag": "up-http"},
{"type": "field", "domain": ["full:noi-bo.test"], "outboundTag": "direct"}
]
}
}
Khi dùng proxy thật, thay 127.0.0.1 và các cổng 8902, 8903 bằng địa chỉ và cổng nhà cung cấp cấp cho anh em. Giữ inbound lắng nghe ở 127.0.0.1 để chỉ máy này dùng được cổng SOCKS, tránh biến máy thành proxy mở cho cả mạng.
Giải thích từng khối
Khối inbounds khai báo cổng mà ứng dụng trên máy sẽ kết nối vào. Trình duyệt, curl hay công cụ thu thập dữ liệu chỉ cần trỏ proxy về 127.0.0.1:10808, mọi chuyện còn lại V2Ray lo.
Khối outbounds liệt kê các đường ra. Outbound đầu tiên trong danh sách là đường ra mặc định, dùng khi không có quy tắc nào khớp. Trong file trên, mặc định là up-socks, nên mọi tên miền không nằm trong quy tắc sẽ đi proxy SOCKS5.
Khối routing chứa quy tắc. Quy tắc đầu gửi riêng shop-a.test qua proxy HTTP. Quy tắc thứ hai cho noi-bo.test đi thẳng. Tiền tố full: nghĩa là khớp đúng tên miền đó, không khớp tên miền con.
Mật khẩu có ký tự đặc biệt
Một điểm tiện của V2Ray là tài khoản proxy nằm trong hai trường user và pass riêng của JSON. Mật khẩu p@ss#2026 có ký tự @ và # được ghi nguyên văn, không cần mã hóa phần trăm như khi viết proxy dạng URL. Proxy thử nhận đúng tài khoản ở cả outbound socks lẫn http.
Khi chuyển sang công cụ khác dùng URL dạng http://user:pass@host:port, anh em phải đổi @ thành %40 và # thành %23. Nhiều lỗi xác thực khi chuyển cấu hình giữa các công cụ bắt nguồn từ chỗ này.
Kiểm cú pháp trước khi chạy
V2Ray có lệnh test để đọc cấu hình mà không mở cổng. Mình chạy lệnh này cho cả bốn file cấu hình trong bài, cả bốn đều trả về Configuration OK.
.\v2ray.exe test -c client.json
.\v2ray.exe run -c client.json
Lệnh test chỉ kiểm cú pháp và tên khóa. Nó không kết nối thử tới proxy, nên Configuration OK chưa có nghĩa là mật khẩu đúng. Phần kiểm tra IP bên dưới mới xác nhận được đường đi thật.
Kết quả chạy thử cấu hình chính
Mình gửi yêu cầu bằng curl qua cổng SOCKS 10808 tới shop-b.test, tên miền không có quy tắc. Proxy SOCKS5 ghi nhận một lệnh CONNECT, địa chỉ đích là tên miền shop-b.test, xác thực đúng. Trang đích trả về đủ dữ liệu.
Với shop-a.test, quy tắc đẩy sang outbound http. Proxy HTTP ghi nhận lệnh CONNECT shop-a.test:8901, dù URL gửi đi là http thường chứ không phải https. Nghĩa là outbound http của V2Ray luôn mở đường hầm CONNECT, không gửi yêu cầu dạng URL đầy đủ như trình duyệt làm với proxy HTTP.
Điểm này quan trọng khi proxy của anh em chặn CONNECT tới cổng khác 443. Một số proxy công ty chỉ cho CONNECT tới cổng 443, khi đó outbound http sẽ hỏng với website chạy cổng 80 hoặc cổng lạ, dù trình duyệt dùng cùng proxy vẫn vào được.
Chia luồng và nối chuỗi V2Ray upstream proxy
Hai tính năng làm V2Ray khác một proxy client thông thường là định tuyến theo quy tắc và nối chuỗi outbound. Phần này đi qua cả hai, kèm kết quả đo.
Chia luồng theo tên miền và dải IP
Quy tắc định tuyến có thể dựa trên tên miền, dải IP, cổng, inbound nguồn hoặc giao thức. Với công việc thu thập dữ liệu, cách gọn nhất là gom các website cần IP Việt Nam vào một quy tắc, trỏ tới outbound proxy Việt Nam. Website cần IP Mỹ vào một quy tắc khác.
{"type": "field", "domain": ["domain:vi-du-a.vn", "domain:vi-du-b.vn"], "outboundTag": "proxy-vn"},
{"type": "field", "domain": ["domain:vi-du-us.com"], "outboundTag": "proxy-us"},
{"type": "field", "ip": ["geoip:private"], "outboundTag": "direct"}
Tiền tố domain: khớp cả tên miền con, nên domain:vi-du-a.vn khớp luôn www.vi-du-a.vn và m.vi-du-a.vn. Quy tắc geoip:private cho mạng nội bộ đi thẳng, tránh gửi yêu cầu tới máy in hay NAS qua proxy bên ngoài.
Đi thẳng thì DNS do máy tự làm
Mình đặt noi-bo.test vào quy tắc direct để xem chuyện gì xảy ra. V2Ray chuyển sang outbound freedom, tự phân giải tên miền bằng DNS của máy, không tìm thấy, thử lại năm lần rồi bỏ. Log ghi lookup noi-bo.test: no such host, curl nhận phản hồi rỗng.
Kết quả này cho thấy một điều dễ bỏ qua: chỉ những gì đi qua outbound proxy mới được proxy phân giải tên miền. Phần đi thẳng dùng DNS của máy và nhà mạng. Nếu quy tắc direct quá rộng, một số tên miền anh em tưởng đi proxy thực ra đang lộ truy vấn DNS ra ngoài.
Nối chuỗi bằng proxySettings
Theo trang Outbounds trong tài liệu V2Ray, mỗi outbound có khóa proxySettings. Khi đặt proxySettings.tag là tag của một outbound khác, dữ liệu của outbound hiện tại sẽ được gửi qua outbound kia. Đây là cách làm proxy phía trước đã nói ở đầu bài.
"outbounds": [
{"tag": "vps", "protocol": "vmess",
"settings": {"vnext": [{"address": "127.0.0.1", "port": 10900,
"users": [{"id": "b831381d-6324-4d53-ad4f-8cda48b30811"}]}]},
"proxySettings": {"tag": "front-http"}},
{"tag": "front-http", "protocol": "http",
"settings": {"servers": [{"address": "127.0.0.1", "port": 8902,
"users": [{"user": "user1", "pass": "p@ss#2026"}]}]}}
]
Mình chạy thêm một tiến trình V2Ray đóng vai máy chủ VMess ở cổng 10900. Khi gửi yêu cầu qua chuỗi, proxy HTTP ghi nhận lệnh CONNECT 127.0.0.1:10900, tức địa chỉ máy chủ VMess, không phải địa chỉ website. Proxy phía trước chỉ biết anh em đang nối tới máy chủ của mình, phần còn lại nằm trong đường hầm VMess.
Lần chạy đầu của chuỗi thất bại, nhưng lỗi nằm ở máy chủ VMess chứ không ở proxy. Máy chủ dùng freedom, tự phân giải shop-c.test và không tìm thấy. Đổi đích sang 127.0.0.1 thì chuỗi trả về mã 200. Khi gỡ lỗi chuỗi, phải đọc log của cả hai đầu.
Tài liệu ghi khi proxySettings có hiệu lực, streamSettings của outbound đó bị bỏ qua, trừ khi bật transportLayer từ bản 4.35.0. Nếu outbound chính của anh em dùng WebSocket hay gRPC, cần đọc kỹ phần này trước khi nối chuỗi.

Nối chuỗi bằng proxySettings
Độ trễ đo trên máy thử
Mình gửi 20 yêu cầu cho mỗi đường đi và lấy thời gian trung bình. Vì mọi thứ chạy trong cùng một máy, con số chỉ để so tương đối giữa các đường, không đại diện cho mạng thật.
Đường đi |
Trung bình 20 yêu cầu |
|---|---|
curl gọi thẳng proxy SOCKS5 thử |
6,0 ms |
curl qua V2Ray, mặc định ra proxy SOCKS5 |
14,5 ms |
curl qua V2Ray, quy tắc ra proxy HTTP |
4,7 ms |
curl qua V2Ray, VMess nối chuỗi sau proxy HTTP |
8,8 ms |
Bốn tiến trình V2Ray chạy song song chiếm từ 31 đến 90 MB bộ nhớ. Với mạng thật, độ trễ chủ yếu đến từ khoảng cách tới proxy và tới website, phần V2Ray thêm vào nhỏ hơn nhiều. Anh em nên đo lại trên đúng proxy và website mình dùng.
Kiểm tra IP thoát khi dùng V2Ray upstream proxy
Cấu hình chạy không có nghĩa là lưu lượng đi đúng đường. Phần này là các bước mình làm để xác nhận IP thoát và phạm vi lưu lượng thực sự qua proxy.
Kiểm bằng curl với socks5h
Lệnh kiểm nhanh nhất là gọi một trang trả về IP qua cổng SOCKS của V2Ray. Chú ý dùng tiền tố socks5h, chữ h nghĩa là tên miền được gửi nguyên cho phía proxy phân giải.
curl -x socks5h://127.0.0.1:10808 https://api.ipify.org
curl -x http://127.0.0.1:10809 https://api.ipify.org
IP trả về phải là IP proxy nhà cung cấp cấp cho anh em. Nếu thấy IP mạng nhà hoặc IP máy chủ, kiểm lại quy tắc định tuyến: có thể tên miền kiểm tra đang khớp một quy tắc direct.
Socks5 và socks5h khác nhau thế nào
Mình chạy lại cùng lệnh nhưng dùng socks5 không có chữ h. Lần này curl tự phân giải localhost thành địa chỉ IPv6 ::1 rồi gửi IP đó cho V2Ray. V2Ray chuyển nguyên IP sang proxy, proxy không có đường IPv6 nên trả lỗi, log V2Ray ghi server rejects request: 5.
Bài học là ứng dụng phía trước V2Ray cũng có thể tự phân giải tên miền. Khi đó proxy chỉ nhận IP, truy vấn DNS đã đi ra bằng mạng của máy. Muốn DNS đi qua proxy, cả ứng dụng lẫn V2Ray phải giữ nguyên tên miền.
Đọc log để biết quy tắc nào khớp
Đặt loglevel là info trong lúc thử. Mỗi kết nối sẽ có dòng accepted kèm tag outbound trong ngoặc vuông, ví dụ accepted tcp:shop-a.test:8901 [up-http]. Dòng taking detour cho biết quy tắc nào đã khớp, dòng default route nghĩa là không quy tắc nào khớp và V2Ray dùng outbound đầu tiên.
Sau khi chạy ổn, hạ loglevel về warning. Log info ghi mọi tên miền anh em truy cập, để lâu vừa tốn dung lượng vừa lộ thông tin nếu máy dùng chung.
Kiểm DNS và WebRTC khi dùng trình duyệt
Nếu trình duyệt đi qua V2Ray, kiểm thêm hai thứ. Thứ nhất là trang kiểm tra DNS, xem máy chủ DNS hiển thị thuộc mạng nào. Thứ hai là WebRTC, có thể làm lộ IP thật qua UDP dù TCP đã đi proxy. Bài cách tắt WebRTC hướng dẫn chặn phần này trên từng trình duyệt.
Kiểm UDP trước khi tin là đã qua proxy
Mình mở inbound SOCKS với udp bật, gửi một gói DNS bằng lệnh UDP ASSOCIATE. V2Ray trả lời đồng ý ngay, rồi xin UDP ASSOCIATE với proxy upstream. Proxy thử từ chối lệnh này. Kết quả là gói DNS biến mất, chờ sáu giây không có trả lời, phía ứng dụng không nhận được thông báo lỗi rõ ràng nào.
Nếu công việc của anh em cần UDP, như gọi thoại hay game, hỏi nhà cung cấp proxy có hỗ trợ UDP ASSOCIATE không trước khi dựng. Với outbound http thì không cần thử, UDP không bao giờ đi được.

socks5h giữ DNS ở proxy
Lỗi thường gặp với V2Ray upstream proxy
Phần này gom các lỗi mình gặp trong lúc chạy thử, kèm dòng log nguyên văn để anh em tìm kiếm khi gặp. Bảng dưới tóm tắt trước khi đi vào chi tiết.
Dòng log V2Ray |
Nguyên nhân |
Cách xử lý |
|---|---|---|
server rejects account: 1 |
Sai tài khoản proxy SOCKS5 |
Kiểm user, pass trong outbound socks |
Proxy responded with non 200 code: 407 |
Sai tài khoản proxy HTTP |
Kiểm user, pass trong outbound http |
server rejects request: 5 |
Proxy SOCKS5 không nối được tới đích |
Kiểm socks5h, IPv6, đích có sống không |
lookup ... no such host |
Outbound freedom tự phân giải tên miền thất bại |
Kiểm quy tắc direct, DNS của máy |
default route for ... |
Không quy tắc nào khớp |
Kiểm thứ tự outbound, cú pháp domain |
Sai mật khẩu: phía ứng dụng không thấy 407
Mình chạy một bản cấu hình y hệt nhưng đổi mật khẩu thành sai. Với outbound socks, log V2Ray ghi server rejects account: 1. Với outbound http, log ghi Proxy responded with non 200 code: 407 Proxy Authentication Required, và proxy thử nhận năm lần CONNECT liên tiếp trong khoảng 0,6 giây vì V2Ray tự gọi lại.
Phía curl thì chỉ thấy lỗi 52, phản hồi rỗng, không thấy mã 407 nào. Đây là chỗ gây mất thời gian nhất: ứng dụng báo kết nối đóng bất thường, anh em đi tìm lỗi mạng, trong khi nguyên nhân là mật khẩu. Khi ứng dụng báo phản hồi rỗng qua V2Ray, mở log V2Ray trước tiên.
Năm lần gọi lại cũng cần chú ý. Một số nhà cung cấp tạm khóa IP sau nhiều lần xác thực sai liên tiếp. Nếu đặt nhiều công cụ cùng trỏ vào V2Ray với mật khẩu sai, số lần sai nhân lên rất nhanh. Bài sửa lỗi 407 Proxy Authentication Required có thêm các nguyên nhân khác của mã này.
Sai giao thức
Khai báo outbound socks nhưng trỏ vào cổng proxy HTTP, hoặc ngược lại, là lỗi hay gặp khi nhà cung cấp cấp hai cổng khác nhau cho hai giao thức. Triệu chứng thường là kết nối đóng ngay hoặc chờ tới hết giờ. Đối chiếu lại loại proxy trong trang quản lý với giá trị protocol trong outbound.
Timeout và proxy chậm
Khi proxy quá tải hoặc ở xa, V2Ray vẫn mở kết nối nhưng dữ liệu về chậm. Kiểm riêng proxy bằng curl gọi thẳng, không qua V2Ray, để tách lỗi. Nếu gọi thẳng cũng chậm, vấn đề nằm ở proxy. Nếu gọi thẳng nhanh mà qua V2Ray chậm, xem lại quy tắc và chuỗi outbound.
Bài công cụ kiểm tra proxy liệt kê các cách đo độ trễ và tình trạng proxy trước khi đưa vào V2Ray.
Cấu hình đúng cú pháp nhưng sai tag
V2Ray kiểm tag trùng nhưng không phải lúc nào cũng báo khi quy tắc trỏ tới tag viết sai chính tả. Khi lưu lượng đi đường mặc định thay vì đường anh em muốn, đối chiếu từng ký tự giữa outboundTag trong quy tắc và tag trong outbounds. Đây là lỗi mình thấy nhiều nhất khi sửa tay file cấu hình dài.
Checklist V2Ray upstream proxy và câu hỏi thường gặp
Phần cuối gom cách giữ V2Ray chạy nền, cách bảo vệ file cấu hình, các bước kiểm trước khi để chạy dài và các câu hỏi hay gặp.
Giữ V2Ray chạy nền
Trên máy thử, mình chạy V2Ray trong cửa sổ dòng lệnh. Khi dùng lâu dài, anh em nên cho nó chạy như dịch vụ để tự khởi động lại khi máy khởi động hoặc khi tiến trình bị dừng. Trên Linux, gói cài từ kho thường đi kèm sẵn file dịch vụ systemd, chỉ cần trỏ đúng đường dẫn file cấu hình.
Trên Windows, có thể dùng Task Scheduler đặt tác vụ chạy lúc đăng nhập với lệnh run -c và đường dẫn đầy đủ tới file cấu hình. Mình chưa thử phần chạy dịch vụ trong bài này, nên anh em kiểm lại trên máy của mình: tắt máy, bật lại và gọi curl qua cổng 10808 để chắc dịch vụ đã lên.
Dùng chung một V2Ray cho cả nhóm
Nếu cả nhóm dùng chung một máy chạy V2Ray, đổi listen từ 127.0.0.1 sang IP nội bộ của máy và đặt tài khoản cho inbound. Inbound http có khóa accounts, khi khai báo thì V2Ray yêu cầu xác thực Basic với mọi kết nối vào. Đừng mở cổng này ra Internet: tài liệu V2Ray cảnh báo proxy HTTP công khai dễ bị lợi dụng để tấn công.
Khi nhiều người dùng chung, một tài khoản proxy upstream sẽ gánh toàn bộ lưu lượng của nhóm. Hỏi nhà cung cấp giới hạn số kết nối đồng thời của gói, vì vượt giới hạn thường biểu hiện bằng lỗi kết nối ngẫu nhiên chứ không có thông báo rõ.
Bảo vệ file cấu hình
File cấu hình chứa mật khẩu proxy ở dạng chữ thường. Đặt quyền đọc chỉ cho tài khoản chạy V2Ray, không đưa file lên kho mã công khai. Khi cần nhờ người khác xem lỗi, thay mật khẩu bằng chuỗi giả trước khi gửi, giữ nguyên cấu trúc để họ đọc được.
Nếu nghi mật khẩu đã lộ, đổi mật khẩu trong trang quản lý proxy rồi cập nhật file, chạy lại lệnh test và kiểm IP thoát như phần trên.
Checklist trước khi chạy dài
- Ghi phiên bản V2Ray và kiểm mã băm gói tải về.
- Chạy v2ray test -c với file cấu hình mới.
- Inbound chỉ lắng nghe 127.0.0.1, trừ khi cố ý chia sẻ trong mạng nội bộ có mật khẩu.
- Kiểm IP thoát bằng curl socks5h cho từng outbound.
- Đọc log info một lượt, xác nhận mỗi tên miền đi đúng tag.
- Hỏi nhà cung cấp về UDP nếu công việc cần.
- Hạ loglevel về warning sau khi ổn định.
- Lưu bản sao file cấu hình, che mật khẩu trước khi gửi cho người khác.
Nếu cần proxy upstream cho V2Ray, anh em có thể mua proxy tại ProxyVN, có proxy dân cư tĩnh Viettel, VNPT, FPT, datacenter Việt Nam và proxy xoay, hỗ trợ HTTP và SOCKS5 với tài khoản user và mật khẩu.
V2Ray chỉ đưa lưu lượng tới đúng cửa. Proxy upstream quyết định cửa đó mang IP nào, có hỗ trợ UDP hay không và giữ kết nối ổn định tới đâu.

Checklist trước khi chạy dài
Câu hỏi thường gặp
Nên chọn outbound socks hay http cho V2Ray upstream proxy. Nếu nhà cung cấp hỗ trợ cả hai, chọn socks vì có khả năng mang UDP và giữ nguyên tên miền. Chọn http khi chỉ có proxy HTTP, hoặc khi proxy công ty bắt buộc HTTP. Với cả hai, website HTTPS vẫn được TLS bảo vệ.
Có thể dùng nhiều proxy upstream và xoay vòng không. Trong outbound http, khóa servers nhận nhiều máy chủ và tài liệu V2Ray ghi chúng được dùng xoay vòng. Mình chưa thử phần xoay vòng với nhiều proxy thật. Với proxy xoay của nhà cung cấp, thường chỉ cần một cổng, IP được đổi ở phía nhà cung cấp.
V2Ray upstream proxy có làm lộ IP thật không. TCP đi qua outbound proxy sẽ không lộ IP máy với website. Phần dễ lộ là DNS khi ứng dụng tự phân giải, UDP khi proxy không hỗ trợ, và WebRTC trong trình duyệt. Kiểm cả ba như phần trên.
Dùng V2Ray thay Proxifier được không. Hai công cụ giải quyết hai việc khác nhau. Proxifier ép ứng dụng không hỗ trợ proxy đi qua proxy. V2Ray cần ứng dụng trỏ vào cổng SOCKS hoặc HTTP của nó. Với ứng dụng không có ô cài proxy, xem bài Proxifier.
Giao diện v2rayN có cấu hình upstream proxy được không. Các giao diện như v2rayN sinh ra file cấu hình cho lõi V2Ray hoặc Xray bên dưới. Mình không thử giao diện trong bài này. Cách chắc nhất là xem file cấu hình mà giao diện xuất ra và đối chiếu với cấu trúc outbound ở trên.
V2Ray upstream proxy và những điều cần nhớ
V2Ray upstream proxy cấu hình bằng outbound socks hoặc http có user và pass riêng, chia luồng bằng quy tắc, nối chuỗi bằng proxySettings. Đọc log khi ứng dụng báo phản hồi rỗng, dùng socks5h để giữ DNS ở proxy và kiểm UDP trước khi tin. Cần proxy ổn định, liên hệ Proxy.vn - Nhà cung cấp dịch vụ proxy chất lượng hàng đầu Việt Nam cho V2Ray upstream proxy.