一、前言
年关将至,趁着放假前的一段平静,折腾了一下群晖和路由器的外网访问。过程中对网络多了一些理解,又幸得一两日空闲,遂作文以总结与指路。
要实现家庭设备外网访问有两种方式: 公网DDNS
和 内网穿透
。本文只讨论相对体验更好的公网DDNS方案。
二、准备
使用公网DDNS直连方式需要满足 公网IP
、 桥接模式
、 端口映射
三个前提,缺一不可,然后利用DDNS动态域名解析技术使用域名来访问。
我的路由器是刷了梅林固件的华硕AC-86U,nas设备是群晖DS716+。
1. 申请公网IP
电信宽带的同学可以向客服申请公网IP,要问理由的话可以是安装家庭监控;移动宽带可以考虑换成电信宽带🐶(移动没有公网IP)。
公网IP:全球唯一,互联网上的所有人都可以通过你的IP访问到你,像是你的门牌地址
2. 桥接模式
通常情况下,我们家庭设备是这么连接的:光纤-光猫-路由器-其他设备。光猫默认是路由模式,它会从运营商处分配到一个IP(公网IP)。光猫再承担一个路由的功能,给连接他的路由器分配一个内网IP(这个过程叫NAT,网络地址转换)。
可打10000,说需要路由器拨号,电信客服可远程下发配置。动手能力强的也可搜索光猫的型号+破解,自行破解光猫管理员账号改为桥接模式。将光猫改为桥接模式后,它就承担一个中转的作用,由连接光猫的路由器去拨号上网拿到公网IP。有了这个一手的公网IP,我们就可以实现一些个性化的功能。
路由器拨号成功后,可以访问一些显示IP地址的网站(如:https://www.ip138.com/ ),并将获取到的IP和路由器管理页面的WAN IP做比对,如果全部一致,则基本确定拿到了公网IP。
内网IP:就像你住在一个私人庄园,公网IP就是门牌号,但具体庄园内路线怎么走的,外人是不知道的。内网IP像是公网IP的下级,别人只能找到你的上级,无法找到内网的你(除非设置端口转发,这个在后面说)
3. 获取宽带账号密码
光猫桥接,路由器拨号上网,所以需要的账号和密码,可以在电信APP内获取/修改,或拨打10000来询问客服获取。
4. 购买域名
本来,此步骤非必须,因为华硕和群晖本身都提供了DDNS服务。但是,因为家庭宽带通常被屏蔽了80和443端口,所以 此类免费DDNS的常用默认SSL证书Let’s Encrypt会无法验证,导致无法在外网通过https访问, 而http是明文传输的,域名、账户、密码都会暴露在传输链路中,因此并不安全。所以个人建议像我一样自己注册域名,手动做SSL证书的验证,就可以解决这个问题。
我的域名是在阿里云注册的,最便宜的域名几块钱可以买一年。购买域名之后,你就可以用自己喜欢的域名来访问路由器和群晖啦,而不需要服务商的冗长的后缀,像asuscomm.com、synology.me等。
下文会用 qaq.com 来代表我们购买的域名
5. 申请SSL证书
前文有说,走https协议需要ssl证书,而证书是和域名关联的。我使用的是zerossl证书(https://zerossl.com/ ),它是免费的,具有90天的时效,个人网站使用足够了。
按照网站的验证指引,配合阿里云的域名控制台操作,就可以获取域名的SSL证书了~
验证主要是为了保证你是域名的控制人,所以步骤也很简单,填写域名后,按照zerossl分配给你的验证方式,配置在域名控制台就行了。
证书验证完成之后,可以把认证下载下来,解压之后可以获取三个文件,分别是certificate.crt、.private.key、ca_bundle.crt,后面会用到。
这一步,我们将SSL证书和域名关联了起来。
三、外网访问路由器管理页
1. 配置SSL证书
原本,如果用华硕路由器自带的DDNS客户端、并配合第三方DDNS,是可以省去很多麻烦事的,比如买域名、配置证书,但由于家庭宽带80端口被封导致Let’s Encrypt证书无法验证,而华硕路由器为了安全考虑,外网访问时仅支持HTTPS协议。所以我们需要自己申请、验证、配置证书。
在华硕路由器管理页面:
- 点击高级设置-系统管理 -> 系统设置 -> “远程访问设置”的“从互联网设置RT-AC86U”选择“是”;
- 点击高级设置-外部网络 -> DDNS;
- 启用DDNS客户端出选“否”;
- HTTPS/SSL 证书处选择“导入您自己的证书”;
- 点击“上传”;
- “私人密钥”选择前文下载
.private.key
文件,“SSL证书”选择certificate.crt
文件,点击确认。 - 点击“应用本页面设置”
再在页面查看证书的状态,等到状态变为启用,而且证书核发对象正是我们之前购买的域名qaq.com,到此,SSL证书的配置就完成了。
这一步,我们将SSL证书配置到了服务器(路由器)内。当浏览器访问宽带的IP时时,路由器会返回给客户端SSL证书信息,只要证书有效,浏览器就认可这个连接,加密通信得以被浏览器允许。
2. 配置阿里DDNS
这一步的目的是让固定的域名qaq.com和动态的家庭宽带IP及时关联并更新,让我们在访问域名时可以连接到路由器。
2.1 获取域名控制的AccessKey
2.1.1 创建用户
登录阿里云域名控制台,点击右上角头像-AccessKey管理,开始使用子账户AccessKey。创建用户 -> 填写用户名称,如登录名为router,显示名称为路由器,勾选编程访问(因为后面需要通过自动化的脚本来更新DDNS来匹配家庭宽带的公网IP),确定,验证手机号,用户创建完成。
2.1.2 添加权限
勾选用户,点击“添加权限”,只是自己用的话图省事可以选系统策略的AdministratorAccess,即管理所有阿里云资源的权限。
2.1.3 创建AccessKey
点击刚刚创建的用户-点击创建AccessKey,记下生成的AccessKey ID和AccessKey Secret。
2.2 配置阿里DDNS
路由器管理页面,软件中心-安装阿里DDNS插件,进入插件,选择开启Aliddns。服务配置栏,填入2.1步骤获取的id和secret,域名处注意,如果我们希望配置的是2级域名,如qaq.com,那域名处的两个输入框,第一个填@,第二个填qaq.com,其他的都按默认的就好了,点击“提交”。
提交之后,如果更新日志内显示IP更新成功,就可以访问qaq.com:8443来在外网登录路由器的管理页面了~
但还有个小问题,因为前面用的SSL证书是免费的,它的时效性是90天,90天后过期后如果还要我们再手动去验证证书势必非常麻烦,而梅林固件的软件中心有款插件Let’s Encrypt也是为了解决这个问题而存在的。
这一步,我们将域名和宽度的IP地址关联了起来,并保持自动更新。
3. 配置Let’s Encrypt插件自动续期SSL证书
梅林固件的路由器软件中心安装Let’s Encrypt,进入插件:
打开开关,输入域名qaq.com,选择阿里DNS(万网),填入2.1.3步骤获取的id和secret,提交。
这一步,保持SSL证书的更新,防止浏览器不认可SSL证书的合法性而无法访问HTTPS连接的页面。
四、外网访问群晖管理页
1. 配置端口转发
路由器管理页,外部网络-端口转发-开启端口转发-添加配置文件。
服务名称:dsm admin
通信协议TCP
外部端口5001
本地IP地址选择你的nas在路由器里显示的名称
确定。
同样的,可以在这里把一些群晖常用的服务端口转发到公网,如afp的548、smb的137:139,445,webdav的5005,5006等,尽量不要把ssh的22端口转发到外网,即使要转发也要替换成大数字的端口如58822,防止被他人扫描端口攻击(会收到群晖的邮件提醒)。
2. 配置群晖服务的ssl证书
登录群晖的管理页-控制面板-安全性-证书-设置,将各种服务的证书配置都为固定域名qaq.com的证书。
至此,如果一切顺利,你已可以访问qaq.com:5001来登录群晖的dsm页了,并可以使用ds video、ds audio等一系列服务。
后记
有任何问题欢迎留言交流,有问必回。
因为对新手来说全过程比较冗长,当初为了搞定整个流程查了很多资料。记录难免疏漏,有变动会更新在博客里,理解万岁~!
发布者:星期八,转转请注明出处:外网访问华硕路由器和群晖NAShttps://11414.net/uncategorized/asus-nas-http.html