对NAS用户而言,内网访问只是基础,唯有实现稳定、安全的公网访问,才能让NAS真正升级为个人专属家庭服务器。今天我们就聚焦这一核心需求,分享一套安全、高效且便捷的NAS公网访问实现方案。不过要先避开一个新手高频误区:很多人拿到公网IP后,会直接通过端口转发,用“域名+端口”或“IP+端口”的正向HTTP方式直连访问。这种方式不仅未建立加密连接,数据传输存在安全隐患,还会因多服务需记忆多个端口号,导致使用便捷性大打折扣。

相比之下,反向代理+HTTPS的安全方案能完美解决这些问题:通过HTTPS建立加密通信通道,从根源保障数据安全;同时无需记忆繁多端口,仅需通过“不同二级域名+固定端口”即可访问所有NAS服务,大幅提升使用便捷性。本文将采用Lucky实现反向代理部署,这款软件不仅兼容性极强(支持Windows、Linux、OpenWrt系统及小米路由器),且操作门槛低、极易上手,非常适合新手使用。

温馨提示:第一次配置不了解的建议不要同时解析和配置IPV4和IPV6,单独选其中一个解析就行,配置完弄懂了能访问了再配置双线解析(同时解析IPV4和IPV6)

一、安装Lucky

1.iStoreOS插件安装

iStoreOS直接在应用商店搜索Lucky进行安装

2.Docker Compose安装

网页默认端口16601

    services:
      Lucky:
        image: gdy666/lucky:2.15.8
        container_name: Lucky
        volumes:
          - ./:/app/conf
          - /var/run/docker.sock:/var/run/docker.sock
        network_mode: host
        restart: always

本次使用Lucky版本:2.15.8,为便于理解,建议选择和我相同的版本号,后期可自行更新不影响

二、Lucky配置

Lucky演示版本2.15.8

划重点:如果你使用Docker Compose安装Lucky且要使用IPV6公网访问,把Docker网络设置成Host,不然你的网卡可能会读取不到IPV6地址

1.登录Lucky

默认端口16601

默认账户密码都是666

  • 比较新的几个版本第一次安装登录后都要求先修改账号和密码,改一下就行

  • 改完密码点击保存配置生效

2.阿里云AccessKey申请

非阿里云域名的可以跳过这一步

  • 点击前往阿里云控制台申请AccessKey

  • 直接勾选知晓然后点击继续使用云账户AccessKey,然后点击创建AccessKey

  • 划重点:复制保存好你的AccessKey IDSecret,然后勾选保存密钥,勾选后是无法再查看密钥的,记住保存好

3.解析域名DDNS

以阿里云的域名为例,其他域名厂商同理

  • 点击动态域名-添加任务

  • 托管云服务商阿里云

  • AccessKey ID你的阿里云AccessKey ID

  • AccessKey Secret你的阿里云AccessKey Secret密钥

  • ipv6Addr启用,如果你是要IPV6访问就勾选这个

  • ipv4Addr启用,如果你是要IPV4访问就勾选这个

  • 不要着急点添加任务,继续往下看

IPV4设置:

  • 点击添加同步记录

  • 勾选ipv4ddr启用

  • 获取公网IP方式通过接口获取,后面如果获取的IP不对就选其他获取方式

  • 记录名:主域名,和二级域名泛解析,例如我的域名为ttx.com,则我的主域名ttx.com泛解析二级域名为:*.ttx.com

  • 同步开关启用

  • 记录类型A

  • 记录内容ipv4addr

  • 点击最底下添加任务开始解析域名

查看一下获取的公网地址是否正确,如果不正确返回到添加解析获取公网IP方式这里换一个方法获取

IPV6设置:

  • 点击添加同步记录

  • 勾选ipv6ddr启用

  • 获取公网IP方式通过网卡获取,后面如果获取的IP不对就选其他获取方式

  • 网卡列表:选择你自己对应的公网IP网卡,鼠标停在网卡上会显示你的公网地址

  • 划重点:如果你选择的公网IPV6网卡获取到多个IP地址,那么在IP选择匹配规则这里填你你要选择的IP的标号数字

  • 记录名:主域名,和二级域名泛解析,例如我的域名为ttx.com,则我的主域名ttx.com泛解析二级域名为:*.ttx.com

  • 同步开关启用

  • 记录类型AAAA

  • 记录内容ipv6addr

  • 点击最底下添加任务开始解析域名

查看一下获取的公网地址是否正确,如果不正确返回到添加解析获取公网IP方式这里换一个方法获取

4.获取证书

  • 划重点:获取证书前一定要先添加域名解析记录,没有域名解析记录就添加证书会获取失败

  • 点击SSL/TLS证书-添加证书

  • 添加方式ACME

  • 证书颁发机构Let's Encrypt

  • 验证方式阿里云

  • ID你的阿里云AccessKey ID

  • Secret你的阿里云AccessKey Secret密钥

  • 域名列表:你的主域名ttx.com和二级泛解析域名*.ttx.com

  • 下面几项全部勾选启用

  • CNAME支持

  • 使用IPv4网络申请证书

  • DNS查询强制IPV4

  • DNS查询仅使用TCP

  • 忽略传播检查错误

  • 点击添加

等待证书申请成功,证书申请需要一点时间,可以点击日志查看申请过程

5.设置反向代理

A.添加通用反向代理规则

点击Web服务-添加Web服务规则

  • 规则开关:勾选启用

  • 操作模式:勾选简易模式

  • 监听类型:勾选全选tcp4tcp6都勾上

  • 监听端口:设置一个你的反代端口,建议添加8888便于理解我后续操作

  • 防火墙自动放行:勾选开启

  • TLS:勾选启用,此项为HTTPS访问才开启,如果没有证书或者证书申请不成功请关闭该选项使用HTTP访问

  • TLS最低版本限制TLS1.0

  • 点击添加子规则

  • 子规则名称随意,可以填写你要反代的服务名称

  • 子规则开关:勾选启用

  • 服务类型反向代理

  • 前端地址:填写你要反代的域名

  • 后端地址:填写你要反代的网页的IP和地址,格式为http://IP地址:端口;如果后端服务是HTTPS,格式为https://你的IP:端口

  • 点击添加WEB规则服务

  • 一条主规则下面可以有多条子规则,后续可以直接点击添加子规则添加反向代理

B.添加端口自动HTTPS重定向规则

划重点:该规则需要先把上一步的通用反代规则设置好后再添加,否则会提示端口被占用

改功能的作用是自动把所有该8888反向代理端口的HTTP流量重定向到HTTPS

在开启TLS的情况下,如果不添加该规则可能会导致某些情况下HTTP没法自动重定向到HTTPS导致访问错误

  • 再重新点击添加Web服务规则添加一条额外的主规则

  • 规则开关:勾选启用

  • 操作模式定制模式

  • 监听类型:勾选全选tcp4tcp6都勾上

  • 监听端口:你的反代端口8888

  • TLS:勾选禁用,不要开启

  • 下拉,点开默认规则

  • 服务类型重定向

  • 默认目标地址https://{host}:{port}

  • 点击添加WEB服务规则

到这里所有的Lucky配置就完成了,下面和我一起去配置防火墙规则

三、IPV4防火墙放行对应端口

根据你的设备选择对应方法,这里指的是拨号上网的设备

1.iStoreOS/OpenWRT

  • 点击网络-端口转发-添加新规则

  • 名称:随意

  • 协议TCP

  • 源区域wan

  • 外部端口8888,可以随意填一个你记得住的反代端口,但是不要填常见的80、443等端,家宽默认屏蔽这些端口,为了便于管理我这里内外端口都使用8888

  • 目标区域lan

  • 内部 IP地址:Lucky的局域网IP

  • 内部端口8888,你的内部反代端口,便于管理我是用和外部端口相同8888

  • 点击保存


  • 勾选启用,点击保存并应用

2.普通路由器

各个路由器叫法不太一样,有的叫端口转发,有的叫端口映射,但都是同一个东西

华为:

  • 路由器主页-更多功能-安全设置-NAT服务-端口映射-新增

  • 服务名称:随意

  • 服务类型端口映射

  • 设备/主机IP:选你Lucky的IP地址

  • 内部端口8888,你的内部反代端口,便于管理我是用和外部端口相同8888反代端口,填一个你记得住的

  • 外部端口8888,可以随意填一个你记得住的反代端口,但是不要填常见的80、443等端,家宽默认屏蔽这些端口,为了便于管理我这里内外端口都使用8888

  • 保存后确定Lucky端口映射的规则是启用/打开

四、IPV6防火墙设置

根据你的设备选择对应方法

1.iStoreOS/OpenWRT

  • 路由器主页-网络-防火墙-通信规则

A.Lucky安装在iStoreOS/OpenWRT上(拨号上网)

  • 名称:随意

  • 协议TCP

  • 源区域wan

  • 源端口不填

  • 目标区域设备

  • 目标地址不选

  • 目标端口内部反代端口:8888

  • 操作接受

  • 地址簇限制仅IPV6,在高级设置

  • 保存

勾选启用-保存并应用

规则讲解:这条规则是把iStoreOS/OpenWRT的端口8888放行到公网上

B.Lucky安装在Nas/其他设备上

不要直接填Lucky设备所在的IPV6地址,否则IPV6变化后规则就失效了

利用IPV6公网地址虽然是变化的,但是只有前缀变化后缀不变的特点,设置规则匹配要放行设备的固定IPV6后缀持续放行,这样即使设备重新获取IPV6地址后也能自动放行

  • 名称:随意

  • 协议TCP

  • 源区域wan

  • 源端口:不填

  • 目标区域lan

  • 目标地址:往下看,下面会单独讲

  • 目标端口反代端口8888

  • 操作接受

  • 地址簇限制仅IPV6,在高级设置里

  • 保存

划重点:

目标地址格式

  • ::设备IPV6固定后缀后四组/::ffff:ffff:ffff:ffff

不要漏掉::/::

例子

  • ::固定后缀后四组/::ffff:ffff:ffff:ffff

  • IPV6地址 240e:314:b718:900:a61b:eff:fe81:5497

  • 规则填写::a61b:eff:fe81:5497/::ffff:ffff:ffff:ffff

  • IPV6地址 240e:314:b718:900:833e:264d:3c8:d378

  • 规则填写::833e:264d:3c8:d378/::ffff:ffff:ffff:ffff

  • IPV6地址 240e:314:b718:900:5129:e4ff:fee2:6c87

  • 规则填写::5129:e4ff:fee2:6c87/::ffff:ffff:ffff:ffff

C.其他规则分享

规则讲解:这条规则是把局域网的所有设备的所有端口都放行到公网上,不推荐,全都暴露出去很不安全

2.普通路由器

划重点:大多数家用普通路由器IPV6防火墙只支持打开和关闭,意思就是不能单独放行某个设备的某个端口,一旦关闭防火墙那么你局域网设备的所有ipv6端口都会默认被暴露到公网上。

华为:

  • 路由器首页-更多功能-安全设置-防火墙-关闭防火墙

五、结语

对NAS用户来说,公网访问从来不是“附加功能”,而是解锁其“个人专属家庭服务器”潜能的关键。避开正向代理+HTTP的“裸奔”误区,选择反向代理+HTTPS的安全方案,才是长期使用的稳妥之选。而Lucky的出现,恰好打破了传统安全方案的配置壁垒,让零基础小白也能轻松搭建起加密、便捷的公网访问环境。按照后续步骤完成配置后,你就能随时随地安全访问NAS中的各类服务,真正享受个人云存储与服务的便利。最后提醒一句:网络安全没有绝对,后续建议定期查看Lucky及相关软件版本更新日志,若遇重大Bug应及时更新,做好权限管理,让公网访问既便捷又安心。