unraid折腾之一:旁路由情况下公网https访问内网docker
1. 背景
居家办公,有一些原型交互需要共享给同事。同时家里有一台Unraid驱动的NAS,装了一些docker应用,希望可以在外网访问,考虑安全性和便利性,首选肯定是公网通过域名直接访问。因此在更换硬盘,删光所有docker后重新折腾了这么一回,记录下来。
本次虽然以static-web-server为例,但想来其他应用应该也一样适用。
题外话,关于unraid更换硬盘和硬盘规划可以另起一篇,待后边有时间再整理。
2. 前置条件
2.1. 公网IP和域名
需要有公网IP、自己的域名
建议做**泛域名解析**,这样NPM里可以随意为应用配置二级域名
2.2. DDNS
需要配置好ddns,保证在公网IP发生变化后域名能解析到最新的地址。方案很多,我装了个docker解决。
3. 网络拓扑
主路由小米1.1.1.1,dns:114.114.114.114,路由器默认网关未改动
unraid(NAS)固定地址1.1.1.254,提供虚拟机、docker、存储等服务
unraid 虚拟机安装openwrt,做旁路由,地址1.1.1.2
unraid 网关设置为openwrt,即1.1.1.2,方便使用应用市场、安装docker
我的电脑手机设置手动IP、网关。这样方便调整配置,关停unraid不影响其他设置上网,避免All in boom。
4. SWS配置
docker安装static-web-server(以下简称SWS),用来放原型文件,需要公网访问。
使用自定义网络dr0,地址1.1.1.4(自行设置),默认端口80(自定义网络无法修改)
5. https反代
unraid docker安装NginxProxyManager(后续简称为NPM),为内网应用提供HTTPS反代服务,还可以给没有权限控制的应用添加简单的帐号权限控制
NPM使用自定义网络dr0,地址1.1.1.3(可以随意自行设置),代理端口因为是自定义网络无法自定义,只能使用4443
需先配置好SSL
然后设置反向代理地址sws.youdomain.com到SWS的内网地址 1.1.1.4:80
6. 网络配置
6.1. 小米路由
路由需设置端口转发
外网端口:1234,能用443最好,但很多家庭地址443是被封的
内网地址:1.1.1.2,好像是因为unraid的网关设置问题,直接端口转发到unraid的254时,外围无法正常访问,所以此处先转发到unraid的网关
内网端口:4443,npm的代理端口,这里可以随意设置,因为还要再转发一次
6.2. OpenWrt设置
我用的homelede的版本,自带有端口转发功能,没有用路由原生的端口转发
设置端口转发
路由器端口:4443,必须与小米路由器端口转发的内网端口一致
转发目标地址:1.1.1.3,NPM docker的地址
转发目标端口:4443,NPM代理的端口
7. 大功告成
完成以上配置后,就可以使用https://sws.yuming.com:1234访问你的静态网站了
作者声明本文无利益相关,欢迎值友理性交流,和谐讨论~
DUOi
校验提示文案
dayvight
校验提示文案
dayvight
校验提示文案
DUOi
校验提示文案