This guide explains how to deploy an exit node for MasterHttpRelayVPN on free platforms or your own VPS server.
Traffic path:
Browser -> Local Proxy -> Apps Script -> Exit Node -> Target Website
Use this when destinations block Google datacenter egress.
- Val Town (free, no server required)
- Cloudflare Workers (free tier available)
- Deno Deploy (free, not fully tested)
- Your Own VPS (full control, Linux server — automated installer included)
You only need one provider.
Each template includes:
const PSK = "CHANGE_ME_TO_A_STRONG_SECRET";
Replace that value with a long random secret.
Important:
- Use the same PSK in your local config under exit_node.psk.
- Never share your deployed URL together with a valid PSK.
Source file: apps_script/valtown.ts
Steps:
- Sign in at https://www.val.town
- Create a new Val (TypeScript HTTP endpoint).
- Paste content from apps_script/valtown.ts.
- Set the PSK constant in the code.
- Save and Add HTTP trigger.
- Copy your public URL, usually like https://YOUR-NAME.web.val.run
Source file: apps_script/cloudflare_worker.js
Steps:
- Sign in at https://dash.cloudflare.com
- Go to Compute -> Workers & Pages.
- Create Application -> Start with Hello World -> Deploy -> Edit Code.
- Replace code with apps_script/cloudflare_worker.js content.
- Set PSK constant in code.
- Deploy.
- Copy URL, usually like https://YOUR-WORKER.YOUR-SUBDOMAIN.workers.dev
Source file: apps_script/deno_deploy.ts
Steps:
- Sign in at https://dash.deno.com
- Select new playground.
- Paste apps_script/deno_deploy.ts.
- Set PSK constant in code.
- Deploy.
- Copy URL, usually like https://YOUR-PROJECT.deno.net
Source files:
apps_script/vps_exit_node.py— the relay serverapps_script/setup_vps_exit_node.sh— automated installer (recommended)
Requirements:
- A Linux VPS (Ubuntu / Debian / CentOS / Fedora / Arch — any systemd distro).
- Python 3.10 or later (the installer will install it automatically if absent).
- Root / sudo access.
SSH into your VPS and run one of these:
# with curl:
curl -fsSL https://github.com/masterking32/MasterHttpRelayVPN/python_testing/apps_script/setup_vps_exit_node.sh | sudo bash
# with wget:
wget -qO- https://github.com/masterking32/MasterHttpRelayVPN/python_testing/apps_script/setup_vps_exit_node.sh | sudo bashThe script automatically downloads vps_exit_node.py from GitHub, so no git clone is needed first. It will ask for a port (default: 8181) and a PSK (auto-generates one if left blank), then install everything and print the config.json snippet at the end.
Note:
- To rotate the PSK, edit
/etc/exit-node.envand restart:systemctl restart exit-node.
Update config.json:
For Val Town / Cloudflare / Deno:
"exit_node": {
"enabled": true,
"provider": "valtown",
"url": "https://YOUR-NAME.web.val.run",
"psk": "CHANGE_ME_TO_A_STRONG_SECRET",
"mode": "full",
"hosts": [
"chatgpt.com",
"openai.com",
"claude.ai",
"anthropic.com"
]
}For your own VPS:
"exit_node": {
"enabled": true,
"provider": "vps",
"url": "https://YOUR-VPS-DOMAIN-OR-IP:8181",
"psk": "CHANGE_ME_TO_A_STRONG_SECRET",
"mode": "full",
"hosts": [
"example.com",
"openai.com",
"claude.ai",
"anthropic.com"
]
}Provider values:
valtowncloudflaredenovps
If mode is selective, only hosts listed in hosts use the exit node.
If mode is full, all relayed traffic uses the exit node.