想从外网(公网)访问家中的NAS,欧博abg首先最好还是拥有公网IPv4。不过考虑到现在宽带运营商基本上不给公网IPv4,而IPv6则相对比较容易获取,因此此篇以ipv6为例; 官网如下:https://www.lucky666.cn/docs/intro 相比于DDNS-GO,lucky支持端口转发、Web服务、Stun内网穿透、网络唤醒、ACME自动证书等等,本篇主要内容为“使用Lucky实现反向代理+Https外网访问家庭NAS”,其他暂不涉及 一、前提条件 1、有个域名 2、有台nas 3、有个脑子 二、docker安装 强烈推荐大家使用docker compose创建项目,省心省力 services: lucky: image: gdy666/lucky container_name: lucky volumes: - NAS绝对路径:/goodluck network_mode: host #在bridge模式下,Lucky不支持IPv6,而且IPv4也可能会出现端口无法访问的情况 ports: - "16601:16601" #若有冲突可修改端口号,欧博官网一般情况下无需修改 restart: always 三、应用配置 1、容器安装好之后, 默认登陆地址 : {IP地址}:16601 默认账号:666 默认密码:666 2、填入后登录,并点击左侧的“设置”选项卡,重新设置一套新的管理账号和密码,确保安全: 3、设置DDNS(动态域名解析) 預覽 操作模式选择“简易模式”,DNS服务商选择域名对应的服务商,并填入AccessKey ID和 Secret, 获取方式选择通过接口获取,最后域名列表填写两行,欧博第一行是abc.com,第二行是*.abc.com,代表二级域名。其他默认,点击添加即可, 稍等几分钟,看到同步结果为“域名IP和公网IP一致”,就说明DDNS设置成功了 4、申请SSL 点击左侧“安全管理”选项卡,并点击“添加证书”; 添加方式选择ACME,证书颁发机构选择Let's Encrypt,欧博娱乐DNS服务商选择自己的服务商; AccessKey的ID,Secret,主域名和二级域名,下面的邮箱不动也行,换自己的也行,算法选择默认的RSA2048 「如果你的公网IP是IPv4,就开启DNS查询强制IPv4,同时启用DNS查询仅使用TCP通道。」 其他所有选项全部保持默认,并点击添加完成。 注意:证书申请需要时间较长,耐心等待。成功后就会出现ACME信息,起止时间。每张免费SSL证书的有效期为三个月,但Lucky在证书到期日会自动续签,不用管了。 四、反代设置 特别注意,一定要开启TLS,否则无法使用HTTPS。 接下来点击“添加Web服务子规则”。实际上,这个所谓的“子规则”,就是你从外网访问的某项服务,比如qb、mp等等,或者NAS管理页面。名称建议就用应用简称,规则开关开启。Web服务类型选择“反向代理”。 前端域名/地址需要填写你想要从外网访问该服务的二级域名,比如我这个子规则是分配给qb的,那我就写qb.abc.com。 而后端地址则需要写你访问该服务的内网IP和对应服务端口号,前面不要忘记加,其他选项全部保持默认。 举例如下: 然后在Web服务中添加一条全新的Web服务规则(注意不是子规则)。名称随便,操作模式选定制模式,监听端口和前面的反代端口保持一致,TLS一定要禁用!然后点击“默认子规则” 打开默认子规则界面后,Web服务类型选择重定向,然后在默认目标地址中输入: https://{host}:{port} 并打开万事大吉开关(自动添加请求头),其他所有选项全部保持默认,添加完成 全部设置好以后,我们还需要把反向代理的端口通过路由器映射出去,这里我们只需要映射一个反代端口就可以,不用把每个服务单独的内网端口再映射出去,注意内网端口和外网端口号要保持一致 各家路由器界面不一,仅做举例 在外网访问时我们只需要输入xxx.abc.com:端口号,浏览器就会自动跳转到https协议,非常方便。 (责任编辑:) |