Tailscale+自定义域名:零成本安全远程访问方案
目录
现有方案的痛点
Tailscale虽然解决了远程访问问题,但仍存在以下使用不便:
- 需要记忆复杂的Tailscale分配IP
- 必须记住各种服务端口
- MagicDNS方案存在局限:
- 域名后缀固定且冗长
- 单设备仅支持单一域名
- 证书申请常遇技术障碍
常见错误示例:执行tailscale cert ds3617xs.tailxxxxx.ts.net
获取证书时出现:
500 Internal Server Error: acme.GetReg: Get "https://acme-v02.api.letsencrypt.org/directory": tls: failed to verify certificate: x509: certificate signed by unknown authority
理想解决方案需求
完美的远程访问方案应具备:
- 无需公网IP,节省VPS成本
- 支持自定义短域名(如Freenom申请的域名)
- 支持Tailscale网络内的泛域名解析
- 使用标准80/443端口,无需记忆端口号
完整解决方案架构
实现原理:
- 所有访问设备安装Tailscale客户端
- 群晖安装Tailscale套件(假设Tailscale IP为100.x.y.z)
- 将自定义域名解析到Tailscale IP
- 使用DNS验证方式获取SSL证书
- 修改群晖WebStation默认端口
- 使用Nginx Proxy Manager作为反向代理服务器
DNS解析配置
使用Cloudflare进行DNS解析:
- 登录Cloudflare控制台
- 添加站点
- 创建两条A记录:
- 名称:@ → 指向Tailscale IP
- 名称:* → 指向Tailscale IP
- 关闭代理功能,仅使用DNS解析
Cloudflare API令牌创建
- 访问API令牌页面
- 创建自定义令牌
- 设置权限:
- 区域 - 区域:读取
- 区域 - DNS:编辑
- 生成并保存令牌
重要提示:API令牌仅显示一次,请妥善保存!
WebStation端口修改
通过SSH修改群晖默认端口:
# 进入nginx配置目录 cd /usr/syno/share/nginx # 修改以下文件中的端口(80→15080, 443→15443): # server.mustache # DSM.mustache # WWWService.mustache # 重启WebStation服务 synoservice --restart pkgctl-WebStation
修改后效果:
- 原访问地址:
http://192.168.0.197/phpMyAdmin/
- 新访问地址:
http://192.168.0.197:15080/phpMyAdmin/
Nginx Proxy Manager安装
使用Docker Compose安装:
version: '3' services: app: image: 'jc21/nginx-proxy-manager:latest' container_name: npm restart: unless-stopped ports: - '80:80' - '81:81' - '443:443' volumes: - ./data:/data - ./letsencrypt:/etc/letsencrypt
安装命令:
# 创建目录 mkdir -p /volume1/docker/npm/{data,letsencrypt} # 进入目录 cd /volume1/docker/npm # 启动容器 docker-compose up -d
SSL证书配置
在Nginx Proxy Manager中配置Let's Encrypt证书:
- 选择"Add SSL Certificate" → "Let's Encrypt"
- 启用"Use a DNS Challenge"
- 配置参数:
- Domain Names:
*.yourdomain.com
- DNS Provider: Cloudflare
- Credentials: 填入之前获取的API令牌
- Domain Names:
证书申请成功后,有效期3个月,系统会自动续期。
配置示例
反向代理NPM管理界面:
- 创建新的Proxy Host
- 域名:
npm.yourdomain.com
- 目标地址:
http://localhost:81
- SSL证书:选择之前创建的Cloudflare证书
配置完成后即可通过https://npm.yourdomain.com
访问管理界面。
方案优势总结
本方案是目前最安全、经济的远程访问解决方案:
- 更省钱 - 无需购买VPS
- 更安全 - 无公网IP暴露风险
- 更易用 - 免记IP和端口
- 无限制 - 相比Cloudflare Tunnel没有带宽和流量限制
该方案同样适用于Zerotier等其他VPN工具,原理相通。
共有 0 条评论