reknew (2024-03-16编辑:更新了文中部分内容,希望能能帮到大家!) 大家都知道https访问比http更安全,同时通过反向代理还可以实现只暴露一个端口访问内网的各种服务。作为一个不懂网络原理也不懂代码的菜鸡,我通过一些简单工具(主要是lucky)实现了外网https一个端口访问nas上运行的服务,希望能帮到有需要的人。 第一步是申请域名。此处示例使用dynv6网站申请域名,假设申请的域名是test.dns.army。lucky有动态域名功能,最简单的使用方式,填入域名token和域名列表就可以啦,此处不再赘述。(需要说明的是,如果你没有公网ipv4地址,但有公网ipv6地址的话也是可以做到外网访问的,只是访问设备也必须接入ipv6。) 在域名records中添加记录,Type为CNAME,Name为*,Data为空。这样做就可以把任意test.dns.army的子域名映射到test.dns.army的地址上。 部署lucky镜像。镜像安装可以参照lucky官网说明。lucky除了动态域名、反代,还有内网转发、webdav、证书申请等许多功能,大家可以自行探索。 用flare为例说明怎么做到安全访问。flare是一个轻量、快速、美(๐•ᴗ•๐)的个人导航页,推荐使用哦。按照以下代码可以部署flare,注意:正式使用flare建议打开访问密码。 docker run -d \ --name=flare100 \ --net=bridge \ -p 127.0.0.1:5005:5005 \ soulteary/flare:latest 以上代码中-p 127.0.0.1:5005:5005指该服务只监听本机(指nas本机)地址的访问,假如你的nas内网地址为192.168.1.90,你会发现你访问http://192.168.1.90:5005会失败,用nas的ipv6地址或公网地址访问同样会失败。(如果你部署时使用-p 5005:5005,指部署的服务监听本机ipv4、ipv6所有地址的5005端口,此时访问http://192.168.1.90:5005就可以成功,用外网v4v6地址也都可以成功,但是直接对外网暴露端口会比较危险。) 假设你已经把你的公网ipv4或ipv6地址绑定到申请的域名test.dns.army上,同时假设你想对外网暴露的端口号是12345,在lucky中打开web服务,添加规则,如下图。监听类型根据需要选择,监听端口、前端地址、后端地址请根据自身情况修改。添加这条规则后,无论是在内网还是外网,你都可以通过http://flare.test.dns.army:12345访问flare了,且仅可以通过这个域名访问。 此时的访问是http访问,接下来介绍如何开启https访问。在lucky中点击安全管理->添加证书,添加方式选ACME,验证方式选dynv6,填入你的域名的token和域名列表,域名列表示例如下,请替换为你自己申请的域名。再然后点击添加,不出意外的话lucky就会帮你申请到的ssl证书啦。 test.dns.army *.test.dns.army 把第6步web服务中添加的规则中,打开(๐•ᴗ•๐)S开关并保存。此时你就能且只能通过https://flare.test.dns.army:12345访问flare了。
Michael80 谢谢分享。 补充个建议, 点击web服务,添加web服务规则,假设你的内网部署了transmission,服务端口为9091,你希望通过外网访问的端口为999,如下图,监听类型全选(如果只想监听ipv4访问,就勾选tcp4,按需要修改),监听端口填999,防火墙自动放行关闭,(๐•ᴗ•๐)S启用。 建议改为几万的端口号。
miniwei 之前dynv6网站上申请了一个,不知道怎么好像用不了。 于是怒花3元在阿里云拍买了一个域名,顺带在阿里申请了SSL证书,再配置阿里云的动态域名解析。 钞能力真的好,一直用一直爽。 嗯,第二年开始续费就贵了,10年好像300多。 也可以一年换一次域名?