当前位置:
文章详情

一个端口访问NAS所有服务,增加体验、更安全(群晖、威联通、NAS等)

2022-08-21 18:13:17 30点赞 464收藏 38评论

前言

目前全国大部分运营商家宽都是屏蔽80和443端口的,如果想要访问家里面的NAS等各种服务,都需要分配端口号,然后在路由器中做端口转发,从而实现远程访问。服务部署的多了端口也多,很容易记忆混乱,这时候有两种方式解决,一个是部署一个导航页,感兴趣的可以浏览一下我之前的文章。

  

 

 

但是有的朋友说导航页的方式不太全,一但导航页泄露很容易暴露所有端口,本期教程我们将使用nginx的方式来实现二级域名访问相关服务,而且以后路由器中映射的端口也只有三个,既能提高安全性,也便于记忆。

在上篇文章群晖NAS-TOOL消息推送之微信(自动检索下载,以及控制程序运行)中曾经提到过如何安装Nginx管理面板(Nginx Proxy Manager),这期教程将继续探索此面板的更多玩法,一个端口访问家庭网络服务,例如下面这样访问。

  • emby.ycnas.com:88
    dsm.ycnas.com:88
    nastool.ycnas.com:88


前期准备

我们已经将家庭中的各种网络服务做了DDNS解析,并且可以通过外网正确访问服务,相关教程之前也写过,有兴趣的可以看看。

 

 

群晖安装nginx-proxy-manager

群晖本身已经内置了nginx反向代理服务器,使用起来也很不错,但是总是遇到一些小bug,明明端口没有使用但是总是提示已经被使用,另外不能申请证书,个性话设置较少,本期教程将使用一个具有简单、强大的界面有ui面板,可以申请证书的nginx管理面板(nginx-proxy-manager)在上期的NAS-TOOL教程中曾经使用过部署过微信代理。
 

 

 

 

1、登录群晖,打开File station,在docker目录下新建立目录nginx,然后再nginx下分别建立目录letsencrypt(存放申请的证书)和data(存放数据),然后对建立的文件夹赋予权限everyone完整权限


一个端口访问NAS所有服务,增加体验、更安全(群晖、威联通、NAS等)



赋予everyone权限赋予everyone权限


2、打开Docker→注册表→搜索chishin/nginx-proxy-manager-zh,双击下载,版本选择最新版本(latest)。


一个端口访问NAS所有服务,增加体验、更安全(群晖、威联通、NAS等)


3、docker主页面映像列表中找到下载好的镜像,双击,网络中选择bridge点击下一步。


一个端口访问NAS所有服务,增加体验、更安全(群晖、威联通、NAS等)


4、常规设置中名称自定义,勾选【使用高权限执行容器】和【启动自动重启】,然后点击下一步。


一个端口访问NAS所有服务,增加体验、更安全(群晖、威联通、NAS等)


5、端口设置中,需要将反向代理的面板的三个端口代理出去,容器端口不要动,本地端口填写未使用过的端口。


一个端口访问NAS所有服务,增加体验、更安全(群晖、威联通、NAS等)


6、存储空间设置中,建立如下映射关系,文件/文件夹选择在docker中创建的相关目录,装在目录中填入和我图片中相同的内容,然后点击下一步。

       装载路径

          /data
          /etc/letsencrypt



一个端口访问NAS所有服务,增加体验、更安全(群晖、威联通、NAS等)


6、在摘要中请在此检查配置项,没有错误的话点击完成。


一个端口访问NAS所有服务,增加体验、更安全(群晖、威联通、NAS等)


7、使用群晖IP:11081(81的映射端口来访问控制页面)


一个端口访问NAS所有服务,增加体验、更安全(群晖、威联通、NAS等)


8、初次使用可以请按照要求更改用户名和密码。


一个端口访问NAS所有服务,增加体验、更安全(群晖、威联通、NAS等)


使用一个端口访问所有服务

1、登录路由器,将nginx面板的三个容器本地端口进行转发11143(https端口),11080(htt端口)、11081(nginx管理面板)三个端口进行转发。


一个端口访问NAS所有服务,增加体验、更安全(群晖、威联通、NAS等)


2、在DDNS域名解析处添加相关服务的二级域名解析,比如想使用emby.zwbcc.cn这个域名来访问emby媒体库。(解析记录请使用CNAME,记录纸填写DDNS主域名)


一个端口访问NAS所有服务,增加体验、更安全(群晖、威联通、NAS等)


3、登录nginx面板,点击主机→代理服务→添加代理服务。


一个端口访问NAS所有服务,增加体验、更安全(群晖、威联通、NAS等)


4、域名中填写emby.ycnas.site不用填写端口,协议选择http,转发主机ip填写群晖内网ip,端口填写emby端口8096,然后点击保存即可。


一个端口访问NAS所有服务,增加体验、更安全(群晖、威联通、NAS等)


5、填写好的格式应该和我的相同,请仔细检查不要多填写http、:、/之类的。


一个端口访问NAS所有服务,增加体验、更安全(群晖、威联通、NAS等)


6、然后在浏览器中直接访问emby.ddns地址:nginx(http端口)即可访问emby例:http://emby.ycnas.site:11080即可。


一个端口访问NAS所有服务,增加体验、更安全(群晖、威联通、NAS等)


7、根据emby的添加过程,可以添加更多的服务,然后在访问的时候只需要使用二级域名:10080访问


一个端口访问NAS所有服务,增加体验、更安全(群晖、威联通、NAS等)


8、部署教程结束。

总结和补充

本教程可以解决的问题:

  • 使用一个端口增加访问体验,毕竟emby、nas-too、qb等二级域名更容易记忆。

  • 增加安全性,转发的端口越少越安全。

  • 如果外放访问服务比较多,不想每次都添加二级域名,可以使用泛解析(目前腾讯和阿里泛解析都是免费的)

教程最开始本来是想写三部分的,包括使用公网vps去掉端口和使用申请https证书等,但是这样因为涉及到内容过多(文章中也附上了很多之前写过的教程),很可能有会给很多朋友造成困扰,所以剩下的两部分我将会采用和nas-tool工具的方式,在端口访问的进阶教程中写出,最近想写的教程很多包括硬件设备,从咸鱼购买了一个dell的新款小主机dell3260 的相关玩法文章已经在写了,有感兴趣的朋友可以关注一下,咱们下一篇文章见一个端口访问NAS所有服务,增加体验、更安全(群晖、威联通、NAS等) 。

作者声明本文无利益相关,欢迎值友理性交流,和谐讨论~

展开 收起
38评论

  • 精彩
  • 最新
  • 群晖自带的反向代理其实也行...

    校验提示文案

    提交

    zwbcc

    作者

    MocII

    对的 我之前也写过教程,这个更直观方便一点

    校验提示文案

    提交

    MocII

    zwbcc

    作者
    [得意] 而且想了想,理论上套一层docker安全性还能再高一点?毕竟除了"主域名"其他的都是访问docker,做好策略的话.访问不到物理本机的进程?

    校验提示文案

    提交
    收起所有回复
  • 长见识了, 谢谢

    校验提示文案

    提交
  • 想nas上的端口n个的,这种二级域名的就不行,比如你映射nas.xxx.cn:11080你映射了5000或者5001,其他nas上的服务要用到其他端口的话,那就失败了。比如webdav服务是5006,或者drive同步套件的6690,就这两个服务做示例。你访问na.xxx.cn:11080,这些软件上也是开启了https协议的话,你会发现,连不上。这也是一直困扰我的一个问题,大佬有啥思路解决吗?我现在nas还是放出去好几个端口,没办法做到一个端口总管全部。

    校验提示文案

    提交
    看了几遍没看懂你描述的什么意思 [皱眉]

    校验提示文案

    提交
    是这样的,我上次群晖反代也是,常用的几个蛮顺利的,有些就不行。还要申请证书好像也麻烦的很

    校验提示文案

    提交
    还有4条回复
    收起所有回复
  • 太复杂了,不会

    校验提示文案

    提交
  • 感觉意义不大呢,还要管理一堆证书

    校验提示文案

    提交
    二级域名,就一个证书。总管全部,你可以设置n个二级域名,都是一个证书。

    校验提示文案

    提交
    泛域名,不免费吧?

    校验提示文案

    提交
    还有2条回复
    收起所有回复
  • 期待后续的文章

    校验提示文案

    提交
  • 我买了两个Gl-inet的路由器,使用他们家的GoodCloud的服务。直连家里的NAS。不要太简单。 [高兴]

    校验提示文案

    提交
    怎么弄的呢?啥原理?组件虚拟局域网还是内网穿透?

    校验提示文案

    提交
    怎么弄的呢 组件虚拟局域网还是内网穿透呢

    校验提示文案

    提交
    收起所有回复
  • 我之所以还是用同域名绑定DDNS,不由端口来区分不同应用,不用这种反向代理,是因为多域名一样麻烦,而且还有重要一点,同域名,申请ssl证书就方便很多!

    校验提示文案

    提交
  • NPM在反代有些服务的时候会存在默认不带端口的问题,比如heimdall,unraid等,不知道这个问题怎么解决呢?

    校验提示文案

    提交
    heimdall不是80端口?unraid不也是80?http的80 https的443。这些都不用输入端口号的啊

    校验提示文案

    提交
    收起所有回复
  • 此外,类似qbittorrent也有问题

    校验提示文案

    提交
  • 这个比较难实现不带端口的访问。自带的反向代理占用了443端口。还不如直接自带的反代方便

    校验提示文案

    提交
  • 感觉好复杂,下次再来学习

    校验提示文案

    提交
  • 所以nastool微信那个,不买个vps就不行吗,这腾讯挺会揽生意

    校验提示文案

    提交
  • 用域名的80端口443端口不行吗

    校验提示文案

    提交
    问这个问题前,你确认你家的宽带网络给你80 443了? 是你家泳的别说你的商用网络

    校验提示文案

    提交
    试过,真在不行......

    校验提示文案

    提交
    还有2条回复
    收起所有回复
  • 使用公网vps去掉端口和使用申请https证书,大佬后续教程什么时候出啊?

    校验提示文案

    提交
  • 配置完,点目标地是我的服务网站,点源出现的是路由器的网页是为啥……

    校验提示文案

    提交
  • 用npm反代joplinserver失败,提示invalid origin,请问楼主有解决办法吗?

    校验提示文案

    提交
  • npm容器内是如何访问容器外ip和端口的 有点好奇

    校验提示文案

    提交
  • 必须要有域名么,

    校验提示文案

    提交
提示信息

取消
确认
评论举报

最新文章 热门文章
464
扫一下,分享更方便,购买更轻松