## 前言
黑群晖装好后,在家用很爽,但出门在外怎么访问?本教程教你配置 DDNS + HTTPS,让你随时随地通过域名安全访问家里的 NAS。包含群晖自带 DDNS、阿里云 DDNS、Cloudflare DDNS 三种方案,以及反向代理配置。
## 一、远程访问方案对比
| 方案 | 难度 | 费用 | 速度 | 稳定性 |
|——|——|——|——|——–|
| 群晖自带 DDNS | ⭐ | 免费 | 一般 | 一般 |
| 阿里云 DDNS | ⭐⭐ | 域名费 | 快 | 高 |
| Cloudflare DDNS | ⭐⭐ | 免费 | 快 | 高 |
| Tailscale | ⭐ | 免费 | P2P直连 | 高 |
| frp 内网穿透 | ⭐⭐⭐ | VPS费 | 取决VPS | 高 |
## 二、检查公网 IP
### 第1步:查看 WAN 口 IP
“`bash
# SSH 连接黑群晖
curl -s https://ipinfo.io/ip
“`
### 第2步:对比路由器 WAN 口 IP
登录路由器,查看 WAN 口获取的 IP 地址,和上面返回的对比:
– **相同** → 有公网 IP,方案最简单
– **不同** → 没有公网 IP(运营商 NAT),需要用 frp 或 Tailscale
### 第3步:打电话要公网 IP(推荐尝试)
拨打运营商客服电话:
– 电信:10000 → 转人工 → “我要公网 IP”
– 联通:10010 → 转人工 → 同上
– 移动:10086 → 转人工 → 同上(移动基本不给)
> 大概率电信/联通会给,移动基本不行。
## 三、方案一:群晖自带 DDNS
### 配置步骤
1. 进入 **控制面板 → 外部访问 → DDNS**
2. 点击 **新增**
3. 设置:
“`
服务供应商:Synology
主机名:你想要的名字.synology.me
电子邮件:你的邮箱
“`
4. 勾选 **从内置列表启用 Heartbeat**
5. 点击 **确定**
> 群晖自带 DDNS 不支持自定义域名,只能用 xxx.synology.me。
### 设置端口映射
在路由器中配置端口映射:
| 外部端口 | 内部端口 | 协议 | 说明 |
|———|———|——|——|
| 5000 | 5000 | TCP | DSM 管理页面(HTTP) |
| 5001 | 5001 | TCP | DSM 管理页面(HTTPS) |
| 8096 | 8096 | TCP | Jellyfin |
| 5244 | 5244 | TCP | Alist |
### 验证
外网浏览器打开 `http://你的名字.synology.me:5000`,能访问即成功。
## 四、方案二:阿里云 DDNS(推荐)
### 第1步:购买域名
1. 打开 https://wanwang.aliyun.com/domain/
2. 搜索你想要的域名(如 `mynas.xyz`)
3. 购买(.xyz 域名首年只要几块钱)
### 第2步:创建 AccessKey
1. 登录阿里云控制台
2. 鼠标放头像上 → **AccessKey 管理**
3. 创建 AccessKey → 记录 AccessKey ID 和 Secret
### 第3步:创建 DDNS 脚本
SSH 连接黑群晖:
“`bash
sudo mkdir -p /volume1/docker/ddns
sudo tee /volume1/docker/ddns/aliddns.sh <<'SCRIPT'
#!/bin/bash
# ============ 阿里云 DDNS 配置 ============
AccessKeyId="你的AccessKeyId"
AccessKeySecret="你的AccessKeySecret"
Domain="你的域名.xyz"
SubDomain="nas" # 最终访问地址:nas.你的域名.xyz
# ==========================================
# 获取当前公网IP
CurrentIP=$(curl -s https://ipinfo.io/ip)
# 获取域名解析记录
RecordInfo=$(curl -s "https://alidns.aliyuncs.com/?Action=DescribeSubDomainRecords&SubDomain=${SubDomain}.${Domain}&AccessKeyId=${AccessKeyId}&Format=JSON" \
-H "Content-Type: application/json")
# 解析记录ID(需要签名,这里用简化版)
# 实际使用建议用 aliyun-cli 工具
echo "$(date): Current IP = ${CurrentIP}"
echo "DDNS update completed"
SCRIPT
sudo chmod +x /volume1/docker/ddns/aliddns.sh
```
### 第4步:使用 Docker 部署 DDNS(更简单)
```bash
sudo tee /volume1/docker/ddns/docker-compose.yml <<'EOF'
version: "3.8"
services:
aliddns:
image: jevic/aliddns:latest
container_name: aliddns
environment:
- AKID=你的AccessKeyId
- AKSCT=你的AccessKeySecret
- DOMAIN=nas.你的域名.xyz
- REDO=600
- TZ=Asia/Shanghai
restart: unless-stopped
EOF
cd /volume1/docker/ddns
sudo docker compose up -d
```
### 第5步:验证
```bash
# 检查域名是否解析到你的公网IP
nslookup nas.你的域名.xyz
```
## 五、方案三:Cloudflare DDNS
### 第1步:域名 DNS 托管到 Cloudflare
1. 注册 https://dash.cloudflare.com/
2. 添加你的域名
3. 按提示修改域名的 NS 记录
### 第2步:获取 API Token
1. Cloudflare 控制台 → **My Profile → API Tokens**
2. **Create Token → Edit zone DNS**
3. 记录生成的 Token
### 第3步:Docker 部署
```bash
sudo mkdir -p /volume1/docker/cfddns
sudo tee /volume1/docker/cfddns/docker-compose.yml <<'EOF'
version: "3.8"
services:
cloudflare-ddns:
image: favonia/cloudflare-ddns:latest
container_name: cloudflare-ddns
environment:
- CF_API_TOKEN=你的CloudflareToken
- DOMAINS=nas.你的域名.xyz
- PROXIED=false
- TZ=Asia/Shanghai
restart: unless-stopped
EOF
cd /volume1/docker/cfddns
sudo docker compose up -d
```
## 六、配置 HTTPS 证书
### 方法一:Let's Encrypt 免费证书
1. **控制面板 → 安全性 → 证书**
2. 点击 **新增 → 新增新证书 → 从 Let's Encrypt 取得证书**
3. 填写:
```
域名:nas.你的域名.xyz
电子邮件:你的邮箱
主体别名:留空
```
4. 勾选 **设置 DDNS(此域名需已配置 DDNS)**
5. 点击 **确定** → 等待证书签发
### 方法二:Cloudflare 源站证书
1. Cloudflare → SSL/TLS → 源服务器 → 创建证书
2. 下载证书和私钥
3. DSM → 控制面板 → 安全性 → 证书 → 新增 → 导入证书
## 七、配置反向代理
通过反向代理,可以用 `https://nas.你的域名.xyz` 直接访问所有服务,不需要记端口号。
1. **控制面板 → 登录门户 → 高级 → 反向代理**
2. 添加规则:
| 来源 | 目标 |
|------|------|
| `https://nas.域名.xyz/jellyfin` | `http://localhost:8096` |
| `https://nas.域名.xyz/alist` | `http://localhost:5244` |
| `https://nas.域名.xyz/qbit` | `http://localhost:8080` |
## 八、常见报错解决
| 报错 | 原因 | 解决方案 |
|------|------|---------|
| DDNS 更新失败 | API Key 错误 | 检查 AccessKey 是否正确 |
| 证书签发失败 | 80/443 端口未开放 | 路由器映射 80 和 443 端口 |
| 外网无法访问 | 端口没映射 | 路由器添加端口映射规则 |
| 域名解析不到 | DDNS 未生效 | 等待 DNS 缓存刷新(最多48小时) |
| HTTPS 证书不信任 | 自签证书 | 用 Let's Encrypt 或 Cloudflare 证书 |
| 运营商封锁 80/443 | 国内常见 | 用非标准端口如 8443 |
## 九、避坑总结
1. 没有公网 IP 一切免谈,先打电话要公网 IP
2. 运营商可能封锁 80/443 端口,用非标端口绕过
3. HTTPS 证书必配,不要裸 HTTP 暴露到公网
4. 定期检查 DDNS 是否正常更新,IP 变了要及时同步
5. 反向代理让访问更方便,不用记端口号
6. frp 方案适合没公网 IP 的用户,但需要一台 VPS
7. 修改 DSM 默认端口,避免被扫描攻击
本文由技术保姆网 JSBMW.CN 原创,转载请注明出处。