GoHomeEasy
GoHomeEasy is a Serverless-based (Cloudflare Workers / AWS Lambda) Shadowsocks/Clash subscription management tool, designed specifically for home broadband users without a public IP to access their home network remotely.
Install / Use
/learn @kanshurichard/GoHomeEasyREADME
🚀 GoHomeEasy
English | 中文
GoHomeEasy is a Serverless-based (Cloudflare Workers / AWS Lambda) Shadowsocks/Clash subscription management tool, designed for home broadband users without a public IP.
It leverages Lucky's NAT traversal capabilities combined with Serverless automated subscription updates, allowing you to directly access your home LAN from anywhere (office, mobile network) without manually updating dynamic IPs and ports.
🌟 Why GoHomeEasy?
✅ Home Broadband Savior: Access NAS, soft routers, and PCs remotely without a public IP.
✅ Automated: Automatically updates subscriptions via Lucky Webhook when your home IP changes.
✅ Secure: Supports API Key authentication to prevent unauthorized scanning.
✅ Serverless: No server required. Cloudflare Workers offers a generous free tier that is usually sufficient for personal use.
Platform Comparison
| Feature | Cloudflare Workers (Recommended) 🏆 | AWS Lambda | | :--- | :--- | :--- | | Ease of Use | ⭐⭐⭐⭐⭐ (Very Simple) | ⭐⭐⭐ (Slightly Complex) | | Cost | Free (100k requests/day) | Free (1M requests/month) | | Network | 🌍 Global access except Chinese Mainland | 🇨🇳 Not blocked by Mainland China |
⚙️ Prerequisites
- Home Server/Router: Running OpenWrt or Linux.
- Shadowsocks Server: Recommended PassWall2 or Shadowsocks-Libev on OpenWrt.
- Lucky NAT Traversal: Installed and configured for STUN traversal (Lucky Official Site), ensuring successful traversal visibility.
- Cloud Account:
- Cloudflare Account (Recommended): For deploying Workers.
- Or AWS Account: For deploying Lambda.
- Client: iOS/MacOS Shadowrocket or other clients supporting SS/Clash subscriptions.
💻 Step 1: Configure Home Shadowsocks Server
Example using OpenWrt Passwall2:
- Add Node: Click "Add" in the "Server" tab.
- Configure Parameters:
- Type: Shadowsocks (Sing-Box core recommended).
- Listening Port:
8000(or others). - Encryption:
chacha20-ietf-poly1305recommended. - Password: Set a strong password.
- LAN Access: Must Check (allows remote access to home LAN devices).
- Save and Apply.
☁️ Step 2: Deploy Cloud Subscription Service
🏆 Plan A: Cloudflare Workers (Recommended)
This is the easiest method. No servers to manage, and it's free.
1. Create KV Namespace
- Log in to Cloudflare Dashboard.
- Go to
Workers & Pages->KV. - Create a namespace named
GoHomeEasy_KV.
2. Create Worker
- Go to
Workers & Pages->Overview->Create application->Create Worker. - Name it
GoHomeEasy. - Click
Deploy.
3. Edit Code
- Click
Edit code. - Copy the content of
GoHomeEasy_CF_SS.js(for Shadowsocks) orGoHomeEasy_CF_Clash.js(for Clash) from this repository.- Note: Choose the file based on the subscription format you need.
- Replace the code in the editor.
- Modify
const SECRET_KEY = "your_secret_key";with your own secure key.
4. Bind KV Namespace
- Go back to the Worker's
Settings->Variables(orBindings). - Under
KV Namespace Bindings, clickAdd binding. - Variable name:
KV_NAMESPACE. - KV Namespace: Select
GoHomeEasy_KV. - Deploy.
Plan B: AWS Lambda (For Mainland China)
If you prefer AWS or need a specific region.
1. Create DynamoDB Table
- Log in to AWS Console, select a region (e.g., Singapore).
- Go to DynamoDB -> Create table.
- Table name:
Subscription. - Partition key:
id(String). - Create table.
2. Create Lambda Function
- Go to Lambda -> Create function.
- Function name:
GoHomeEasy. - Runtime:
Node.js 24.x(or newer). - Create function.
3. Write Code
- Replace
index.mjscontent with contents inGoHomeEasy_AWS_SS.jsorGoHomeEasy_AWS_Clash.js. - Deploy.
4. Permission & Environment Variables
- Environment Variables:
SECRET_KEY: Your API key.TABLE_NAME:Subscription.
- Permissions:
- Add
DynamoDBpermissions (PutItem,GetItem) to the Lambda's execution role.
- Add
5. Create API Gateway
- Add trigger -> API Gateway.
- Create a new API -> HTTP API -> Security: Open.
- Get the API Endpoint.
🔗 Step 3: Configure Lucky Webhook
Enable Webhook in Lucky STUN rules.
1. Webhook URL (POST)
- 🏆 Cloudflare Users:
https://your-worker-name.your-subdomain.workers.dev/ - ☁️ AWS Users:
https://your-api-id.execute-api.region.amazonaws.com/default/GoHomeEasy
2. Request Headers
Content-Type: application/json
Authorization: Bearer YOUR_SECRET_KEY
3. Request Body
Lucky automatically replaces #{ip} and #{port}.
{
"ip": "#{ip}",
"port": "#{port}",
"method": "chacha20-ietf-poly1305",
"password": "YOUR_SHADOWSOCKS_PASSWORD"
}
Note:
methodandpasswordmust match your server settings.
📥 Step 4: Client Subscription (Shadowrocket)
1. Add Subscription
- 🏆 Cloudflare Users:
https://your-worker...workers.dev/?api_key=YOUR_SECRET_KEY - ☁️ AWS Users:
https://your-api...amazonaws.com/default/GoHomeEasy?api_key=YOUR_SECRET_KEY
2. Routing Rules (Crucial)
To ensure only home traffic goes through this proxy:
- Config -> Rules -> Add Rule.
- Type:
IP-CIDR. - Value:
192.168.1.0/24(Match your home subnet). - Policy: Select
GoHomeEasy(the subscription group). - Save.
3. Subnet Conflict (Optional)
If your current network is also 192.168.1.x:
- Recommended: Change your home router subnet to something distinct like
192.168.50.x. - Alternative: In Shadowrocket Settings -> On Demand, enable Route Includes Local Network.
🛡 FAQ
Q: Is Cloudflare Workers free? A: Yes, the free tier allows 100,000 requests per day, which is more than enough for personal use.
Q: Why isn't the subscription updating?
A: Check the logs (Cloudflare Worker logs or AWS CloudWatch). Common issues include mismatched SECRET_KEY or incorrect permissions (DynamoDB/KV).
Q: Cannot connect at home? A: Ensure Lucky STUN is working (TCP) and getting a public IP. Some corporate networks block non-standard ports; try using Lucky's port mapping to standard ports if possible.
Related Skills
pestel-analysis
Analyze political, economic, social, technological, environmental, and legal forces
ai-cmo
Collection of my Agent Skills and books.
orbit-planning
O.R.B.I.T. - strategic project planning before you build. Objective, Requirements, Blueprint, Implementation Roadmap, Track.
next
A beautifully designed, floating Pomodoro timer that respects your workspace.
