给局域网设备加把锁:用二级域名安全访问家里的各种设备

2020-03-01 23:18:56 125点赞 1747收藏 97评论

大家好呀。趁着周末,今天想跟大家分享如何实现使用二级域名加端口号,访问局域网内的不同设备,并实现全站「HTTPS」安全访问。

最早的时候 Let's Encrypt 的免费证书是只对单域名有效的,而群晖内置的 Let's Encrypt 证书服务目前也依然只对单域名生效。

而从 2019年3月 开始,Let's Encrypt 已经提供了泛域名证书,这就为二级域名的加密提供了可能。

在开始之前,首先前提条件如下:

1、需要有公网 IP;

2、已经提前申请、准备好了自有的「*级域名」,可以自行在腾讯或者阿里云购买,首年一般3元就够了,不贵;

3、已经提前准备,安装好了*级域名的「DDNS」解析服务,并且在按照下文开始操作之前,确保解析已经生效。

建议按照流程操作之前先通读整个教程,然后再动手操作,防止出错。

好了,确认了上述都已经完成了以后,我们开始下一步。

给局域网设备加把锁:用二级域名安全访问家里的各种设备

我们这里用到的是「GitHub」大神 @andyzhshg 的脚本,这个脚本是通过 ACME 协议来实现的。

项目地址在这里;原始的下载地址在这里

如果你访问 GitHub 有困难,那么百度云的下载地址在这里,密码是:92be。

至于 ACME 到底是什么,我们倒没有必要去深究。只需要知道,它是一种能够实现完全自动化的申请并定期更新证书的协议即可。

1、为了保证不出错

给局域网设备加把锁:用二级域名安全访问家里的各种设备

▲ 请首先检查群晖控制面板中「安全性」-「证书」一栏,如我截图所示,应该仅有一条证书内容,且已经设置为「默认证书」,如果有其他证书,请做好备份以后主动删除;

给局域网设备加把锁:用二级域名安全访问家里的各种设备

2、下载已经打包了的脚本内容(来源于 Github 项目);

3、解压文件,并且将整个「syno-acme-0.2.0」文件夹上传到群晖中。由于群晖对于非用户区域有严格管控,所有非用户区域的文件变更,在重启之后都会被还原。

给局域网设备加把锁:用二级域名安全访问家里的各种设备

所以请务必把这个文件夹放在你的「共享文件夹」中,比如我就把它放在了我的「Public」文件夹当中;我的脚本版本比较老了,所以文件夹名字不一样,请忽视。

4、接下来:我们需要对其中的文件进行一点简单的修改,以便使它符合你自己的运行条件。

给局域网设备加把锁:用二级域名安全访问家里的各种设备

打开文件夹中的「config」文件,并进行修改。请注意:如果是使用 Winscp 上传的文件,可以直接在 Winscp 中双击打开文件修改,或者也可以使用群晖自带的「文本编辑器」套件来进行修改,但是强烈建议使用 WinScp 来进行修改。

给局域网设备加把锁:用二级域名安全访问家里的各种设备

▲ 文件中需要修改的部分只有红框中的三处。

1、修改成你的*级域名:举例,如果你的域名是 abc.xyz 就像中文说明的那样,直接填写 abc.xyz 不要多此一举改成 www.abc.xyz

2、按照红色箭头处选择填写,如果你的域名解析服务在阿里云,那么就填写「dns_ali」;如果在腾讯(dns pod)则填写「dns_dp」,注意下划线。

3、以阿里云为例:

给局域网设备加把锁:用二级域名安全访问家里的各种设备

▲ 登录阿里云以后,打开「控制台」,将鼠标移动到右上角的头像上,就能看到「AccessKey 管理」点击后打开。如果是第一次使用这个功能的话,点击右上角的「创建 AccessKey」就可以创建一组新的秘钥,记录下其中的「AccessKey ID」以及 「Access Key Secret 」。如官方提示的,这个秘钥有完全的账户访问权限,所以请务必保管好,不要泄露。其他服务商的操作方法类似,请自行研究。

「AccessKey ID」以及 「Access Key Secret 」填写在第三处红框的两组引号之间,注意不要删除引号。

给局域网设备加把锁:用二级域名安全访问家里的各种设备

▲ 全部修改完成以后应该如上图所示,请仔细核对。图中的乱码是文字编码格式的问题,不必理会。

5、好了,配置文件的修改就完成了,由于 Let's Encrypt 提供的证书最长只有三个月,所以我们需要在群晖中设置定时任务,让它能够在证书到期之前自动延期。

给局域网设备加把锁:用二级域名安全访问家里的各种设备

▲ 打开「控制面板」-「任务计划」,点击左上角「新增」增加一条「用户定义的脚本」;

给局域网设备加把锁:用二级域名安全访问家里的各种设备

▲ 「常规」中的名称可以任意输入,用户账号选择「root」;

「计划」部分,由于群晖如果选择「每三个月重复」的话,下一次执行时实际上已经到期了,所以我们选择「每月重复」;

「任务设置」部分,我们勾选「通过电子邮件发送运行详情」,这样任务执行时我们可以得到通知。

下面的「用户定义的脚本」部分中的脚本内容如下:

/volume1/Public/script/syno-acme-master/cert-up.sh update >> /volume1/Public/script/syno-acme-master/log.txt 2>&1

请注意这是完整的一行,不是两行。其中的脚本路径请按照自己的实际情况填写,不要照抄。

给局域网设备加把锁:用二级域名安全访问家里的各种设备

▲ 具体的完整文件路径可以在 WinScp 中看到。

6、好了,到这里已经证书更新脚本已经配置完成了,我们可以运行一下看一下配置是否正确。

给局域网设备加把锁:用二级域名安全访问家里的各种设备

▲ 在刚才我们新增的脚本上点击右键选择「运行」,然后稍等不超过五分钟。在「控制面板」中「安全性」-「证书」中查看一下证书的域名是否正确,到期日是否是在三个月以后,如果没有问题,那么恭喜你,一切顺利。

7、最后:我们需要配置反向代理服务器,以便让这个泛域名证书对局域网内的其他设备生效。

来到「控制面板」-「应用程序」-「反向代理服务器」中新增反向代理:

给局域网设备加把锁:用二级域名安全访问家里的各种设备

▲ 举个栗子,我的局域网中有一台 OpenWRT 的软路由,我希望在外网我能以 router.abc.xyz 的域名来访问它。

那么新增的规则应当如上图,「描述」部分可以按照喜好随意填写;「来源」部分的协议,由于我们已经设置了全站的证书,所以我们选择「HTTPS」;

主机名填写二级域名,可以按照自己的设备名称来任意设置,随意发挥想象力:我把软路由设置为「router.abc.xyz」;

端口部分,由于我这里「80」和「443」端口都已经被 ISP 封禁,所以我选择了非标准端口,这里以「9001」为例,为了方便管理,建议将所有的来源端口都设置成统一的;

目的地部分,由于我的软路由未部署证书,所以目的地协议为「HTTP」,主机名填写路由器的内网 IP 地址,「192.168.1.1」,端口则是标准的 HTTP 网页端口 「80」。

8、好了,按照第 7 部分的方法你可以为你的其他设备逐个配置服务,不要忘记了群晖自己的 DSM 网页,单独设置一个二级域名比如「dsm.abc.xyz」指向群晖 IP 的「5001」端口。

给局域网设备加把锁:用二级域名安全访问家里的各种设备

9、最后,你需要到路由器中去做好端口转发,上文中各个服务设置的「来源端口」也就是上文中举例的「9001」端口转发到群晖去,这样「反向代理服务器」才能正式生效。

给局域网设备加把锁:用二级域名安全访问家里的各种设备

▲ 另外,需要注意的是,如果你像我这样,在 DNS 解析中设置了泛解析,将所有二级域名都指向了同一个 IP 地址,那么,无论你访问任何二级域名都会指向家里的 IP 地址;但是如果没有的话,你则需要逐个的为二级域名设置域名解析。所以建议设置泛域名解析。

最后的最后,遇到的坑:

  • 如果你在使用这个脚本之前,提前安装了「Web DAV Server」「 Card DAV Server」这些需要用到 HTTPS 服务的套件,那么在运行脚本以后,你可能需要删除他们并且重新安装,新的证书才能对他们生效。

给局域网设备加把锁:用二级域名安全访问家里的各种设备

  • 如果某一天你忽然发现二级域名无法访问了,首先请在内网查询自己的 IP 地址,然后去你的 DNS 服务商那里查看一下「解析日志」核对解析是否正确。大部分情况下都是「DDNS」出了问题,你可能需要更新 IP地址了。

感谢看这个啰嗦的教程,有问题欢迎在评论区提问,有帮助的话请点赞哦。

给局域网设备加把锁:用二级域名安全访问家里的各种设备

欢迎关注,我会不定期分享关于群晖的教程,让你用尽群晖的所有「剩余价值」。

家庭影音必备系统Kodi虽然好用但总少了些什么?或许你需要一台群晖为 Kodi 注入多设备同步能力值友们大家好!最近有些忙,好久没写原创了。今天带来的应该算是我群晖系列的第三篇了,前两篇链接在这里了。大家如果喜欢,或者觉得有帮助,还请多多点赞,你们支持是我进步的动力,谢谢大家!群晖与我的网络生活群晖与我的网络生活其实张大妈上关于群晖以及各...溟天| 177 评论144 收藏2k查看详情群晖中的小小饥荒世界—利用群晖Docker搭建 Don't Starve Together 服务器小编注:此篇文章来自#原创新人#活动,成功参与活动将获得额外100金币奖励。2020年新人计划正在进行,点击查看活动详情Save38%onDon'tStarveTogetheronSteamSave38%onDon'tStarveTogetheronSteam...溟天| 106 评论66 收藏532查看详情群晖与我的网络生活小编注:此篇文章来自#原创新人#活动,成功参与活动将获得额外100金币奖励。2020年新人计划正在进行,点击查看活动详情其实张大妈上关于群晖以及各种NAS的晒单已经很多了。而我在接触张大妈之前甚至根本不知道NAS这个神奇的事物,开始使用群晖前磕磕绊绊的尝试过各种硬盘底座以及WD的入门级NAS产品My溟天| 120 评论119 收藏989查看详情
展开 收起

群晖 ESXi PVE 40 10G 544+ 网卡 固态 NVME 拆分卡 组合 适配卡

群晖 ESXi PVE 40 10G 544+ 网卡 固态 NVME 拆分卡 组合 适配卡

10元起

Synology群晖内存 群晖原装内存 4g 8g 16g DS918+ ds718+ ds218+ ds1019+ ds1618+ ds1819+(D4ECSO-2666-16G (内存))

Synology群晖内存 群晖原装内存 4g 8g 16g DS918+ ds718+ ds218+ ds1019+ ds1618+ ds1819+(D4ECSO-2666-16G (内存))

2620元起

Synology群晖 万兆网卡 RJ45万兆电口网卡 E10G18-T1 E10G18-T1

Synology群晖 万兆网卡 RJ45万兆电口网卡 E10G18-T1 E10G18-T1

1080元起

Synology 群晖 RT1900ac 智能无线路由器

Synology 群晖 RT1900ac 智能无线路由器

暂无报价

Synology 群晖 网卡扩展卡适配器 E10G18-2 E10G18-T1 E10G17-F2 DS1618+ DS1819+ 万兆网卡

Synology 群晖 网卡扩展卡适配器 E10G18-2 E10G18-T1 E10G17-F2 DS1618+ DS1819+ 万兆网卡

890元起

Synology 群晖 E25G21-F2 万兆PCI-E网卡

Synology 群晖 E25G21-F2 万兆PCI-E网卡

2820元起

上赞随身wifi移动无线网络随行mifi上网卡便携式笔记本免插卡智网车载路由器4g上网宝手机热点 mini-钢琴黑 10G/月*1个月

上赞随身wifi移动无线网络随行mifi上网卡便携式笔记本免插卡智网车载路由器4g上网宝手机热点 mini-钢琴黑 10G/月*1个月

暂无报价

Synology 群晖 官方原装万兆网卡双网口Synology扩展卡SFP+光纤接口光卡RJ45单电口网卡E10G21-F2/E10G18-T2/E10G18-T1

Synology 群晖 官方原装万兆网卡双网口Synology扩展卡SFP+光纤接口光卡RJ45单电口网卡E10G21-F2/E10G18-T2/E10G18-T1

暂无报价

Synology 群晖 E10M20-T1 万兆PCI-E无线网卡

Synology 群晖 E10M20-T1 万兆PCI-E无线网卡

暂无报价

群晖(Synology) NAS电源适配器Adapter 网络存储服务器配件 100W(EA11011D-120)

群晖(Synology) NAS电源适配器Adapter 网络存储服务器配件 100W(EA11011D-120)

580元起

Synology群晖内存 群晖原装内存 4g 8g 16g DS918+ ds718+ ds218+ ds1019+ ds1618+ ds1819+(D4NESO-2666-4G(内存))

Synology群晖内存 群晖原装内存 4g 8g 16g DS918+ ds718+ ds218+ ds1019+ ds1618+ ds1819+(D4NESO-2666-4G(内存))

715元起

Synology群晖 扩展卡 M2D18 M.2 SSD适配器卡 SSD加速度卡 1618+ 1819+ 固态缓存

Synology群晖 扩展卡 M2D18 M.2 SSD适配器卡 SSD加速度卡 1618+ 1819+ 固态缓存

810元起

Synology群晖 扩展卡 M2D18 M.2 SSD适配器卡 SSD加速度卡 1618+ 1819+ 固态缓存(M2D18)

Synology群晖 扩展卡 M2D18 M.2 SSD适配器卡 SSD加速度卡 1618+ 1819+ 固态缓存(M2D18)

810元起

Synology群晖 扩展卡 M2D18 M.2 SSD适配器卡 SSD加速度卡 1618+ 1819+ 固态缓存(M2D20)

Synology群晖 扩展卡 M2D18 M.2 SSD适配器卡 SSD加速度卡 1618+ 1819+ 固态缓存(M2D20)

1410元起

Synology 群晖 DS1522+ RS422+专用 RJ45万兆电口网卡

Synology 群晖 DS1522+ RS422+专用 RJ45万兆电口网卡

暂无报价

Synology群晖内存 群晖原装内存 4g 8g 16g DS918+ ds718+ ds218+ ds1019+ ds1618+ ds1819+(D4ES01-8G(内存))

Synology群晖内存 群晖原装内存 4g 8g 16g DS918+ ds718+ ds218+ ds1019+ ds1618+ ds1819+(D4ES01-8G(内存))

1330元起
97评论

  • 精彩
  • 最新
  • 极其不推荐 Let's encrypt 的证书,兼容性差
    域名提供商DNSPOD,阿里云本身就免费证书,一签就是一年,更好

    校验提示文案

    提交
    ISP提供的是野卡域名吗

    校验提示文案

    提交
    阿里一年的免费ssl无法支持泛域名吧

    校验提示文案

    提交
    还有12条回复
    收起所有回复
  • 部分地方家里开web都被停宽带了
    比如上海 [邪恶]

    校验提示文案

    提交
    这可太狠了

    校验提示文案

    提交
    这两年相关部门在网上扫描web服务,发现就得备案,不备案就会停。

    校验提示文案

    提交
    还有2条回复
    收起所有回复
  • 昨天刚研读git大神的文章,还没实施,今天就看到你发了,描述更细更好。有个疑问想沟通下,我用的华硕ac86u路由器做ali的ddns,路由器二级域名填米字,ali云的记录值为A,我看你的记录值是canme,这个设置是否影响泛域名解析?

    校验提示文案

    提交
    A记录是必须的,不然没法弄ddns。然后cname的数值栏直接填写“去看看”,也就是A记录这样就可以把所有二级域名都指向家里的 ip 了。如果对某个二级域名需要单独指向,单独设置就好。试一下就明白了。

    校验提示文案

    提交
    * 是通配符,指代所有的二级域名

    校验提示文案

    提交
    收起所有回复
  • 大佬 cloudflare的怎么弄

    校验提示文案

    提交
    个人为什么要用cloud flare

    校验提示文案

    提交
    域名太多了 都放在cf [邪恶]

    校验提示文案

    提交
    还有7条回复
    收起所有回复
  • 楼主,你这样设置是不是外网访问任何设备都不需要在域名后面加端口号了?

    校验提示文案

    提交
    并不是,不需要端口号的只有HTTP/HTTPS,这两个也是有默认端口的,分别是80/443,所以不需要写端口号,默认去往这两个端口。但是国内的ISP不对个人开放这两个端口。端口号是绕不开的。

    校验提示文案

    提交
    不行的,因为80和443端口早就被运营商封了,你外网访问的时候不加端口号,你怎么都没办法访问。

    校验提示文案

    提交
    收起所有回复
  • 其实就是acme.sh+nginx反向代理啊,另外说一句,作者没有在阿里云设置泛域名解析吗?

    校验提示文案

    提交
    重点是免费泛域名证书的部署和自动更新,而不是反向代理

    校验提示文案

    提交
    收起所有回复
  • 大家都搞得到公网ip吗?都什么路数赐教下,移动宽带,是不是没戏 [哭泣]

    校验提示文案

    提交
    电信基本上都有的,移动不好说

    校验提示文案

    提交
    移动够呛,电信客服直接搞定

    校验提示文案

    提交
    还有9条回复
    收起所有回复
  • 家里用不着,大公司看不上,小公司没人搞,很偏门吧

    校验提示文案

    提交
    是有点偏门,不过“不折腾不舒服”

    校验提示文案

    提交
    家里用得着啊,外网访问你怎么解决?

    校验提示文案

    提交
    收起所有回复
  • 我想知道的是在阿里云买域名和在国外网站买有啥不一样?国内只能买阿里云之类的么?

    校验提示文案

    提交
    没啥不一样,阿里云有一部分域名需要备案。国外基本不需要备案。

    校验提示文案

    提交
    收起所有回复
  • 小白弱弱地问一句,直接动态域名加端口比起楼主这个,除了方便性容易记之外,是不是楼主的更安全?

    校验提示文案

    提交
    我这个的核心在于用泛域名证书对全站内容进行加密,提高安全性。
    不使用证书,直接用反向代理来代理未加密的 http 服务也完全没有任何问题的。

    校验提示文案

    提交
    大致明白了,谢谢技术大牛解惑

    校验提示文案

    提交
    收起所有回复
  • 你们在说啥?? [皱眉]

    校验提示文案

    提交
    哈哈哈,说的啥不重要,点赞收藏就行

    校验提示文案

    提交
    收起所有回复
  • 电信还敢放网页?发现直接封你宽带

    校验提示文案

    提交
    我这边还不至于,暂时没什么问题

    校验提示文案

    提交
    涨点心吧,现在没查到不代表不会被查到

    校验提示文案

    提交
    还有3条回复
    收起所有回复
  • 来支持大佬热文啦

    校验提示文案

    提交
    [邪恶] 感谢!字数补丁

    校验提示文案

    提交
    收起所有回复
  • 一句有固定ip然后90%的家用nas都gg了

    校验提示文案

    提交
    家用哪有固定ip的…说的是公网ip

    校验提示文案

    提交
    断线重播拨就换ip了,还不如花生壳

    校验提示文案

    提交
    还有1条回复
    收起所有回复
  • 上海电信用户请不要尝试这种违法行为 [倒地] [倒地] [倒地]

    校验提示文案

    提交
  • 字都认识,连起来就看不懂了 [喜极而泣]

    校验提示文案

    提交
  • 我居然被禁言了。“安”了个“全” 这两个字都不能发吗?

    校验提示文案

    提交
  • 你这个泛域名的应用基本没啥意义啊,还是要添加不同的端口号,还不如直接统一主域名+端口号,依然可以设置反代。反代还是有点用的,可以用https代理访问http的资源。

    校验提示文案

    提交
    [赞一个] [赞一个] [赞一个] 同感,端口号是最麻烦的,整那么多二级域名又不上web

    校验提示文案

    提交
    收起所有回复
  • https主要是防电信劫持,自己的应用意义不大,又没人冒充你网址,不过现在很多应用默认https用上证书好看点

    校验提示文案

    提交
  • 设备固定的话用自签证书就行了,签个100年
    话说ssl证书基本没成本,为什么买几千几万

    校验提示文案

    提交
提示信息

取消
确认
评论举报

相关好价推荐
查看更多好价

相关文章推荐

更多精彩文章
更多精彩文章
最新文章 热门文章
1.7K
扫一下,分享更方便,购买更轻松