This repository contains V2Ray-based solutions for bypassing firewalls in highly restricted networks where direct access to upstream servers (servers with free internet access) is unavailable.
This solution is stable and supports Shadowsocks and VMess protocols by default.
You will need two types of servers:
- Upstream Server: A server with access to the free internet, likely located in a foreign data center.
- Relay Server: A server that can connect to the upstream server and is accessible to users, likely located in the same region as the users.
(Users) <-> [ Relay Server ] <-> [ Upstream Server ] <-> (Internet)
Step 1: Setup Upstream Server
- Install Docker and Docker-compose.
- Copy the
v2ray-upstream-server
and theutils
directories into the upstream server. - Run
./utils/bbr.sh
to speed up server network. - Run
cat /proc/sys/kernel/random/uuid
in your terminal to generate a UUID. - Replace
<UPSTREAM-UUID>
inv2ray/config/config.json
with the generated UUID. - Run
docker-compose up -d
.
Step 2: Setup Relay Server
- Install Docker and Docker-compose.
- Copy the
v2ray-relay-server
and theutils
directories into the relay server. - Run
./utils/bbr.sh
to speed up server network. - Replace the following variables in
v2ray/config/config.json
with appropriate values.<SHADOWSOCKS-PASSWORD>
: A password for Shadowsocks users likeFR33DoM
.<BRIDGE-UUID>
: A new UUID for relay server (Runcat /proc/sys/kernel/random/uuid
).<UPSTREAM-IP>
: The upstream server IP address (like13.13.13.13
).<UPSTREAM-UUID>
: The upstream server UUID from the previous step.
- Run
docker-compose up -d
. - Run
./clients.py
to generate client configurations and links.
This solution is recommended only if you don't have relay server to implement other solutions.
In this solution, you need one server (upstream) and a domain/subdomain added to a CDN service.
- Upstream Server: A server that has free access to the Internet.
- CDN Service: A Content delivery network like Cloudflare, ArvanCloud or DerakCloud.
(Users) <-> [ CDN Service ] <-> [ Upstream Server ] <-> (Internet)
This solution provides VMESS over Websockets + TLS + CDN. Read more...
Follow these steps to set up V2Ray + Caddy (Web server) + CDN:
- On your CDN, create an
A
record pointing to your server IP with the proxy option turned off. - Install Docker and Docker-compose on your server.
- Copy the
v2ray-caddy-cdn
and theutils
directories into the server. - Run
./utils/bbr.sh
to speed up server network. - Run
cat /proc/sys/kernel/random/uuid
to generate a UUID. - Replace
<UPSTREAM-UUID>
inv2ray/config/config.json
with the generated UUID. - Replace
<EXAMPLE.COM>
incaddy/Caddyfile
with your domain/subdomain. - Run
docker-compose up -d
. - Visit your domain/subdomain in your web browser. Wait until the homepage is loaded.
- (Optional) In your CDN, turn the proxy option on for the record.
- Run
./vmess.py
to generate client configuration (link).
If you prefer NGINX as the web server, read V2RAY_NGINX_CDN instead.
Some CDN services don't offer unlimited traffic for free plans. Please check CDN Free Plans.
You don't need to turn the cloud (proxy) on in your CDN (step 10) when the Internet is not blocked. When it's off, clients connect to the server directly and CDN services also don't charge you any fee.
This highly recommended solution is stable and easy to set up. Using the Outline Manager app, you can create and manage multiple users and track their traffic. It supports Shadowsocks protocol and offers the easy-to-use Outline client app.
Read more: Outline Bridge Server
This is the list of recommended applications to use the Shadowsocks protocol:
- Outline for all platforms
- ShadowsocksX-NG for macOS
- shadowsocks-libev for Linux
- shadowsocks-windows
- shadowsocks-android
- ShadowLink for iOS
This is the list of recommended applications to use the VMess and other protocols:
- Nekoray for macOS, Windows, and Linux
- FoXray for macOS, iOS, and Android
- V2Box for macOS and iOS
- V2Box for Android
- ShadowLink for iOS
- v2rayNG for Android
- v2rayN for Windows
Moved here: HTTP_SOCKS