ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

群晖NAS内网穿透实战:用cpolar实现固定二级子域名远程访问

群晖NAS内网穿透实战:用cpolar实现固定二级子域名远程访问 出门在外最尴尬的时刻就是人在高铁上客户突然要一份存在家里NAS里的合同。QuickConnect虽然在大部分时候够用但当内网带宽被占满、或者刚好遇到服务不稳定的时候真的会急到跺脚。这也是我最终决定把内网穿透方案彻底落地在群晖NAS上的直接原因。如果你也有一台跑着DSM 7.X的群晖NAS同时希望用固定二级子域名随时从外网访问它那这篇基于cpolar的完整配置记录应该能帮你少走不少弯路。1. 远程访问群晖NAS的三种思路与cpolar的定位先说清楚一个基本问题为什么明明有QuickConnect我还要搞内网穿透1.1 QuickConnect、端口转发和隧道方案的取舍QuickConnect是群晖官方提供的远程访问方案优点是不用配置路由器、开箱即用但短板也很明显连接速度取决于群晖的转发服务器视频监控回放、大文件传输这类高带宽场景体验很一般。端口转发则是把路由器上的公网端口直接映射到NAS速度快是快可前提是你得有公网IP移动宽带用户大概率拿不到就算拿到了把SSH、DSM管理端口裸奔到公网心里总不踏实。cpolar这类工具走的是第三条路在你的NAS上装一个客户端由它主动向外建立一条加密隧道外部流量经过cpolar的中转服务器到达NAS。整个过程不需要公网IP不需要改路由器也不需要在自己的服务器上部署任何服务端。相比手搓frpcpolar把“建隧道、分配域名、加HTTPS证书”这些步骤全部产品化了对群晖用户来说是最省事的方案之一。1.2 cpolar在群晖NAS场景下的适用边界需要诚实地说cpolar不是万能的。它适合个人和家庭场景下的管理面板访问、SSH操作、偶尔传文件、开个Web服务给朋友看但如果你要跑PT、要长期大流量传输、或者有严格的低延迟要求那它的中转带宽会变成瓶颈。明确这个边界之后再用期望值管理得好实际体验就不会翻车。我身边有朋友拿cpolar挂了几个月Web服务稳定性比我预想的好很多但我也见过有人拿免费版传大文件传一半断了破口大骂纯粹是选错工具。2. 安装cpolar之前的准备清单动手之前先把家底盘清楚。准备阶段花半小时后面能省几个晚上。2.1 确认NAS硬件与DSM版本兼容性cpolar官方提供了针对群晖的安装包支持DSM 6.X和7.X。我测试的设备是一台DS920系统版本是DSM 7.2.1-69057 Update 5。如果你用的是DSM 7.0以上的版本需要注意一个关键变化7.X对系统权限管理比6.X严格很多安装套件时需要用到管理员账号部分第三方套件还会因为签名问题装不上。cpolar在7.X上以“套件中心-手动安装”的方式部署整体是顺畅的不会遇到签名阻碍这点比某些小众穿透工具要省心。另外提醒一下ARM架构的群晖型号比如DS220j、DS418j这类和x86架构的安装包不通用。cpolar官网下载页会让你选择架构先查清楚自己的CPU再下载不然装到一半提示“架构不支持”非常崩溃。2.2 注册cpolar账号并理解免费版与付费版的差异安装之前先去cpolar官网注册一个账号。注册之后你会拿到一个authtoken这个token是客户端连接服务端的凭证后面要用到。关于套餐选择直接说结论免费版每次重启隧道后分配的随机域名地址会变适合测试但没法长期使用。要绑定固定二级子域名必须使用基础套餐或更高版本。价格不贵一年下来也就是几杯咖啡钱对比公网IP专线的成本解决的是刚需问题。我用的是基础套餐绑定一个固定二级子域名日常管理NAS、连SSH完全够用。如果你要绑定多个域名或者对带宽有更高要求再看进阶套餐普通家庭用户没必要一上来就上高配。3. cpolar部署到群晖NAS 7.X的完整过程这一步是全文的核心操作部分。我尽量把每一步写得细包括点击了哪里、看到了什么输出方便你对照操作。3.1 下载与手动安装套件登录cpolar官网进入下载中心选择Synology分类找到对应DSM 7.X的spk安装包。下载完成后打开群晖的“套件中心”点击右上角的“手动安装”按钮选择刚才下载的spk文件。安装过程会有一次信任确认弹窗因为cpolar的包不是从群晖官方源下载的系统会提示“此套件非群晖官方发布”直接勾选“我已了解”继续就行。安装耗时大概一两分钟安装完成后套件中心里会多出一个cpolar的图标。这时候先别着急打开我们还需要完成认证配置。3.2 配置authtoken并启动服务打开cpolar套件第一次运行时界面会要求输入authtoken。把注册时拿到的那串token粘贴进去点击保存。此时系统会在后台生成一份配置文件默认路径是/usr/local/etc/cpolar/cpolar.yml。如果你熟悉Linux命令行也可以SSH登录NAS直接修改这个文件效果是一样的。token配置好之后点击启动按钮。正常情况下套件状态会从“已停止”变成“运行中”。这里有个细节cpolar套件启动后默认会在NAS本地开放一个9200端口的Web管理面板地址是http://NAS的局域网IP:9200。这个面板超级好用后面创建隧道、绑定域名都在这里操作不用每次SSH进去敲命令。3.3 通过Docker方式安装的备选方案如果你的NAS装了Docker套件也可以用容器方式跑cpolar命令如下docker run -d \ --name cpolar \ --network host \ --restart always \ -v /volume1/docker/cpolar:/cpolar \ cpolar/cpolar \ cpolar authtoken 你的token# 启动容器 docker start cpolarDocker方案的好处是隔离性更好升级群晖系统时不会因为套件依赖问题失效。但坏处也明显容器配置需要一定的Docker基础日志查看不如套件版直观。我的建议是已经装了Docker且平时用得上的人可以选这个方案只想快点搞定远程访问的同学直接用官方spk套件两分钟就能跑起来。4. 固定二级子域名的申请与绑定实操隧道跑通只是第一步真正体现cpolar产品力的是固定二级子域名的配置。这一节我详细拆解整个过程。4.1 在cpolar控制台预置固定子域名登录cpolar官网控制台找到“预留二级子域名”功能入口。这一步本质上是把你想用的子域名和你的账号绑定。比如我预留的域名是sy-spark绑定后它会生成为一个完整的访问地址形如sy-spark.xxxxxxxxx.cpolar.cn。二级子域名的前缀你可以自定义建议用和NAS用途相关的英文单词或缩写方便记忆。项目说明一级域名由cpolar提供用户不可改二级前缀可自定义如sy-spark、nas-home绑定前提需升级基础套餐及以上生效时间控制台保存后立即生效预留完成后控制台会显示这个域名的状态为“已绑定”此时域名和你的账号已经建立了关联。4.2 在本地面板创建隧道并选择固定域名回到NAS的cpolar Web管理面板http://NAS局域网IP:9200进入“隧道管理”页面点击“创建隧道”。这里有几个关键参数需要填参数填写值说明隧道名称dsm自定义用于本地区分多个隧道协议http如果只管理DSM可填http后续可升级https本地地址5000DSLM的HTTP端口如果改过按实际填域名类型固定二级子域名关键一步选择该项二级子域名sy-spark填你在控制台预留的前缀填写完成后点击创建。如果一切顺利隧道状态会变成“运行中”面板上会显示一条完整的公网访问地址。到这里固定二级子域名的隧道已经建立成功了。注意这里最容易犯的错误是“域名类型”不小心选了“随机域名”。随机域名创建后也能访问但地址每次重启都会变和你买固定域名的初衷冲突。创建前多看一眼参数别填完就急着点。4.3 HTTP与HTTPS的进阶配置思路如果你对安全性要求高推荐在创建隧道时直接选择“https”协议cpolar会自动为你的固定域名申请和续期SSL证书。这样访问地址就是从https://sy-spark.xxxxxxxxx.cpolar.cn开头浏览器不会跳出证书警告。这一步骤不用你自己去配置证书文件完全是自动化的对于不熟悉证书体系的同学来说非常友好。我个人的配置是同时建了两个隧道一个是https类型用于Web管理面板的日常访问另一个是tcp类型用于SSH远程连接。tcp隧道的本地地址填22端口创建后cpolar会分配一个固定的公网端口用终端软件连接时填上这个端口即可。这样一来我人在外面也能直接SSH到NAS改配置、看日志体验接近坐在家里。5. 从外网实测访问验证链路是否真的通了配置完成后不要急着欢呼先做一轮完整的验证。我习惯用手机热点代替“外网”来测试因为手机热点走的是运营商网络能真实模拟你不在家时的网络环境。5.1 先测DSM管理面板用手机浏览器访问https://sy-spark.xxxxxxxxx.cpolar.cn正常情况下会弹出群晖的登录页面。输入账号密码登录能正常进入桌面就说明主链路已经通了。这里要特别留意登录页的加载速度。如果明显卡顿先排查是不是NAS本身上传到带宽不够再排查cpolar隧道配置是否有异常。5.2 再测SSH远程登录用你常用的SSH工具新建连接主机名填cpolar提供的tcp隧道公网地址端口填分配的公网端口。连接成功后你能看到NAS的Shell提示符。执行几条基础命令验证稳定性uname -a df -h正常输出对应信息就没有问题了。我在实际测试中连续保持SSH会话2小时没有断连稳定性比我预期中要扎实。5.3 监控带宽与延迟表现进入cpolar的Web管理面板有实时的流量统计和请求日志。我测得的结果是在移动网络下访问DSM面板的首次加载时间大约2-3秒后续页面操作响应很快基本感受不到是穿透访问。传输一个约500MB的文件平均速度能稳定在1-2MB/s取决于主网上传带宽。如果你的宽带上传只有几Mbps那速度被卡在上行是正常的穿透工具本身没有额外提速的能力。6. 使用过程中踩到的坑与排查链路配置过程整体顺利但有几个坑我在实际使用中踩到了写出来帮你避雷。6.1 9200面板无法访问安装cpolar后我一度在浏览器里打不开http://NAS局域网IP:9200。排查链路如下先确认套件是否已启动。在套件中心查看cpolar状态如果显示“已停止”需要先点击运行。在NAS本机上用curl http://localhost:9200测试如果能返回HTML内容说明服务本身正常问题出在浏览器与NAS之间的网络。检查防火墙规则。DSM的防火墙如果开了需要在“控制面板-安全性-防火墙”里放行9200端口。我当时的坑就是忘了开防火墙端口。6.2 隧道显示运行但外网访问超时这个问题出现的概率不高但一旦碰到很迷惑。当时我检查了隧道状态是“运行中”但手机访问超时。最终定位到原因是我在创建隧道时填写的本地地址端口写错了填成了HTTPS的5001端口而DSM的HTTP服务是5000端口。排查思路很简单先在局域网内用浏览器访问http://NAS局域网IP:5000确认本地服务正常再回到cpolar面板检查隧道的本地地址是否与之一致。90%的“隧道通了但访问不了”都是这类配置不匹配。6.3 重启NAS后隧道没有自动恢复群晖的定时重启或意外断电后cpolar套件的自动启动行为有时不稳定。解决方法是进入控制面板-任务计划新增一个触发任务在开机时运行以下命令sudo /var/packages/cpolar/target/bin/cpolar start具体路径以你套件安装目录为准。这个思路和Linux下的systemd开机自启一样只是群晖没有直接开放的systemd接口只能通过任务计划曲线救国。7. 安全加固与长期稳定运行建议穿透服务等于把你的NAS暴露在了公网这个事实必须正视。安全上多下点功夫才能睡得踏实。7.1 给DSM开启两步验证群晖的控制面板里开启两步验证绑定手机验证码App。这样就算固定域名被别人猜到没有第二层验证也进不来。这个步骤建议在穿透配置前就完成别等暴露了再补。7.2 修改默认端口与限制访问IP在群晖控制面板-登录门户中把HTTP和HTTPS的默认端口改掉比如改成5055和5056。虽然cpolar的域名带有随机前缀别人很难扫到但顺手改个端口可以挡住大量无差别扫描。有固定公网IP办公环境的还可以在cpolar的认证配置里设置IP白名单把访问来源限制在可信IP段。7.3 定期查看访问日志cpolar Web面板提供的访问日志是很好的安全探测器。我每周会扫一眼日志主要看有没有异常的来源IP、有没有高频的404请求。正常情况下你的日志应该很干净如果出现大量陌生IP的请求说明域名可能被扫描到了这时候要重点检查登录日志和启用fail2ban之类的防护策略。7.4 保持套件与DSM同步更新cpolar的群晖套件更新频率不算高但每次更新都会修复一些底层连接稳定性问题。建议开启套件更新提醒和DSM的系统更新一起定期在某个周末统一维护一次。长期跑下来这是最省心的运维节奏。8. 关于效率与替代方案的一点个人体会用了cpolar大半年我最大的感受是内网穿透这件事工具选型和预期管理比技术本身更重要。如果你偶尔才远程访问一次NASQuickConnect其实够用如果你像我一样每天都要从外面连回家里处理东西固定二级子域名加cpolar这套方案性价比和体验之间的平衡点找得很好。最后再分享一个小技巧把cpolar的Web面板地址和固定域名添加到手机浏览器的书签同时用浏览器自带的“添加到主屏幕”功能生成一个类似App的图标。我平时在外点开这个图标就能直接进NAS桌面和用自带App的体验差距已经很小了。
返回列表