GOST Tunnel VPS: A Multi-Protocol Relay for Censored Networks
GOST (GO Simple Tunnel) is a single Go binary that speaks almost every tunneling transport in use today: HTTP/2, gRPC, QUIC, WebSocket, TLS, plain SOCKS5 and HTTP proxy. That breadth makes it a Swiss-army relay for layered circumvention, where one transport is wrapped inside another and traffic is chained across more than one server. Running GOST on an offshore VPS gives you a relay node you fully control, with no commercial provider in the middle and a clean jurisdiction at the exit.
Need this done for your project?
We implement, you ship. Async, documented, done in days.
Why GOST Instead of a Single-Protocol Proxy
Most self-hosted circumvention tools commit you to one transport. Shadowsocks is a SOCKS5-style stream cipher, WireGuard is fixed-port UDP, a bare V2Ray instance usually runs one inbound. GOST takes the opposite approach: a single binary exposes a handler (what the client talks to) layered over a transport (how bytes cross the wire), and you can swap either side without changing the rest of your setup. The same server can serve a SOCKS5 proxy over TLS today and a gRPC tunnel tomorrow by editing one line of configuration.
This matters under deep packet inspection (DPI). Censorship systems learn to fingerprint a protocol and then block it. When your Shadowsocks port gets throttled, you are stuck. With GOST you rotate the wire format: move from WebSocket-over-TLS to gRPC-over-TLS to HTTP/2, all reaching the same backend, until you find a transport the local DPI does not yet penalize. Each of these rides inside ordinary TLS on port 443, so to a passive observer the connection looks like an HTTPS session to a generic web server.
GOST also natively supports chaining and relaying, which single-purpose proxies do not. You can forward a local port through a chain of GOST nodes (-L listener, -F forward to the next hop), so the client never connects directly to the exit and the exit never sees the client IP. That two-hop pattern is the core of a layered, resilient circumvention path, and it is the reason operators reach for GOST when one static proxy is no longer enough.
Installing GOST on an Offshore VPS
Start with any plan that has root access and a clean static IPv4. A 1 vCPU / 1 GB instance is plenty for a personal relay; the Romania Start plan at $19.99/mo handles dozens of concurrent streams comfortably. SSH in as root and update the box first: apt update && apt upgrade -y on Debian/Ubuntu.
GOST v3 ships as a static binary, so installation is just a download. Grab the latest release for your architecture from the project's GitHub releases page, extract it, and place it on your path:
cd /usr/local/bin
curl -fsSL -o gost.gz https://github.com/go-gost/gost/releases/latest/download/gost_linux_amd64.gz
gunzip gost.gz && chmod +x gost
gost -VThe simplest useful relay is a SOCKS5 proxy wrapped in TLS. GOST can mint a self-signed certificate on the fly, but for a service that blends in you want a real certificate for a domain you point at the VPS (issue one with acme.sh or certbot, then pass certFile/keyFile). A minimal TLS-wrapped SOCKS5 listener looks like this:
gost -L "socks5+tls://user:pass@:443?cert=/etc/gost/fullchain.pem&key=/etc/gost/privkey.pem"Run GOST under systemd so it survives reboots and restarts on failure. Create /etc/systemd/system/gost.service with ExecStart=/usr/local/bin/gost -C /etc/gost/config.yaml, set Restart=always, then systemctl enable --now gost. Keeping the configuration in a YAML file rather than long command-line flags makes multi-protocol setups far easier to maintain.
Picking a Transport: HTTP/2, gRPC, QUIC, WebSocket, TLS
GOST separates the proxy protocol from the transport using the protocol+transport:// syntax. The transport is what a censor's DPI actually sees, so choosing it well is the whole game. Here is how the common options behave in a censored network:
- TLS (
+tls): the baseline. Your tunnel becomes a generic TLS stream on 443. Cheap and effective against keyword filtering, but a sophisticated DPI can sometimes flag the TLS fingerprint if it does not match a real browser. - WebSocket over TLS (
+wss): the tunnel rides inside a WebSocket upgrade on an HTTPS connection. This is one of the most CDN-friendly transports, because many CDNs proxy WebSocket, letting you front the node behind a large IP range. - gRPC over TLS (
+grpc): multiplexed HTTP/2 streams that look like ordinary gRPC API traffic. gRPC tends to survive in networks that have started penalizing plain WebSocket, and it handles many parallel streams efficiently. - HTTP/2 (
+http2/+h2): full HTTP/2 framing, useful where gRPC specifically is throttled but generic HTTP/2 is not. - QUIC (
+quic): UDP-based HTTP/3-style transport. Excellent on lossy mobile networks and high-latency links because it avoids head-of-line blocking, but it is UDP, and some networks throttle or block UDP/443 outright. Keep a TCP-based transport as a fallback.
The practical rule for the RU/CIS and other heavily filtered networks: default to a TLS-based TCP transport (wss or grpc) for reliability, keep QUIC ready for when UDP is allowed and gives you a speed win, and be prepared to switch on short notice. Because the backend handler does not change, rotating transports is a one-line config edit and a service restart, not a redeployment.
Chained Nodes and Fallback Patterns
A single relay is a single point of failure and a single IP to block. GOST's forwarding model lets you build a chain so the client only ever touches an entry node, while a separate exit node in a clean jurisdiction does the actual internet egress. On the entry node you listen locally and forward to the exit:
# entry node (close to the user, e.g. a low-latency region)
gost -L socks5://:1080 -F "relay+wss://user:pass@exit.example.com:443"
# exit node (offshore, performs egress)
gost -L "relay+wss://user:pass@:443?cert=/etc/gost/fullchain.pem&key=/etc/gost/privkey.pem"With this two-hop chain the exit VPS never sees the originating client address, and the entry node never sees the destination of the user's traffic in cleartext beyond the next hop. You can extend the chain with additional -F hops for more separation, at the cost of latency. For most users one entry plus one offshore exit is the right balance.
Build in fallback so a blocked transport does not take you offline. GOST supports multiple forward hops and load-balancing/failover strategies in its node groups: define several next-hops with different transports (for example one wss and one grpc node) and a failover strategy, and traffic automatically reroutes when one path stops responding. A common resilient layout is an entry node that fans out to two offshore exits running different transports, so a censor would have to fingerprint and block both simultaneously to cut you off.
Keep the exit node offshore and keep the entry node disposable. The exit holds your clean IP and stable certificate; if an entry IP gets burned by a block list you spin up a fresh small VPS, point it at the same exit, and you are back in minutes without touching the part of the chain that matters. This separation of roles is what makes GOST chains durable against IP-level blocking.
Hardening and Operating a GOST Relay
A GOST node is internet-facing, so lock it down. Use nftables or ufw to allow only the transport port you actually serve (typically 443/tcp, plus 443/udp if you run QUIC) and your SSH port, and drop everything else inbound. Always require authentication on the handler (the user:pass in the URL, or an auth file) so your relay is not an open proxy that gets abused and blacklisted.
Front the listener with a real domain and a valid TLS certificate, and serve a plausible fallback site on the same port for connections that are not GOST clients. GOST's ?probeResist and a configured fallback target let the node respond to active probing the way a normal web server would, instead of revealing that a proxy lives there. This active-probe resistance is critical in networks that send synthetic connections to suspected proxy IPs to confirm them before blocking.
Operationally, watch CPU and connection counts. TLS plus multiplexed gRPC/HTTP/2 is light, but QUIC and many concurrent streams use more CPU; a 1 vCPU box saturates a typical home uplink, while a heavy multi-user relay wants 2 vCPUs or more. For sustained high throughput or a node you depend on, a dedicated offshore server removes the noisy-neighbour variance you can get on shared infrastructure. Keep the binary current: GOST is actively developed and transport tweaks land regularly, so periodically replace the binary and restart the service.
Finally, choose the exit jurisdiction deliberately. Hosting the egress node in Romania or Iceland places it outside the 14-Eyes arrangement, in legal environments without VPS-level data-retention mandates, and with strong connectivity toward both Western Europe and CIS networks. Because GOST holds no traffic logs by default and you are the only operator, there is effectively no third-party record to compel. Browse the offshore VPS plans to pick an exit location and start with a small instance you can scale as your relay grows.
相关服务
Privacy & anti-censorship guides
Why Anubiz Host
Ready to get started?
Skip the research. Tell us what you need, and we'll scope it, implement it, and hand it back — fully documented and production-ready.