群晖 DSM 实现 IPv4 与 IPv6 双协议访问 & DSM去端口访问
本文主要针对群晖只有公网ipv6,但是需要使用ipv4网络进行访问的解决办法,如果您有公网ipv4可以忽略此文章。
如果您需要去掉群晖端口访问,也可以参考本文章相关配置。
引言
在家庭数据存储与管理领域,群晖 DSM 系统以强大的功能和出色的易用性,成为众多用户的首选。然而,在使用过程中,用户面临着两大棘手问题。
其一,网络协议适配难题。随着互联网发展,公网 IPv4 地址资源愈发紧张,许多地区申请公网 IPv4 困难重重,不少用户转而采用公网 IPv6 实现群晖 DSM 远程访问。但当下大量网络环境仍仅支持 IPv4,这导致部分用户无法顺利访问 DSM 系统,如何让 IPv4 和 IPv6 用户都能顺畅访问,成为亟待解决的问题。
其二,端口使用不便问题。家庭宽带的 80 和 443 端口通常处于封禁状态,使得用户在访问 DSM 系统时,不得不添加端口号,如https://xxx.com:5001 ,这种访问形式不仅繁琐,也影响使用体验。
针对上述问题,本文将介绍通过云服务器nginx
转发方式,不仅能实现去端口访问,还能同时满足 IPv4 和 IPv6 网络对 DSM 的访问,助力用户突破网络限制,享受更便捷的家庭数据管理体验。
本教程使用资源和前提
阿里云服务器,拥有公网ipv4和ipv6,最低配置的大概99一年
nginx-1.27.1
域名,最好申请好ssl证书
群晖DSM已完成DDNS+端口访问,比如:
https://ddns.vvhz.com:10001
nginx转发方式
proxy_pass
优点:可以去端口,配置简单,只拥有ipv4网络的用户也可以访问ipv6的DMS系统
缺点:会占用nginx
所在的云服务器的带宽。我们个人购买的云服务器带宽一般比较低,只有几M,但是群晖公网的上行带宽起码30M或者50M,还有一些用户的可以达到千兆上行,那么这种转发方式就无法发挥群晖公网上行的优势。
frame嵌套
优点:可以去端口,可以让用户直接访问嵌套页面的地址,不占用云服务器带宽
缺点:地址栏固定,如果DSM是ipv6网络,那么只有ipv4网络的用户无法访问。
实现目标
proxy_pass
和frame嵌套
两种方式各有优缺点,我们结合两种方式,实现以下功能:
当用户网络支持ipv6时,使用frame嵌套
的方式,最大化利用群晖上行带宽。当用户网络仅支持ipv4时,使用proxy_pass
方式,虽然访问速度受限,但是仍能保证DSM系统的正常访问。
DNS配置
在 DNS 解析中,将域名nas.vvhz.com
同时解析到云服务器的 IPv4 和 IPv6 地址。
nginx详细配置
nginx安装好后,增加如下配置:
proxy_pass配置
当用户只有ipv4网络环境时,我们使用proxy_pass
进行反向代理。其核心配置如下:
在上述配置中,第一个server
块用于监听 80 端口,将所有的 HTTP 请求通过return 301
重定向到对应的 HTTPS 地址,保障数据传输的安全性。第二个server
块监听 443 端口(HTTPS 协议端口),配置了 SSL 证书路径,确保网站的 HTTPS 访问正常。location /
块则指定了反向代理规则,将所有请求转发到群晖 DSM 系统的地址https://ddns.vvhz.com:10001/
,从而实现了 IPv4 网络用户对群晖 DSM 系统的访问。
frame嵌套配置
当用户拥有 IPv6 网络时,我们使用frame
嵌套的方式,优先使用 IPv6 网络直连群晖系统,增加针对 IPv6 的监听与处理规则:
在新增的配置中,listen [::]:80
和listen [::]:443 ssl
分别用于监听 IPv6 的 80 端口和 443 端口,同样实现了 HTTP 到 HTTPS 的重定向以及 HTTPS 访问的 SSL 证书配置。location /
将所有请求返回/home/soft/nginx/nginx-1.27.1/web/nas/index.html
这个文件。
我们的frame嵌套
代码就写在这个index.html
中。
index.html中的代码很简单,直接使用frame嵌套我们DSM的原始地址https://ddns.vvhz.com:10001
。
DSM配置
打开允许iFrame嵌套
总结
通过上述方案,我们成功解决了家庭群晖 DSM 系统在 IPv4 和 IPv6 混合网络环境下的访问难题,同时也解决了群晖的端口问题。无论是网络小白还是技术爱好者,都可以按照本文的步骤进行操作,享受更加便捷、高效的远程访问体验。若你在实践中有任何问题,或想了解其他相关优化技巧,欢迎随时和我交流。