This repository introduces two V2Ray-based solutions to bypass censorship in highly restricted networks without direct access to an upstream server (a server with access to free Internet). These solutions are 1. Using a bridge server, and 2. Using a CDN service.
In this solution, you need these two servers:
- Upstream Server: A server that has access to the free Internet.
- Bridge Server: A server that is available to clients and has access to the upstream server.
(Client) <-> [ Bridge Server ] <-> [ Upstream Server ] <-> (Internet)
This solution consists of two steps and provides VMESS and Shadowsocks (AEAD) protocols.
- Install Docker and Docker-compose.
- Copy the
v2ray-upstream-server
directory into the upstream server. - Run
cat /proc/sys/kernel/random/uuid
to generate a UUID. - Replace
<UPSTREAM-UUID>
inv2ray/config/config.json
with the generated UUID. - Run
docker-compose up -d
.
- Install Docker and Docker-compose.
- Copy the
v2ray-bridge-server
directory into the bridge server. - 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 bridge 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 previous step.
- Run
docker-compose up -d
. - Run
./clients.py
to generate client configurations and links.
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.
(Client) <-> [ CDN Service ] <-> [ Upstream Server ] <-> (Internet)
This solution provides VMESS over Websockets + TLS + CDN. Read more...
Follow these steps to setup V2Ray + Caddy + CDN:
- In 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
directory into the server. - 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/subdoamin. - Run
docker-compose up -d
. - Visit your domain/subdomain in your web browser. Wait until the homepage is loaded.
- In your CDN, turn the proxy option on for the record.
- Run
./vmess.py
to generate client configuration (link).
If you prefer NGINX instead of the Caddy web server, read V2RAY_NGINX_CDN instead.
This is the list of recommended applications to use the VMESS protocol:
- Nekoray for macOS, Windows, and Linux
- Qv2ray for macOS, Windows, and Linux
- V2RayX for macOS
- ShadowLink for iOS
- v2rayNG for Android
This is the list of recommended applications to use the Shadowsocks protocol:
- Outline for macOS, Windows, and Linux
- Shadowsocks for macOS
- Shadowsocks for Linux
- Shadowsocks for Windows
- Shadowsocks for Android
- ShadowLink for iOS
Moved here: HTTP_SOCKS
- Some hostings might ban your proxy traffic. Use an appropriate hosting.
- Some Internet providers might ban your proxy traffic. Changin AlterID could be helpful. See #57.
By default, this repository uses the GitHub registry. You can modify the Docker-compose file to use Docker Hub.
- GitHub:
- Image:
ghcr.io/getimages/v2fly-core:v4.45.2
- URL: https://github.com/orgs/getimages/packages/container/package/v2fly-core
- Digest:
sha256:289fc9451f21a265f95615e29f05ea23bc32026db152863eee317738813521d7
- Image:
- Docker Hub:
- Image:
v2fly/v2fly-core:v4.45.2
- URL: https://hub.docker.com/r/v2fly/v2fly-core/tags
- Digest:
sha256:289fc9451f21a265f95615e29f05ea23bc32026db152863eee317738813521d7
- Image: