不需要公网IP,不需要路由器折腾端口映射,也不用天天担心家里IP变了连不上。群晖NAS 7.X系统用cpolar内网穿透,配置一个固定的二级子域名,随时随地在外网访问家里的NAS,这套方案我用了很久,稳定性和速度都让我满意。
很多刚接触群晖的朋友都有这个痛点:家里拉了宽带,但运营商给的IP是大内网,想在外面访问NAS里的照片和文件,要么用群晖自带的QuickConnect——慢得让人着急,要么就去研究DDNS和端口映射——先不说能不能搞到公网IP,光是路由器那一堆设置就劝退不少人。cpolar这类的内网穿透工具,就是专门解决“没有公网IP也能在外网访问内网服务”这个问题的。
这篇博文我按照自己实际配置的过程来写,从cpolar是什么、为什么选它,到群晖7.X上一步步安装、注册、配置固定二级子域名,再到最后的远程访问验证和常见问题排查,全部走一遍。想给家里的群晖配上稳定好记的外网访问地址,看这一篇就够了。
1. 为什么选择cpolar来做群晖远程访问
1.1 内网穿透的底层逻辑
先把内网穿透的原理说透。你家里的群晖NAS接入路由器,获取的是一个类似192.168.x.x的私有IP地址,这个地址只在你的局域网内有效。外网的设备想直接访问这个IP,根本找不到路。而宽带运营商给你的公网IP,要么是动态变化的,要么干脆就是大内网IP——也就是运营商做了NAT转发,你家的设备根本没有独立的公网出口。
内网穿透工具做的事情很直白:在你的NAS上运行一个客户端程序(cpolar),这个程序主动向外网的cpolar服务器发起一条加密的长连接通道。外网用户访问你分配到的那个域名时,请求先到达cpolar的服务器,服务器再通过这条已经建立好的通道,把请求转送到你家里的群晖NAS上。整个过程,你不需要在路由器上做任何端口映射,NAS也无需暴露在任何公网端口下,所有数据都走的是NAS主动发起的出站连接,安全性反而更高。
打个比方,你家在一栋没有门牌号的大楼里(无公网IP),快递员找不到你。cpolar相当于你在楼下装了一个有明确地址的信箱(服务器域名),快递员把包裹放进信箱,信箱再用内部的管道把包裹送到你家。这个管道是你家自己接出去的,外人根本接触不到。
1.2 对比其他方案的取舍
群晖远程访问有几种常见路径,我把自己试过的体验放在一起对比:
| 方案 | 是否需要公网IP | 速度表现 | 配置难度 | 稳定性 |
|---|---|---|---|---|
| 群晖QuickConnect | 不需要 | 较慢,中继节点拥堵时明显 | 最简单,勾选即用 | 取决于官方服务器 |
| DDNS+端口映射 | 需要 | 最快 | 高,需路由器、运营商多处设置 | 依赖公网IP是否稳定 |
| 路由器自带穿透 | 看品牌 | 一般 | 中等 | 各家不一 |
| cpolar内网穿透 | 不需要 | 较快,看套餐带宽 | 低,基本一路下一步 | 稳定,通道常驻 |
QuickConnect我也用过,优点是零配置,但速度不稳定,传个大文件等半天。DDNS方案如果你的宽带没有公网IP,连第一步都迈不出去。cpolar这类穿透方案,恰恰卡在了“配置不算难、速度还算快、不依赖公网IP”这个平衡点上。
1.3 cpolar在群晖7.X上的适配情况
群晖7.X版本在底层做了一些调整,尤其是权限管理更严格了,但cpolar的安装包对7.X兼容性做得不错。官方提供了专属的群晖套件安装包,不是那种用Docker绕一圈的方案,直接在套件中心手动安装就能跑起来。我用的DSM版本是7.2,从7.0到7.2.1这几个版本都有网友验证过可正常使用。这一点很重要,因为有些老牌穿透工具更新慢,在7.X上会出现权限不足或进程被杀的情况,cpolar在这方面跟进得比较及时。
2. 环境准备与cpolar安装全流程
2.1 你需要提前准备的东西
清单很简单,不需要额外购买硬件:
- 一台群晖NAS,系统版本DSM 7.0及以上(我实测7.2没问题)
- 一个cpolar官网账号,免费套餐即可起步
- 能够访问群晖后台的管理员权限
- 家庭宽带网络,不需要公网IP
注册账号这里提一句,邮箱注册就行,不需要实名认证也能用基础功能,注册后系统会分配一个authtoken,这个token后面要填到NAS的cpolar配置里,相当于你家信箱的一把专用钥匙。
2.2 群晖套件的安装步骤
cpolar提供两种安装方式:一种是直接在套件中心搜索,支持在线安装;另一种是去官网下载.spk安装包,在套件中心手动安装。我推荐用官方安装包手动安装的方式,版本可控,而且官网上会有针对群晖7.X的适配说明。
操作路径:
- 打开群晖的“套件中心”,点击右上角的“手动安装”按钮
- 选择下载好的cpolar安装包,下一步
- 系统会提示该套件来自第三方,勾选同意后继续
- 安装完成后,在主菜单会出现cpolar的图标
安装过程大概一两分钟,如果提示安装失败,多半是群晖的系统版本不满足要求,或者安装包架构不对。群晖的CPU架构有x86_64和arm之分,在“控制面板-信息中心-常规”里能看到型号和CPU信息,下载安装包时务必选对应架构的版本。
2.3 初始化登录与token绑定
安装完成后,打开cpolar套件,第一次运行会让你登录。这里的登录不是网页登录,而是要填入你在官网获取的authtoken。操作如下:
- 打开cpolar官网,登录后进入“验证”页面
- 复制属于你的authtoken,长的这串字符
- 回到群晖的cpolar界面,粘贴到token输入框
- 点击保存,系统会验证token并完成绑定
绑定成功后,cpolar会自动生成一个临时的随机域名,先在浏览器里访问一下这个域名,确认能打开群晖的登录界面再继续往下做。别小看这一步,它保证了你后面做的配置大方向是正确的。
3. 配置固定二级子域名的核心细节
3.1 免费随机域名和固定域名的区别
这一步是整个配置的灵魂,也是很多教程没讲透的地方。
免费套餐会给你一个随机分配的域名,每次重启隧道服务,域名可能会变。这在临时调试时没问题,但你想把地址存到手机书签、发给家人用,域名一变就全废了。固定二级子域名就是解决这个问题:你指定一个像mysynology.cpolar.shop这样的前缀,以后不管怎么重启,地址永远不变。
原因也简单:cpolar的服务器是通过“域名—隧道ID—设备”这个对应关系来转发请求的。免费套餐的隧道是临时分配,ID会变;固定子域名相当于把某一个二级子域名和你的隧道绑定死了,相当于你租了一个门牌号,以后快递员只认这个门牌号。
固定二级子域名需要对应的套餐支持,免费版只能使用随机域名,最基础的付费套餐可以支持固定子域名,而且不限流量。如果你只是偶尔远程看看文件、传点照片,基础套餐够用了。
3.2 创建通往群晖Web界面的隧道
在群晖的cpolar管理界面,左侧菜单找到“隧道管理”,点击“创建隧道”。这里的关键参数:
- 隧道名称:可以自定义,比如
synology-web,纯粹是给自己看的 - 协议:选
http,群晖DSM默认走http/https - 本地地址:填写
localhost:5000(群晖7.X默认HTTP端口是5000,如果你改过端口,这里要对应修改) - 域名类型:这里就是核心选项,选“固定二级子域名”
- 二级域名:输入你想要的专属前缀,比如
mynas2024,系统会检测是否可用,如果被人占用了就换一个 - 地区节点:选择离你最近的节点,国内用户一般选“中国香港”或其他可用节点
保存后,cpolar会生成一个完整的访问地址,格式类似mynas2024.cpolar.shop。这个时候,你先在内网环境下访问这个地址,如果能看到群晖的登录界面,说明隧道已经打通。
3.3 HTTPS证书自动配置
群晖7.X默认支持HTTPS访问,cpolar也提供了TLS加密隧道。在创建隧道时,如果你选了https协议,cpolar会自动为你的固定二级子域名配好SSL证书,访问时直接用https://开头就行,浏览器不会有证书告警。
这里有一个经验:我建议你在群晖DSM的控制面板里,把“启用HTTP/2”和“HSTS”关掉,因为cpolar的HTTPS是端到端加密,内网这一段再套一层HTTPS反而增加无谓的开销。隧道协议用http连到内网的5000端口,外网通过cpolar的https://域名访问,这样既保证了外网传输加密,内网转发也更高效。
4. 远程访问验证与性能调优实录
4.1 真机外网环境测试
配置完成之后,最关键的就是拿手机流量(脱离WiFi)来实测。不要在家里的WiFi下测,因为内网访问永远是通的,测不出穿透效果。
我的测试步骤:
- 手机断开WiFi,用5G网络打开
https://mynas2024.cpolar.shop - 等几秒钟,看到群晖的登录界面正常加载
- 输入账号密码登录,打开File Station,随便下载一个文件试试速度
- 打开Moments(群晖相册套件)翻看照片缩略图
实测下来,首次访问加载DSM界面大约3到5秒,之后页面切换响应很快,照片缩略图基本秒开。下载一个20MB的文件,速度大概在300KB/s到1MB/s之间波动,这个速度取决于你的套餐带宽和本地上行宽带的实际情况。上传文件的速度会更慢一些,因为走的是家庭宽带的对称上行带宽,一般在200-500KB/s。
4.2 带宽不够用时的优化思路
如果你觉得默认隧道速度不理想,有几个方向可以调整:
- 换用带宽更高的套餐,cpolar的付费套餐有更高的带宽配额
- 选择更近的服务器节点,降低链路延迟
- 避免传输超大文件,管理照片时用缩略图模式
- 用群晖的QuickConnect作为兜底,当cpolar节点拥堵时自动切换
实际操作中我发现,远程看照片、管理文件这类轻量操作,cpolar完全胜任;但如果要在外网往NAS里拖几十GB的视频素材,还是建议用支持P2P加速的传输工具,内网穿透适合连接管理,不适合重载传输。
4.3 进阶玩法:一条隧道不够怎么办
群晖NAS上跑着的不止DSM一个服务,还有File Station、Audio Station、Download Station、Web Station,每一个都是一个Web端口。cpolar支持创建多个隧道,你可以给每个服务单独配一个二级子域名,比如music.cpolar.shop指向5000端口的Audio Station,download.cpolar.shop指向5000端口的Download Station。
7.X还内置了Application Portal(应用门户),不同套件可以通过DSM的反向代理挂到不同端口上。最简单的方式是,根据DSM的登录端口来区分:群晖7.X默认HTTP是5000,但同一个域名只能映射一个端口。如果真的是多服务需求,那就建多条隧道,每一条固定一个子域名,这样管理起来最清晰,不会串服务。
5. 常见问题与排查技巧实录
5.1 隧道建好后浏览器却打不开
这是大家遇到最多的问题,按照下面顺序排查就能定位:
- 先确认本地访问是否正常:浏览器打开
http://localhost:5000,如果打不开,问题出在群晖自身配置,而非cpolar - 检查隧道状态:cpolar界面里隧道是否显示“Active”,如果显示“Inactive”,手动启动一次
- 确认二级域名没有拼错,注意前缀后面跟的顶级域名是cpolar.shop而不是cpolar.com
- 换一个浏览器或无痕窗口试一次,排除浏览器缓存问题
- 手机上直接ping一下域名,看DNS解析结果是否正常
有个非常容易踩的坑:群晖7.X的防火墙默认可能拦截了来自内网的非标准端口访问,导致cpolar的本地转发失败。解决方式是到“控制面板-安全性-防火墙”,把5000端口加入允许列表,或者干脆放行cpolar进程。
5.2 远程访问时提示密码错误或会话过期
这个问题通常和DSM设置了登录IP来源限制有关。群晖7.X的“账户与密码”里有一项“自动封锁”,会记录多次失败的登录IP。cpolar出口IP是固定的(属于cpolar服务器节点),如果你在测试登录时输错几次密码,会被群晖拉黑。解决方式很简单:到“安全性-账户”里把封锁列表清空,或者把cpolar的节点IP加入白名单。
5.3 固定域名提示“Host Not Found”
这个报错说明你配置的二级域名在cpolar服务器上没有匹配到对应的隧道。最常见原因是:你换了一个账号登录cpolar,但域名是在旧账号下绑定的。cpolar的域名绑定是跟着账号走的,换账号必须重新绑定域名。另外,如果长时间没有流量,免费套餐的隧道可能会被回收,重新创建隧道后再关联域名即可。
5.4 群晖重启后cpolar无法自动启动
群晖7.X对第三方套件的自启动管理都做在了/usr/local/etc/rc.d/目录下。正常情况下cpolar套件会注册一个启动脚本,但偶尔会因为系统版本升级导致脚本失效。解决办法有两个:第一,打开cpolar套件里的“开机自启”开关,确认它是打开状态;第二,在“控制面板-任务计划”里创建一个触发的任务,开机时执行一次cpolar的启动命令,这个办法最稳妥。
5.5 实用维护小技巧
用久了会发现几个实用细节,顺手分享一下:
- cpolar的管理界面(本地端口一般是9200)一定要保持可以访问,这个界面可以看实时流量、在线隧道状态,排查问题全都靠它
- 定期清理群晖的登录日志,避免无效请求占用隧道资源
- 如果长时间外出,建议把群晖的休眠时间设置为“永不”,因为NAS一休眠,隧道会断开,下次唤醒需要重新连接
- 设置里可以开“断线自动重连”功能,这个强烈建议打开,我遇到过半夜路由器重新拨号导致隧道断开,如果没有自动重连,白天在外面就打不开NAS了
6. 关于安全加固和个人经验分享
6.1 开了远程访问,安全怎么做
任何方式的远程访问都是给NAS增加了一个入口,安全必须同步跟上。我建议至少做三层加固:
第一层是账号安全:群晖的admin账户一定要停用,单独创建自己的管理员账户;密码换成高强度随机密码,开两步验证,这一步能挡掉90%的扫描攻击。
第二层是访问控制:cpolar的付费套餐可以做访问权限限制,指定只有特定IP才能访问你的隧道域名。如果你在公司或家里固定出口IP,就把IP白名单填上。
第三层是日志监控:群晖的“日志中心”把所有套件的登录日志汇总,每周扫一眼,看看有没有可疑的登录尝试。群晖也有安全顾问功能,会定期扫描系统配置,给出加固建议。
6.2 我踩过的一些坑
用了大半年cpolar,整理几个让我印象深刻的问题:
某次群晖系统从7.1升级到7.2,重启后cpolar的隧道一直显示离线。网上搜了一圈才发现是套件的自启动脚本被系统重置了,重新安装一遍cpolar套件才解决。所以大版本升级前,建议先备份一下cpolar的配置信息。
停电导致NAS强制关机后,cpolar偶尔会卡在“正在连接”状态。以往的经验是把隧道先停掉,再手动启动,比直接重启套件更有效。
免费套餐和付费套餐的节点质量有一定区别,如果你的访问延迟明显偏高,可以去套餐里把节点换成更近的区域。不过这个操作会变动出口IP,对安全白名单设置有一点影响,需要注意。
6.3 这套方案后续能怎么扩展
固定二级子域名搞定后,很多事情都可以往外延伸。同一个cpolar隧道,你可以用Nginx反向代理把不同的子路径转发到群晖上的不同套件;如果配有智能家居或者家里还有别的设备,比如远程桌面、路由器后台、摄像头管理界面,都可以用cpolar的方式映射出来。
我个人目前用到的最舒服的组合是:cpolar穿透群晖DSM用来管理文件,穿透路由器后台用来远程调网络设置,剩下几个开发用的内网服务也用同样的方式暴露到公网做测试。一劳永逸地解决了多设备远程访问问题。
如果你想更进一步,可以研究cpolar的本地化部署和API接入,把穿透功能集成到自己的脚本里,做自动化的内网资源管理。这套“固定二级子域名+内网穿透”的模式,应付绝大多数家庭和小团队的远程访问需求,绰绰有余。