mirror of
https://github.com/masterking32/MasterHttpRelayVPN.git
synced 2026-05-18 06:44:35 +03:00
ff419b1338
Co-authored-by: Copilot <copilot@github.com>
112 lines
2.7 KiB
Markdown
112 lines
2.7 KiB
Markdown
# Exit Node Deployment Guide (Val Town / Cloudflare / Deno)
|
|
|
|
This guide explains how to deploy an exit node for MasterHttpRelayVPN on free platforms.
|
|
|
|
Traffic path:
|
|
|
|
Browser -> Local Proxy -> Apps Script -> Exit Node -> Target Website
|
|
|
|
Use this when destinations block Google datacenter egress.
|
|
|
|
## 1) Choose One Provider
|
|
|
|
- Val Town
|
|
- Cloudflare Workers
|
|
- Deno Deploy
|
|
|
|
You only need one provider.
|
|
|
|
## 2) Set PSK In Code
|
|
|
|
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.
|
|
|
|
## 3) Deploy On Val Town
|
|
|
|
Source file: apps_script/valtown.ts
|
|
|
|
Steps:
|
|
1. Sign in at https://www.val.town
|
|
2. Create a new Val (TypeScript HTTP endpoint).
|
|
3. Paste content from apps_script/valtown.ts.
|
|
4. Set the PSK constant in the code.
|
|
5. Save and deploy.
|
|
6. Copy your public URL, usually like https://YOUR-NAME.web.val.run
|
|
|
|
## 4) Deploy On Cloudflare Workers
|
|
|
|
Source file: apps_script/cloudflare_worker.js
|
|
|
|
Steps:
|
|
1. Sign in at https://dash.cloudflare.com
|
|
2. Go to Compute -> Workers & Pages.
|
|
3. Create Application -> Start with Hello World -> Deploy -> Edit Code.
|
|
4. Replace code with apps_script/cloudflare_worker.js content.
|
|
5. Set PSK constant in code.
|
|
6. Deploy.
|
|
7. Copy URL, usually like https://YOUR-WORKER.YOUR-SUBDOMAIN.workers.dev
|
|
|
|
## 5) Deploy On Deno Deploy
|
|
|
|
Source file: apps_script/deno_deploy.ts
|
|
|
|
Steps:
|
|
1. Sign in at https://dash.deno.com
|
|
2. Create new project.
|
|
3. Upload or paste apps_script/deno_deploy.ts.
|
|
4. Set PSK constant in code.
|
|
5. Deploy.
|
|
6. Copy URL, usually like https://YOUR-PROJECT.deno.dev
|
|
|
|
## 6) Configure MasterHttpRelayVPN
|
|
|
|
Update config.json:
|
|
|
|
{
|
|
"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"
|
|
]
|
|
}
|
|
}
|
|
|
|
Provider values:
|
|
- valtown
|
|
- cloudflare
|
|
- deno
|
|
|
|
If mode is selective, only hosts listed in hosts use the exit node.
|
|
If mode is full, all relayed traffic uses the exit node.
|
|
|
|
## 7) Quick Test
|
|
|
|
1. Start app: python main.py
|
|
2. Ensure proxy is set in browser.
|
|
3. Open a site known to require non-Google egress.
|
|
4. If it fails, check:
|
|
- provider and url are correct
|
|
- psk matches exactly between config and deployed code
|
|
- exit_node.enabled is true
|
|
|
|
## Troubleshooting
|
|
|
|
- unauthorized: PSK mismatch
|
|
- method_not_allowed: endpoint got non-POST request directly (normal when opened in browser)
|
|
- bad_url: malformed target URL from relay payload
|
|
- timeout or 5xx: temporary provider issue, redeploy and retry
|