作者:lsolol
前言
随着家庭nas对外服务日渐增多,便捷安全的访问家庭服务成为必不可少的一环。
场景一:群辉提供photos服务,家人手机客户端通过https连接访问,而群辉证书需要手动导入定期维护易用性差,如果让家人先接VPN再连photos = 软件不可用。
场景二:自建vaultwarden服务,对外连接时必须要https安全访问,要么利用群辉自有反代,要么自建反向代理服务。
场景三:自建emby服务,采用macvlan的方式单独分配了局域网ip(方便流控),而群辉(单网卡)作为宿主机无法与emby(容器)通信,无法使用群辉自有反代或者群辉docker容器自建反代。
综合上述等多个场景的问题最后选择在爱快中安装docker,同时部署容器nginx manager proxy(简称npm)反向代理,解决外网安全访问家庭NAS服务的问题。反向代理没有采用Lucky还是本着开源的项目进行挑选,同时nginx作为反向代理较为成熟,自定义配置自由度较高。
官网地址:https://nginxproxymanager.com/
github地址:https://github.com/NginxProxyManager/nginx-proxy-manager?tab=readme-ov-file
前提条件
域名一枚(任意运营商即可)
NAS一台
爱快(理论来说能跑docker就行,OP也可以)
NPM安装
1、绑定爱快云,同时在爱快云下发docker插件,在爱快 高级应用>插件管理 看到docker图标表示下发成功。
2、在 系统设置>磁盘分区,重新分配磁盘分区(普通存储),然后挂载 opt 路径(路径可以自定义)
3、文件管理中建立2个目录:/opt/docker/npm/letsencrypt和/opt/docker/npm/data,用于后续npm容器的数据持久化。
4、自定义docker镜像源:https://registry.hub.docker.com,存储位置主要用来存放下载的镜像,如果dockerhub官方镜像源无法访问,可以使用国内镜像。
5、镜像管理>添加,搜索镜像 jc21/nginx-proxy-manager,然后 下载 latest,等待下载完毕;如果无法下载或者进度条没有动静请按照步骤3将镜像源切换到国内源。
6、接口管理>添加,名字随意,IPV4地址:172.17.0.0/24,IPV4网关:172.17.0.1,主要是用于docker内部IP分配,可自行定义
8、此时容器已经启动,同时应该分配了内网IP:172.17.0.2;端口映射处新增映射,外网端口自定义记住即可,内网端口转发2条,58443到443(https端口),58081到81(npm管理面端口)
9、设置完成后,通过域名+端口应该可以访问npm的管理面(域名ddns此处不做详述),默认账号:admin@example.com,密码:changeme;登录后记得修改账号密码
10、SSL证书申请,填写自己的域名,建议直接申请泛域名,例如自己的域名为a.com,那么此处填写 *.a.com和a.com,所有子域名都可以用此证书;邮箱随便填写,DNS提供商主要是域名当前哪解析,需要授权进行DNS验证(此处也不做详述,如有需求后续细说),等待1分钟证书已经申请完毕;npm同时提供Let's Encrypt证书的自动续期,后续无需再手动续期。
11、配置代理,填写自定义的二级域名xxx.a.com,然后需要映射的服务IP地址和端口,选择刚才建立的SSL证书,开启强制SSL,保存完毕
12、域名解析商新增一条cname到ddns对应的域名即可,然后通过:https://xxx.a.com:58443 访问对应的服务。
NPM反代的优势
对外服务都通过https访问,通信安全有保障,同时NPM提供自动续签减少人工维护成本。
只对外暴露一个https的端口:58443,通过不同的二级域名进行内网服务区分;即使端口被扫,不知道域名也无法访问服务,端口+域名二者缺一不可。
FAQ
问:npm安装后,登录时报错:Bad Gateway。
答:这种是拉取的镜像与当前架构不一致导致的问题,拉取镜像时指定 2.10.4 版本即可,感兴趣的可以查看issue:https://github.com/NginxProxyManager/nginx-proxy-manager/issues/3631
问:群辉photos,ds file等都无法连接。
答:群辉photos,ds file软件http端口都是5000(一定不要用自定义端口),反向代理时指定到5000端口。群辉端口速查:https://kb.synology.cn/zh-cn/DSM/tutorial/What_network_ports_are_used_by_Synology_services
问:为啥一定要自定义端口?
答:家宽一般都屏蔽了80,443端口,所以需要用自定义端口替换
问:有没有不带端口的直接用二级域名访问的方案?
答:有,简单说下2个方案:隐性URL转发(域名须备案),CF配置端口转发(Page Rule)
问:没有公网IP如何访问家庭服务?
答:配置cloudflare tunnel,勉强能用;询问运营商开通IPV6,有IPV6会简单很多
后记
以上就是本篇文章【[Docker]反向代理Nginx Proxy Manager安装设置安全访问NAS服务】的全部内容了,欢迎阅览 ! 文章地址:http://xiaoguoguo.dbeile.cn/quote/1022.html 行业 资讯 企业新闻 行情 企业黄页 同类资讯 网站地图 返回首页 多贝乐移动站 http://xiaoguoguo.dbeile.cn/mobile/ , 查看更多