写在前面
公网访问 nas 的方案最主要的就是有两种,一种是 vpn 异地组网,一种是反向代理
有的人死磕一个用到底,非要争出一个第一名,但实际上这两个并不冲突,完全是可以共存的,各有利弊,可以互补,没有必要死认一个方案

本文先只写反向代理的详细版教程

确认光猫是否桥接

没有桥接的先改桥接,桥接并不是为了有些人说的什么所谓的光猫性能差,改桥接用路由拨号性能强,不排除有的人光猫性能确实差,但真的不多了,现在的光猫性能不比路由差,而为什么要改桥接,是因为光猫桥接可以让我们的网络少一层 nat,简化了网络结构,便于管理和配置。

电信可以直接打客服电话找技术部门远程改,其他两家不确定有没有,自行测试;也可以咸鱼找大神改,反正改了桥接就行

确认公网

这步是基于已经改完桥接之后的操作了,进路由查看路由拨号获取的 ip 地址,如果我们获取的 ipv4 地址和在百度上搜出来的 ip 一样,就可以确定 ipv4 是公网,ipv6 就很简单,240 开头基本都是

关闭路由防火墙或者开放需要使用的 web 端口

这步分两种情况,一种是 ipv4,一种是 ipv6,双栈就都配置,纯 v4 或者纯 v6 只配置一个即可

ipv4:就像其他教程上配置端口转发即可(没有 v4 公网就别试了,转发也没用)
如图

ipv6:可以直接关闭防火墙也可以用软路由系统放通 80 和 443 两个 web 端口
如图

关于 op 软路由放通 web 端口请参考一些 openwrt 配置 v6 防火墙的笔记

ddns

ddns-go

docker cli 直接复制粘贴无需任何修改,docker 拉不到自行百度换源或者挂旁路由

1
docker run -d --name ddns-go --restart=always --net=host -v /opt/ddns-go:/root jeessy/ddns-go

设置管理员账户之后就是下面的样子

dns 服务商那里就跟着自己域名注册商选择,并且根据输入框上方的蓝字提示填 id 和 key 或者密码,下面 ipv4 和 ipv6 分别添加自己想要绑定的域名

添加完成后保存,然后去域名服务商那查看解析是否添加,确认无误后 ddns-go 就配置完成了,webhook 那个提醒根据文档填就行,没难度跳过了

反向代理

反代程序用啥都可以阿帕奇 nginx caddy 都可以
这里以 nginxwebui 的 docker 容器为例

nginxwebui

docker cli

1
docker run -itd -v /home/nginxWebUI:/home/nginxWebUI -e BOOT_OPTIONS="--server.port=8080" --net=host --restart=always registry.cn-hangzhou.aliyuncs.com/cym19871102/nginxwebui:latest

安装完成后就是这个样子

首先设置一下 nginx 的最大上传大小
如图

保存

添加 ssl 证书

提交之后进入下一步

配置 ssl 证书的 dns 验证解析,点击获取dns记录

去域名注册商那添加解析记录并保存

申请

添加反向代理

这里监听域名代理目标根据自己的情况填写
监听域名:外网访问在地址栏输入的域名
代理目标:内网服务的ip地址+端口

启用配置

测试

附:
ipv6 端口测试工具
tcping 工具 itdog

有错误或者疑问请评论区指出,谢谢