1. 我们目标是用低带宽(小水管)香港VPS,搭配动态域名或隧道,低成本稳定地对外提供轻量服务(静态站、个人API、文件中转等)。
1. 小分段:适合场景——个人博客、WebHook中转、私有代理、备份同步;不适合大流量视频/大文件常态传输。
2. 步骤:选择香港机房的廉价VPS(1核/512MB~1GB,带宽限速按需),推荐看月付、带宽峰值、是否支持IPv6、是否有防护。常见商家:腾讯云海外/阿里云香港/独立小厂或廉价VPS平台。
2. 小分段:注册域名(推荐用可管理API的域名托管商或Cloudflare),若无域名可使用免费动态域名服务(DuckDNS、freedns.afraid.org)。
3. 登录后做基础配置:更新系统与安装基本工具。
3. 小分段:示例命令(Debian/Ubuntu):
sudo apt update && sudo apt upgrade -y
sudo apt install -y curl wget git ufw fail2ban nano
3. 开启防火墙与限制SSH:sudo ufw allow 22/tcp; sudo ufw allow 80,443/tcp; sudo ufw enable;同时禁用root密码登录,使用密钥认证。
4. 场景A:你希望域名指向VPS(VPS有固定IP)——直接在域名管理面板设置A记录即可;若需API更新,使用供应商API。
4. 场景B:你在家或办公网络是动态公网IP,但希望用域名访问家中服务,使用VPS做跳板或反向隧道(推荐)。
5. 步骤:获取API token(编辑DNS权限),然后在VPS上写脚本定期更新。
5. 小分段:示例脚本(保存为 /root/update_cf.sh 并 chmod +x):
#!/bin/bash ZONE="example.com" RECORD="sub.example.com" TOKEN="你的CF_API_TOKEN" IP=$(curl -s https://ipv4.icanhazip.com) RECORD_ID=$(curl -s -X GET "https://api.cloudflare.com/client/v4/zones?name=${ZONE}" -H "Authorization: Bearer ${TOKEN}" -H "Content-Type: application/json" | jq -r '.result[0].id') DNS_ID=$(curl -s -X GET "https://api.cloudflare.com/client/v4/zones/${RECORD_ID}/dns_records?name=${RECORD}" -H "Authorization: Bearer ${TOKEN}" -H "Content-Type: application/json" | jq -r '.result[0].id') curl -s -X PUT "https://api.cloudflare.com/client/v4/zones/${RECORD_ID}/dns_records/${DNS_ID}" -H "Authorization: Bearer ${TOKEN}" -H "Content-Type: application/json" --data "{\"type\":\"A\",\"name\":\"${RECORD}\",\"content\":\"${IP}\",\"ttl\":120}"
5. 用cron定期执行:*/5 * * * * /root/update_cf.sh
6. 思路:在VPS上开放高端口并运行sshd,家中机器用autossh建立反向隧道,将本地服务映射到VPS端口。
6. 小分段:示例命令(家里机器):autossh -M 0 -f -N -o "ServerAliveInterval 60" -o "ServerAliveCountMax 3" -R 22222:localhost:80 user@your-vps-ip
6. 然后在VPS上用Nginx监听80并反向代理到127.0.0.1:22222。
7. 推荐Caddy做自动TLS证书,配置简单;Nginx适合精细控制。若用Docker可把服务隔离在容器里。
7. 小分段:Caddyfile示例:
sub.example.com { reverse_proxy 127.0.0.1:22222 encode gzip }
7. Nginx示例server块:server_name sub.example.com; location / { proxy_pass http://127.0.0.1:22222; proxy_set_header Host $host; }
8. 在小带宽环境重点做三件事:缓存(静态资源走CDN)、压缩(gzip/brotli)、限制并发与带宽)。
8. 小分段:开启gzip/brotli,设置expires头,使用Caddy或Cloudflare CDN缓存静态文件;对文件传输启用断点续传与限速(Nginx limit_rate)。
9. 建议写简单脚本做一键部署与健康检查。例如deploy.sh:git pull && docker-compose up -d --build,并加一条systemd定时健康检测脚本重启失败容器。
9. 小分段:定期清理日志、备份重要文件到对象存储或另一个VPS,设置fail2ban防止暴力破解。
10. 答:能,但要做流量控制与缓存。小水管适合低并发、以请求为主的轻量服务。静态内容强烈建议使用CDN或Caddy+缓存,热点文件可放外部存储以减轻VPS带宽。
11. 答:设置较低TTL(例如120秒),使用支持API的DNS商并通过脚本快速更新;若是必须即时可用,使用VPS反向隧道让域名固定指向VPS,再由VPS转发到家里,避免每次IP变更都改DNS。
12. 答:备选方案包括:1) 使用Cloudflare Tunnel(cloudflared)把服务注册到Cloudflare,避免暴露IP;2) 多VPS冗余(轮流心跳);3) 把核心数据备份至第三方对象存储以便切换主机。