
ProxVN
ProxVN là công cụ Tunneling mạnh mẽ, miễn phí, giúp bạn đưa các dịch vụ trong mạng nội bộ (Localhost) ra Internet công cộng chỉ với một câu lệnh.
ProxVN Tunnel là giải pháp tunneling viết bằng Go, cho phép đưa dịch vụ chạy trên máy local (localhost) ra Internet ngay lập tức — tương tự ngrok nhưng tự host được. Hỗ trợ HTTP/HTTPS, TCP, UDP và chia sẻ file (WebDAV), chạy đa nền tảng, một binary duy nhất không cần cài đặt.
Tunnel server công cộng miễn phí: 103.77.246.196:8882
Domain: bacsycay.click
Dashboard: https://bacsycay.click/dashboard/
Mục lục
Tính năng
Server công cộng miễn phí
Cài đặt nhanh
Hướng dẫn Client
Certificate Pinning
Chia sẻ file (WebDAV)
Vận hành Server
Triển khai Server riêng
Docker
Build từ source
Cấu trúc dự án
Tài liệu
Troubleshooting
Bản tham chiếu nhanh
License
Tính năng
Đa giao thức:
HTTP/HTTPS: tự động cấp subdomain HTTPS https://<id>.bacsycay.click cho web app.
TCP: forward port cho SSH, RDP, MySQL, PostgreSQL...
UDP: cho game server (Minecraft, Palworld, CS...) và ứng dụng realtime.
File sharing: chia sẻ thư mục qua Web UI và WebDAV (mount thành ổ đĩa mạng).
Bảo mật:
Mã hóa TLS 1.3 cho kết nối control và data.
Certificate pinning để chống tấn công MITM.
Xác thực JWT, rate limiting, chống DDoS ở phía server.
Chế độ private có mật khẩu cho file sharing.
Quản lý:
Web Dashboard realtime: trạng thái tunnel, băng thông, số kết nối.
Trình soạn thảo file trên trình duyệt.
Hiệu năng cao, tối ưu RAM/CPU, xử lý nhiều kết nối đồng thời.
Triển khai dễ: Docker, systemd, Windows Service; binary chạy ngay.
Server công cộng miễn phí
Không cần tự dựng server — đã có sẵn một server ProxVN miễn phí dùng chung:
Thành phần Giá trị
Tunnel server 103.77.246.196:8882 (mặc định của client)
Domain bacsycay.click
Dashboard https://bacsycay.click/dashboard/
Cert-pin 29e1546abeb0e1d27adc57362422670b5347a0f19a847c5e9dda8fa7cd99c6d8
Client đã trỏ sẵn về server này, chỉ cần tải binary và chạy. Muốn dùng server riêng thì sửa file proxvn.json hoặc dùng flag --server (xem Cấu hình).
Cài đặt nhanh
- Tải binary
Tải trực tiếp từ trang chủ (qua server công cộng):
Nền tảng Client Server
Linux x86-64 https://bacsycay.click/bin/client/proxvn-linux-amd64 .../bin/server/proxvn-server-linux-amd64
Linux ARM64 .../bin/client/proxvn-linux-arm64 .../bin/server/proxvn-server-linux-arm64
Windows x86-64 .../bin/client/proxvn-windows-amd64.exe .../bin/server/proxvn-server-windows-amd64.exe
macOS Intel .../bin/client/proxvn-darwin-amd64 .../bin/server/proxvn-server-darwin-amd64
macOS Apple Silicon .../bin/client/proxvn-darwin-arm64 .../bin/server/proxvn-server-darwin-arm64
Android ARM64 .../bin/client/proxvn-android-arm64 —
Hoặc build từ source (cần Go 1.21+):
./build-all.sh
Trên Linux/macOS, nhớ cấp quyền chạy: chmod +x proxvn-linux-amd64.
2. Chạy Client
Public web server đang chạy ở port 3000:
./proxvn-linux-amd64 --proto http 3000
=> https://.bacsycay.click
Public SSH (port 22):
./proxvn-linux-amd64 --proto tcp 22
=> 103.77.246.196:
Public game server UDP (ví dụ Minecraft Bedrock 19132):
./proxvn-linux-amd64 --proto udp 19132
=> 103.77.246.196: (UDP)
- Cấu hình bằng file (không cần sửa code)
Sao chép bin/proxvn.json.example thành proxvn.json (đặt cạnh binary), chỉnh server/proto/port/cert_pin… rồi chạy. Thứ tự ưu tiên:
flag dòng lệnh > proxvn.json > giá trị mặc định build-in
Hướng dẫn Client
Cú pháp
proxvn [OPTIONS] [LOCAL_PORT]
LOCAL_PORT có thể đặt ở cuối lệnh thay cho flag --port.
Các flag
Flag Mặc định Mô tả
--proto tcp Giao thức tunnel: tcp, udp, http.
--server 103.77.246.196:8882 Địa chỉ server tunnel (IP:Port).
--host localhost Địa chỉ service local (vd 192.168.1.10).
--port 80 Port service local (điền trực tiếp cuối lệnh được).
--id (ngẫu nhiên) Client ID tùy chọn, dùng để nhận diện trong Dashboard.
--ui true Bật/tắt giao diện terminal (true/false).
--cert-pin (none) SHA256 fingerprint của cert server để xác thực.
--insecure false Bỏ qua xác thực TLS server (chỉ dùng cho dev/test).
--config (auto) Đường dẫn file cấu hình client.
Flag cho chế độ chia sẻ file:
Flag Mặc định Mô tả
--file — Thư mục cần chia sẻ (vd ./share, C:\Docs).
--user proxvn Username để xác thực WebDAV.
--pass — Mật khẩu truy cập (bắt buộc khi dùng --file).
--permissions rw Quyền: r (chỉ đọc), rw (đọc-ghi), rwx (đầy đủ).
HTTP Tunneling (--proto http)
Dùng cho web app; server cấp subdomain HTTPS.
Public port 8080
proxvn --proto http 8080
Public service ở máy khác trong LAN (vd camera IP)
proxvn --proto http --host 192.168.1.50 80
Kết quả:
Public URL: https://abc123.bacsycay.click
Forwarding: localhost:3000
TCP Tunneling (--proto tcp)
Dùng cho SSH, RDP, MySQL, PostgreSQL...
proxvn 22 # SSH (mặc định proto tcp)
proxvn 3389 # Remote Desktop (Windows)
proxvn 3306 # MySQL
proxvn --server YOUR_VPS_IP:8882 22 # dùng server riêng
Kết quả:
Public Address: 103.77.246.196:
UDP Tunneling (--proto udp)
Dùng cho game server và ứng dụng UDP.
proxvn --proto udp 19132 # Minecraft Bedrock
proxvn --proto udp 25565 # Minecraft Java
proxvn --proto udp 8211 # Palworld
proxvn --proto udp 27015 # CS / Source engine
Certificate Pinning
Để client chỉ kết nối đến đúng server (chống MITM), dùng --cert-pin với fingerprint SHA256 của certificate server:
proxvn --cert-pin 29e1546abeb0e1d27adc57362422670b5347a0f19a847c5e9dda8fa7cd99c6d8 --proto http 3000
Cert-pin của server công cộng (cũng lưu trong cert-pin.txt):
29e1546abeb0e1d27adc57362422670b5347a0f19a847c5e9dda8fa7cd99c6d8
Lấy lại fingerprint từ một server bất kỳ:
echo | openssl s_client -connect :8882 2>/dev/null
| openssl x509 -outform DER | sha256sum
Nếu fingerprint không khớp, client sẽ từ chối kết nối.
Chia sẻ file (WebDAV)
Biến máy tính thành kho lưu trữ mini với Web UI và WebDAV.
Chia sẻ thư mục hiện tại, quyền đầy đủ (user mặc định: proxvn)
proxvn --file . --pass 123456 --permissions rwx
Chia sẻ với username tùy chỉnh, chỉ đọc
proxvn --file /home/user/Movies --user media --pass secret --permissions r
Chia sẻ thư mục Windows
proxvn --file "C:\Projects" --pass abc123 --permissions rw
Mở URL https://.bacsycay.click để xem/tải/upload file và sửa file trực tiếp trên trình duyệt, hoặc mount qua WebDAV:
Windows:
net use Z: https://.bacsycay.click /user:proxvn yourpassword
macOS: Finder → Go → Connect to Server → https://.bacsycay.click
Linux:
sudo apt install davfs2
sudo mount -t davfs https://.bacsycay.click /mnt/proxvn
Vận hành Server
Binary server: proxvn-server-linux-amd64 (và các nền tảng khác).
Flag
Flag Mặc định Mô tả
-port 8881 Port Dashboard và API. Tunnel port = Dashboard port + 1 (vd 8882).
Cấu hình bằng biến môi trường
Server cấu hình hoàn toàn qua biến môi trường hoặc file .env. Chỉ cần đổi vài biến, phần còn lại đều có giá trị mặc định hợp lý.
cp .env.server.example .env
nano .env
Các biến quan trọng nhất:
Biến Mặc định Mô tả
SERVER_PORT 8882 Port tunnel control (TCP-TLS) + UDP. Dashboard/API ở 8881.
HTTP_PORT 443 Port HTTPS phục vụ landing + dashboard + subdomain tunnel.
HTTP_DOMAIN (trống) Domain cấp subdomain (vd bacsycay.click). Bắt buộc cho HTTP tunnel.
PUBLIC_HOST (auto) IP công khai quảng bá cho client TCP/UDP. Trống = tự dò.
PUBLIC_PORT_START / _END 10000 / 20000 Dải port công khai cho tunnel TCP/UDP.
DB_PATH ./proxvn.db File SQLite3 (Docker: /data/proxvn.db).
JWT_SECRET (random) Khóa ký token. Nên đặt cố định để không bị logout khi restart.
ADMIN_USERNAME admin Tài khoản admin khởi tạo (chỉ tạo khi DB rỗng).
ADMIN_PASSWORD admin123 Mật khẩu admin khởi tạo. Bắt buộc đổi trên production.
Danh sách đầy đủ (rate limit, backup, monitoring, file server, cache...) xem trong .env.server.example.
Chạy server
./bin/server/proxvn-server-linux-amd64
Dashboard: http://YOUR_VPS_IP:8881/dashboard/ — đăng nhập bằng admin / admin123 (đổi mật khẩu ngay sau lần đăng nhập đầu tiên).
Triển khai Server riêng
Để chạy server riêng có HTTPS subdomain, cần:
Một tên miền (vd example.com) trỏ về IP VPS.
Chứng chỉ wildcard cho *.example.com (HTTP proxy).
Cặp server.crt / server.key cho tunnel control (server tự sinh self-signed nếu bật AUTO_TLS=true; persist file này để cert-pin ổn định qua các lần redeploy).
Cách 1: Cloudflare Origin Certificate (khuyến nghị)
1. Cloudflare Dashboard -> SSL/TLS -> Origin Server -> Create Certificate
Lưu thành wildcard.crt và wildcard.key, đặt cạnh binary server.
2. DNS trên Cloudflare:
A @ YOUR_VPS_IP (Proxied: ON)
CNAME * example.com (Proxied: ON)
3. SSL/TLS mode: Full (strict)
4. Chạy server:
export HTTP_DOMAIN="example.com"
./bin/server/proxvn-server-linux-amd64
Cách 2: Let's Encrypt (DNS-01)
sudo apt install python3-certbot-dns-cloudflare
sudo certbot certonly --dns-cloudflare
--dns-cloudflare-credentials /root/.secrets/cloudflare.ini
-d '*.example.com' -d 'example.com'
sudo cp /etc/letsencrypt/live/example.com/fullchain.pem wildcard.crt
sudo cp /etc/letsencrypt/live/example.com/privkey.pem wildcard.key
export HTTP_DOMAIN="example.com"
./bin/server/proxvn-server-linux-amd64
Mở firewall
sudo ufw allow 22/tcp # SSH
sudo ufw allow 8881/tcp # Dashboard / API
sudo ufw allow 8882/tcp # Tunnel control (TCP-TLS) + UDP
sudo ufw allow 443/tcp # HTTPS landing + subdomain tunnel
sudo ufw allow 10000:20000/tcp # Dải port công khai TCP
sudo ufw allow 10000:20000/udp # Dải port công khai UDP
Chi tiết triển khai production xem docs/05-deployment.md.
Docker
Cách triển khai khuyến nghị. docker-compose.yml chạy một container host-networked xử lý tất cả: dashboard (8881), tunnel (8882), HTTPS (443), và dải port 10000-20000.
cp .env.server.example .env
nano .env # đặt HTTP_DOMAIN, PUBLIC_HOST, JWT_SECRET, ADMIN_PASSWORD
docker compose up -d # khởi động
docker compose logs -f # xem log
docker compose down # dừng
Đặt chứng chỉ vào thư mục ssl/ trước khi chạy (xem docker-compose.yml để biết các file được mount: ssl/wildcard., ssl/server.). Binary tải về được mount read-only từ ./bin, nên có thể cập nhật binary mà không cần build lại image; còn src/frontend được COPY vào image nên khi đổi giao diện cần docker compose build lại.
Build từ source
Yêu cầu: Go 1.21+, Git.
git clone https://github.com/hoangtuvungcao/proxvn_tunnel_full.git
cd proxvn_tunnel_full
./build-all.sh
build-all.sh cross-compile toàn bộ binary vào bin/client/ và bin/server/:
Client (bin/client/):
proxvn-linux-amd64, proxvn-linux-arm64
proxvn-windows-amd64.exe
proxvn-darwin-amd64, proxvn-darwin-arm64
proxvn-android-arm64
Server (bin/server/):
proxvn-server-linux-amd64, proxvn-server-linux-arm64
proxvn-server-windows-amd64.exe
proxvn-server-darwin-amd64, proxvn-server-darwin-arm64
Checksum: bin/SHA256SUMS-client.txt, bin/SHA256SUMS-server.txt.
Build một nền tảng cụ thể:
cd src/backend
GOOS=linux GOARCH=amd64 go build -o ../../bin/client/proxvn-linux-amd64 ./cmd/client
GOOS=windows GOARCH=amd64 go build -o ../../bin/client/proxvn-windows-amd64.exe ./cmd/client
GOOS=linux GOARCH=amd64 go build -o ../../bin/server/proxvn-server-linux-amd64 ./cmd/server
Cấu trúc dự án
proxvn_tunnel_full/
├── bin/ # Binary đã build + script helper
│ ├── client/ # 6 binary client (linux/windows/darwin/android)
│ ├── server/ # 5 binary server
│ ├── proxvn.json.example # Mẫu cấu hình client
│ ├── run-client.sh / .bat # Script chạy client
│ ├── run-server.sh / .bat # Script chạy server
│ └── SHA256SUMS-*.txt # Checksum
├── src/
│ ├── backend/ # Mã nguồn Go
│ │ ├── cmd/
│ │ │ ├── client/ # main.go của client
│ │ │ ├── server/ # main.go của server
│ │ │ └── fileserver/ # Module file server / WebDAV
│ │ └── internal/
│ │ ├── api/ # REST API handlers
│ │ ├── auth/ # Xác thực JWT
│ │ ├── config/ # Quản lý cấu hình
│ │ ├── database/ # Tầng SQLite3
│ │ ├── http/ # HTTP proxy (landing + subdomain)
│ │ ├── middleware/ # Middleware HTTP
│ │ ├── models/ # Data models
│ │ └── tunnel/ # Giao thức tunnel
│ └── frontend/ # Web UI
│ ├── home.html # Landing page (phục vụ tại /)
│ ├── dashboard.html # Dashboard admin
│ ├── login.html # Trang đăng nhập
│ ├── users.html # Quản lý user
│ ├── css/ js/ # Tài nguyên dùng chung
│ ├── docs/ # Tài liệu HTML (phục vụ tại /docs/)
│ └── mobile/ # Giao diện mobile
├── docs/ # Tài liệu Markdown (01-08 + PRODUCTION)
├── scripts/ # Script build / SSL / tuning
├── .env.server.example # Mẫu cấu hình server đầy đủ
├── cert-pin.txt # Fingerprint cert server công cộng
├── build-all.sh # Script build đa nền tảng
├── Dockerfile
├── docker-compose.yml
└── README.md
Tài liệu
Tài liệu chi tiết trong thư mục docs/:
01 - Getting Started — bắt đầu nhanh
02 - Configuration — cấu hình server & client
03 - Client Guide — chi tiết client
04 - Admin Guide — quản trị Dashboard
05 - Deployment — triển khai production
06 - Operations — vận hành, giám sát
07 - Troubleshooting — xử lý sự cố
08 - Security — bảo mật
Troubleshooting
Client không kết nối được:
Kiểm tra kết nối tới server
nc -vz 103.77.246.196 8882
Test bỏ qua xác thực TLS (chỉ để chẩn đoán)
proxvn --insecure --proto http 3000
Server không start (port đã bị chiếm):
sudo ss -tlnp | grep -E '8881|8882'
Lỗi cert-pin không khớp — lấy lại fingerprint đúng:
echo | openssl s_client -connect 103.77.246.196:8882 2>/dev/null
| openssl x509 -outform DER | sha256sum
WebDAV không mount được trên Windows:
sc config WebClient start=auto
net start WebClient
net use Z: https://.bacsycay.click /user:proxvn yourpassword
Thêm tình huống trong docs/07-troubleshooting.md.
Bản tham chiếu nhanh
Client:
proxvn --proto http 3000 # HTTP tunnel
proxvn 22 # TCP tunnel (SSH)
proxvn --proto udp 19132 # UDP tunnel
proxvn --file ~/Documents --pass secret # Chia sẻ file
proxvn --server YOUR_IP:8882 --proto http 3000 # Dùng server riêng
proxvn --cert-pin 29e1546abeb0e1d27adc57362422670b5347a0f19a847c5e9dda8fa7cd99c6d8 --proto http 3000
Server:
./bin/server/proxvn-server-linux-amd64 # chạy (Dashboard port 8881)
./bin/server/proxvn-server-linux-amd64 -port 9000 # đổi port Dashboard
cp .env.server.example .env && nano .env # cấu hình bằng .env
Cert-pin server công cộng:
29e1546abeb0e1d27adc57362422670b5347a0f19a847c5e9dda8fa7cd99c6d8
License
FREE TO USE — NON-COMMERCIAL ONLY. ProxVN Tunnel miễn phí cho mục đích phi thương mại; liên hệ qua email nếu dùng cho mục đích thương mại.
Liên hệ
Email: [email protected]
Telegram: https://t.me/ZzTLINHzZ
Issues: https://github.com/hoangtuvungcao/proxvn_tunnel_full/issues
Website: https://bacsycay.click
Acknowledgments
Dự án phát triển dựa trên mã nguồn mở tunnel của kami2k1. Copyright (c) 2026 kami2k1.
Do you like this post?
Upvote to push this post higher on the community feed
