1.现实及目的
1.1 网络现实
对于国内 NAS 用户而言,公网访问一直是个难题。
家庭宽带,或者公司宽带,除了那种巨贵的专线服务,都是没有公网IPv4地址,但是现在都有IPv6地址,这个IPv6是公网IP,每一台设备都有。
家庭宽带的标准服务端口,比如80,443,运营商都是不开放的,前几年仅限制80,近几年随着https普及,443也不能用了。
所以NAS内网穿透,如果是个人使用用IPv6+DDNS-go+aliyun/Cloudflare+非标端口,就够用了。
如果你想提供Web服务,那就必须使用CDN服务(腾讯Edge one/Cloudflare),用CDN的ipv4+ipv6+80,443,解决自己没有ipv4地址和标准端口的问题。
1.2 穿透方案
常见的解决方法是自建公网服务器,或者利用第三方服务,并配合 frp 等内网穿透工具。这种本文不考虑,因为不想花钱,本文尽量不花钱,或使用稳定安全的免费服务。
本文对象使用IPv6+ddns-go穿透,需要提供Web服务或者需要优化网速的再叠加腾讯Edge one/Cloudflare的CDN服务。
是不是要搭配软路由才能实现外网访问家里的nas?
随便一个路由都可以,不一定是软路由。只要支持IPv6就可以了,较新的路由都支持的。你的NAS得到了IPv6地址,主路由的IPv6防火墙关闭,或者打开要使用的端口就可以了。DDNS-go的作用是把每天变化的NAS的IPv6IP更新到DNS服务商比如aliyun,cloudflare,这样你使用域名就能访问家里的nas了。
如何实现https访问
腾讯Edge one/Cloudflare的CDN服务最简单,他们会替你申请配置好https证书。你的NAS上仅需要安装腾讯或者Cloudflare提供的10年证书。
自己申请证书,推荐用acme.sh
三行命令申请Let's encrypt泛域名证书,OpenWRT 24.10安装acme.sh并申请证书
为什么我的NAS ping不通
如果你ddns-go工作正常,1. 先在电脑上验证ping得到的IP是否正确。2. 如果正确,就是网络问题。先看内网是否能ping通,再用手机网络或者其他网络验证外网是否能通。3. 如果内网也ping不通,这可能是你的机器不响应icmp包,也可能路由/防火墙限制了,这个要一个一个确认。
如果机器上有服务,可以用域名访问试试。ping不通,未必网络就不通。如果内网通,外网不通,还有个可能就是机器上没有配置正确的默认网关,没有网关,回应的数据是无法正确返回到外网的。
1. 看下主路由的防火墙设置,有没有限制ipv6. 2. 确认你的这个设备自身是否能上网。如果不能上网就是自身默认路由配置有有问题。
1.3 关于家庭NAS带宽的说明
家庭NAS使用的是家庭宽带,带宽取决于你租用的带宽。
家庭宽带上下行是非对称的,比如500M电信宽带,是指下行500M,上行50M。
你在外部访问家庭NAS下载时,使用的是家里的上行带宽,所以你下载最多只有50M,但你上传时是有500M的,速度很快。
1.4 DDNS服务商,ddns-go,NAS的相互关系
NS解析ip给使用者,dns API是给DDNS-go这样的客户端调用来更新dns记录,DDNS-go运行在家庭路由器,NAS等设备上,在本机IPv4/IPv6地址变更时,通过dns api更新Aliyun DNS记录,这样aliyun解析给使用者的Ip才是最新的,才是对的。
2. DDNS-go的安装和配置
3. 服务搭建
NAS服务尽量使用https协议,这样使用CDN等很容易。
比如WebDAV协议的NAS服务
https web网页访问的NAS
3. 网速优化
3.1 Cloudflare
tbd
3.2 腾讯EdgeOne
然而,由于国内运营商线路质量和带宽的限制,访问体验往往不够理想。😫
尤其是在跨网跨省时,家庭宽带上行的限速和 QoS,更是让网络质量大打折扣,比如深圳联通 50Mbps 上行宽带在高峰期可能被限制到 3Mbps。📉
我之前也尝试过用阿里云和腾讯云的 200M 轻量服务器进行中转优化,但每月¥40+的费用也不便宜💰
这两天我尝试了 EdgeOne,通过备案域名(能使用内地节点)解析到我联通和电信两个家宽的 DDNS 域名,有效解决了家庭网络的公网访问问题。
总结一下这个方案的优点:
🛣️ 多线 BGP 接入,缓解运营商限速。 EdgeOne 国内机房采用多线 BGP 接入,有助于缓解家庭宽带跨运营商互通时的限速问题。
⚡ 实测速度表现良好。 EdgeOne 国内节点实测速度可超过 200Mbps,对于大多数家庭宽带 50-100Mbps 的上行来说,通常是足够的。
🌐 IPv4/IPv6 双栈访问。 对于只有 IPv6 公网的家庭宽带(比如深圳联通),套上 EdgeOne 后,就能同时实现 IPv4/IPv6 双栈访问。
🆓 免费。这个就没什么好说了。