Docker绝配!管理域名反代端口转发 Nginx Proxy Manager反向代理服务器无80端口家庭宽带直接申请证书 |反代服务器|NPM服务器|

แชร์
ฝัง
  • เผยแพร่เมื่อ 8 ก.ค. 2024
  • Docker绝配!管理域名反代端口转发 Nginx Proxy Manager反向代理服务器无80端口家庭宽带直接申请证书 |反代服务器|NPM服务器|
    Github官方页面
    github.com/xiaoxinpro/nginx-p...
    discord讨论群
    / discord
    这个视频讲述了如何使用 Nginx Proxy Manager(简称 NPM)来简化和加强通过 Docker 部署在路由器上的应用的网络访问。视频的核心内容集中在解释和展示如何使用 NPM 代替传统的端口转发方法,以便于更好地管理和保护家庭宽带网络中的服务。
    传统上,每个需要外网访问的应用都要设置单独的端口转发,这不仅导致大量端口暴露在公网上,而且因为端口号众多,也很难管理和记忆。此外,由于国内家庭宽带通常缺少80和443端口,这使得HTTPS证书的申请和管理变得更加复杂。
    NPM 为这些问题提供了解决方案。它能够为每个服务端口绑定一个域名,从而使得访问这些服务更加容易记忆和操作。同时,NPM 还支持自动的 HTTPS 加密,即使是那些原本不支持 HTTPS 的应用也能获得加密保护。通过这种方式,家庭网络的安全性得到了显著提升,同时也减少了暴露在公网上的端口数量。
    视频中进一步解释了什么是反向代理服务器,并将其与正向代理服务器进行了对比。简单来说,正向代理代理的是客户端,而反向代理则代理的是服务器。这样的设置有助于隐藏真实服务器的细节,增加额外的安全层。
    Nginx Proxy Manager 作为视频的重点,被介绍为一个简单易用、界面友好的工具。它提供了免费的 SSL 支持,支持通过 DNS 服务商的 API 自动申请和更新证书,这对没有80端口的家庭宽带用户来说非常有用。此外,NPM 还支持多用户认证,增加了服务器的安全性。
    视频还提及了一些与主题相关的额外信息,比如区分 NPM 和 Node.js 中的 NPM 命令。Node.js 是服务器端的 JavaScript 解释器,其包含了一个包管理工具,也叫做 NPM,用于下载和管理代码模块。
    最后,视频演示了 NPM 的安装和配置过程,强调了其简单易用性。作者鼓励观众关注并订阅他的内容,以获取更多类似的技术知识和技巧。总的来说,这个视频是关于如何通过使用 NPM 提高家庭网络服务的安全性和易用性,同时减少日常管理的复杂性。
    00:00 家庭部署docker应用外网应的痛点
    00:20 介绍nginx proxy manager(npm服务器)及优点,图示端口转发和反代的优缺点
    01:28 这个npm服务器,不是node.js的npm命令,跑题的知识点
    02:22 介绍正向代理服务器和反向代理服务器的概念
    03:35 nginx proxy manager(npm) 服务器特色及优点归纳总结
    04:29 桌面操作演示通过docker compose 部署nginx proxy manager(npm)服务器
    06:24 桌面演示通过nginx proxy manager(npm) 服务器设置两个docker应用的反代操作过程
    08:04 申请cloudflare的dns api
    09:28 反向代理设置的操作演示
    13:18 总结视频
  • วิทยาศาสตร์และเทคโนโลยี

ความคิดเห็น • 123

  • @shanjiang9203
    @shanjiang9203 6 หลายเดือนก่อน

    太喜欢你讲课了,通俗易懂,把知识讲得透彻,很多博主的视频我听后一知半解,加油

    • @milaone
      @milaone  6 หลายเดือนก่อน +1

      过奖了您,我只是尽量分享出我的理解,让大家更容易有个感性认识先,理性的都是在后续自己使用中逐渐试错,也许并不严谨,但是足够激发出大家的兴趣

  • @yiwang4146
    @yiwang4146 5 หลายเดือนก่อน

    这口音,一听就是老乡👍🏽😁

    • @milaone
      @milaone  5 หลายเดือนก่อน

      哈哈,天普

  • @user-dl8rc8xl3y
    @user-dl8rc8xl3y 3 หลายเดือนก่อน

    教程讲的挺不错,建议把80端口,81端口和443端口分开阐明它们的作用,这样在端口映射的时候新手才能更容易理解些,不然一开始非常容易混乱,造成外部访问不同。

  • @yizhang2717
    @yizhang2717 6 หลายเดือนก่อน

    谢谢分享

    • @milaone
      @milaone  6 หลายเดือนก่อน

      不客气

  • @liash821
    @liash821 6 หลายเดือนก่อน

    感谢大佬分享

    • @milaone
      @milaone  6 หลายเดือนก่อน

      不客气您,提不上大佬,喜欢解决问题,共同进步吧,也是想通过这里找到同好的朋友

    • @liash821
      @liash821 6 หลายเดือนก่อน

      @@milaone 在您这里学到了不少好玩实用的东西,在我眼中您就是大佬😊

    • @milaone
      @milaone  6 หลายเดือนก่อน +1

      过奖过奖了,常来玩,尽量抽时间分享更多

    • @liash821
      @liash821 6 หลายเดือนก่อน

      @@milaone 好的没问题🙂

  • @user-ke5xd7ki2o
    @user-ke5xd7ki2o 2 หลายเดือนก่อน

    用大吉

  • @MGB_Panda
    @MGB_Panda 4 หลายเดือนก่อน

    老哥说的很清晰,点赞了!还有一个小问题请教一下,我用泛域名证书,显示只有60天有效,请问到期之后需要手动点更新证书吗?如何自动更新证书

    • @milaone
      @milaone  4 หลายเดือนก่อน

      选择上他是自动更新的,你头一次关注一下,不过有时环境配置的关系也有自动不起来的,首次的时候关注一下,能更新的话以后就没啥问题

  • @rexwang573
    @rexwang573 5 หลายเดือนก่อน

    那两个二级域名需要在cloudflare里面的域名解析处先建立么?

    • @milaone
      @milaone  5 หลายเดือนก่อน

      如果是泛域名解析的话是要到cloudfare里面做的,比如域名是aaa.com,就要建立一个A记录,域名为*.aaa.com的然后指向npm地址

  • @brianliu8270
    @brianliu8270 3 หลายเดือนก่อน

    用traefik配置更方便吧

  • @星峰
    @星峰 5 หลายเดือนก่อน

    用泛域名解析呀,不然站点多,每次都要申请域名证书

    • @milaone
      @milaone  5 หลายเดือนก่อน

      嗯可以支持范域名

  • @user-kg4fn8hd3h
    @user-kg4fn8hd3h 3 หลายเดือนก่อน

    路由的8443 和docker应用的5230 9443 都要映射出来才可以吧

    • @milaone
      @milaone  3 หลายเดือนก่อน

      只露出来8443就可以,,5230 9443不用

  • @sskhdsk
    @sskhdsk 5 หลายเดือนก่อน

    问一下你们用的是什么穿透服务?我用cloudflare的tunnel挺慢的

    • @milaone
      @milaone  5 หลายเดือนก่อน

      我有公网ip不用穿透目前

  • @user-rg1kr2cs9w
    @user-rg1kr2cs9w 21 วันที่ผ่านมา

    给pve反代之后 shell不能用 控制台也用不了

  • @tonyz2131
    @tonyz2131 5 หลายเดือนก่อน

    大佬 您好
    正在学习您的视频
    想问一下 创建yml文件的时候,那一段代码,如何才能复制到 nano中? 我复制进去以后,代码全部都在一行

    • @milaone
      @milaone  5 หลายเดือนก่อน

      原配置要用utf8的文本编辑器,尤其网页上复制来的,安装一个vscode,他可以支持

    • @tonyz2131
      @tonyz2131 5 หลายเดือนก่อน

      @@milaone非常感谢 🙏

    • @milaone
      @milaone  5 หลายเดือนก่อน

      太客气了您

  • @samwillun
    @samwillun 5 หลายเดือนก่อน

    米哥,不知道在1panel这个开源的服务器面板上是不是更容易操作和友好,1panel每个服务都要单独设置端口,挺麻烦~假如有空出一期简直太爽

    • @milaone
      @milaone  5 หลายเดือนก่อน

      还真不知道,我晚上看看,多谢兄弟

    • @milaone
      @milaone  5 หลายเดือนก่อน

      今天看了1panel,就是类似宝塔面板哈,你说打算怎么配合呢

    • @samwillun
      @samwillun 5 หลายเดือนก่อน

      我也研究了,主要这个面板还是以Docker为主,而且特别吃内存,我果断放弃,还是使用国际版宝塔然后自定义去装web环境跟缓存@@milaone

  • @xdd1709
    @xdd1709 5 หลายเดือนก่อน

    请问一下你用的 openwrt是自己编译的还是别人编译好的?有相关文章吗?

    • @milaone
      @milaone  5 หลายเดือนก่อน

      我自己编译的,尽量别用现成的,坑太多,不着急的话我下期视频可以安排,哈哈哈

    • @xdd1709
      @xdd1709 5 หลายเดือนก่อน

      那就太感谢你了 @@milaone

    • @milaone
      @milaone  5 หลายเดือนก่อน

      @jianxiongsu7026 没事近期我安排上

  • @redroverm2295
    @redroverm2295 28 วันที่ผ่านมา

    这个反代服务器是可以设置在内网的任意机器上吗,还是要设置在op主路由上?

    • @milaone
      @milaone  28 วันที่ผ่านมา

      看你自己方便,哪里都可以,主要是得具备443端口的位置,有公网ip还得有端口,就可以

  • @user-kz2mn2ko3g
    @user-kz2mn2ko3g 2 หลายเดือนก่อน

    UP,请问一下用NPM申请的证书,存放路径在哪里找?

    • @milaone
      @milaone  2 หลายเดือนก่อน

      - ./letsencrypt:/etc/letsencrypt
      配置文件中这行应该是证书的映射目录,右边是容器里的目录,左边是你本地主机的目录,根据你的配置文件,到相应的目录找就可以

    • @user-kz2mn2ko3g
      @user-kz2mn2ko3g 2 หลายเดือนก่อน

      @@milaone 感谢

  • @user-fz8iw6yb7z
    @user-fz8iw6yb7z หลายเดือนก่อน

    老师按你说的方法成功部署了。但是还有个问题,就是比如你视频里就是把路由当服务器,在docker里部署的服务。当我在拉取镜像会很难。我的想法是既然慢我就让这个路由器有访问外网的能力。我把他的网管指向了我其他的有外网能力的旁路由。发现通过域名就不能访问了。我想这样既然不想。我就网关还是用原来的,我在他本机上直接使用工具访问外网。发现还是和上面一样。怎么都不能访问部署在这上面的服务,但访问其他所有网站都正常。包括外网。这种不就不知道问题出在哪里。不知道您听明白我的意思不

    • @milaone
      @milaone  หลายเดือนก่อน

      基本明白了,你docker的主机其实是个内网路由,也想用它干活,但是在内网里跳来跳去给整复杂了,你具体设备我没了解啊,其实我理解,如果你用旁路由系统的话,一般主路由就别openwrt了,浪费了,主路由随便弄个接入设备就得了,说白了就起个拨号作用了,旁路由的话用openwrt,然后再dokcer,这样你主路由把端口做一下映射,需要用的端口映射给旁路由就好了,这样理的清楚。少跳了。效率也高

    • @user-fz8iw6yb7z
      @user-fz8iw6yb7z หลายเดือนก่อน

      像你视频演示这样你openwrt就是旁路由。你有个主路由端口转发这个旁路由的。你这个旁路由拉取镜像可以魔法吗?

    • @user-fz8iw6yb7z
      @user-fz8iw6yb7z หลายเดือนก่อน

      我就是这个旁路由op在使用魔法的时候。其他设备就不能通过域名访问这上面的服务了。如果不魔法。就和你视频讲的一样的效果

    • @milaone
      @milaone  หลายเดือนก่อน

      主路由网管指向旁路由?那你让旁路由出公网不又指向主路由了吗,这不跑圈了吗

    • @milaone
      @milaone  หลายเดือนก่อน

      @user-fz8iw6yb7z这就是我一直不推荐旁路由的原因,有了问题都不好查,内网跳来跳去,又乱还浪费资源

  • @xiaojianzhai5911
    @xiaojianzhai5911 3 หลายเดือนก่อน

    一直报internal error,应该怎么解决,大佬

    • @milaone
      @milaone  3 หลายเดือนก่อน

      具体得看错误日志啊

  • @user-eu6zi2yc5k
    @user-eu6zi2yc5k 2 หลายเดือนก่อน

    请教一下大佬群晖6690备份端口怎么反代呢?

    • @milaone
      @milaone  2 หลายเดือนก่อน

      你说的怎么反代是说具体怎么操作吗,指向群晖的ip:6690端口,需要证书再选上证书,不知我理解的是这意思吗

    • @user-eu6zi2yc5k
      @user-eu6zi2yc5k 2 หลายเดือนก่อน

      @@milaone 意外的惊喜,感谢回复,群晖6690备份端口应该是tcp协议,pc端synology drive登陆就是用的6690,手机端drive用的http5000端口,域名反代5000

    • @user-eu6zi2yc5k
      @user-eu6zi2yc5k 2 หลายเดือนก่อน

      @@milaone 我看到npm里有设置tcp代理,但是只能配置本机端口,局域网的其他群晖6690tcp就无法代理了

  • @user-mh3ms3mh6r
    @user-mh3ms3mh6r หลายเดือนก่อน

    joplin本地存储反带一直没成功,我觉得我的compose部署的Docker应该没问题啊

    • @user-mh3ms3mh6r
      @user-mh3ms3mh6r หลายเดือนก่อน

      joplin本地部署本地服务器的compose里面让写https的域名,正常vps的代理的域名写上没问题因为有443,但是本地npm反带的我用的是50443填上去就不行。

    • @user-mh3ms3mh6r
      @user-mh3ms3mh6r หลายเดือนก่อน

      大佬证书可以搞成通配的,然后你就不用管了,到日子他自己就更新新的证书

    • @milaone
      @milaone  หลายเดือนก่อน

      对的可以通配的

  • @miao9592
    @miao9592 5 หลายเดือนก่อน

    nginx proxy manager我用着无法自动更新ssl证书,已经失败两次了,现在我用caddy2,写个配置文件就行了,也麻烦不了多少😂

    • @milaone
      @milaone  5 หลายเดือนก่อน

      我有一次也在出现过不能自动续签,拖了好久重装了以后好了

    • @星峰
      @星峰 5 หลายเดือนก่อน

      那我还是继续用续签证书另外跑程序好了,我现在是把证书上传进去npm,再把证书映射到docker里面,这样只要物理机更新证书即可 @@milaone

    • @user-mh3ms3mh6r
      @user-mh3ms3mh6r หลายเดือนก่อน

      我测试过几个域名,阿里的域名通配ssl证书用了两年多了最稳定一直自己更新

  • @jackynet7862
    @jackynet7862 หลายเดือนก่อน

    这个不支持通配符吗? 每一个二级域名都需要单独申请一个证书吗?

    • @milaone
      @milaone  หลายเดือนก่อน

      这个支持

    • @jackynet7862
      @jackynet7862 หลายเดือนก่อน

      @@milaone 好的 感谢回复

    • @jackynet7862
      @jackynet7862 หลายเดือนก่อน

      @@milaone 另外再问一下up主 这个npm和国产大佬的lucky 哪个更好用?

    • @milaone
      @milaone  หลายเดือนก่อน

      我没听说过你说的大佬的,没用过,你可以看我另一个视频cloudflare tunnel的,作用一样,省个vps直接自带证书

    • @jackynet7862
      @jackynet7862 หลายเดือนก่อน

      @@milaone 好的 感谢

  • @user-xiaochen
    @user-xiaochen 3 หลายเดือนก่อน

    aria2 怎么反代https,我反代了之后web-ui就无法认证。

    • @milaone
      @milaone  3 หลายเดือนก่อน

      先把https的证书申请了,再把通讯规则的策略设置了,目标就填你aria2的地址和端口,通信规则里选你设置的策略

    • @user-xiaochen
      @user-xiaochen 3 หลายเดือนก่อน

      @@milaone 通讯规则没有设置,现在是空的,应该如何设置,aria2的设置好像和其他的容器都有区别。

    • @milaone
      @milaone  3 หลายเดือนก่อน

      @user-xiaochen 不会有区别吧,通讯规则你点进去就是一组用户名密码,你不是要用认证吗?哦你是说你自己的aria2认证不了吗?那你确认你的http用同样的用户密码可以过吗

    • @user-xiaochen
      @user-xiaochen 3 หลายเดือนก่อน

      @@milaone 嗯 就是认证过不了,http可以 https不行

  • @andersonthomas
    @andersonthomas 5 หลายเดือนก่อน

    使用域名+端口的方式访问网站,感觉总是不方便啊,能否不要端口?

    • @milaone
      @milaone  5 หลายเดือนก่อน

      那就得看你本地运营商80和443封没,封的话没法,人家是在链路层就给封了

    • @andersonthomas
      @andersonthomas 5 หลายเดือนก่อน

      @@milaone 那确实没有办法了,没有443端口

    • @milaone
      @milaone  5 หลายเดือนก่อน

      @andersonthomas 嗯或者我可以帮你转发,我有富裕的vps专门转发用

    • @andersonthomas
      @andersonthomas 5 หลายเดือนก่อน

      @@milaone 您的意思是我的域名解析到您的VPS IP,然后您帮我转发到我自己的VPS上去吗?这样的话我网站域名的证书是在哪里申请呢?如果我用npm进行申请证书的话

    • @milaone
      @milaone  5 หลายเดือนก่อน

      我那个vps只有一个npm证书我这申请,你就给我一个目标地址加端口,你自己啥时找到解决方案啥时迁走,没事

  • @user-cu9yy4bz6t
    @user-cu9yy4bz6t 4 วันที่ผ่านมา

    还是得开放端口转发,不然外网访问不了

    • @milaone
      @milaone  4 วันที่ผ่านมา

      可以开端口,也可以看我另外两个视频都是不开端口的做法,一个zerotier的虚拟网络,还一个是cloudflare的tunnel。都可以,也都很方便

    • @user-cu9yy4bz6t
      @user-cu9yy4bz6t 4 วันที่ผ่านมา

      @@milaone好的 感谢

  • @user-ty4mr1ku1z
    @user-ty4mr1ku1z 6 หลายเดือนก่อน

    端口映射没说怎么操作

    • @milaone
      @milaone  6 หลายเดือนก่อน +1

      端口转发的话如果用在内外网这里用处不大吧?你首先要在路由器做端口转发,难道要先转到npm上,再通过npm再转发?对吧?
      好说下操作,例如把npm的入站82端口转发到192.168.1.2:5000
      再建立docker容器时就要添加一个82端口比如 882:82
      添加端口转发,然后入站端口指的是容器内的端口82,转发主机是192.168.1.2,转发端口是5000,然后tcp udp,根据你需要的,保存,这里使用时需要使用容器外部的882端口入站,比如192.168.1.1:882这样不出意外你应该访问的就是192.168.1.2:5000了。

    • @youtangao9104
      @youtangao9104 3 หลายเดือนก่อน

      我外网访问,家里设备,npm有用吗?端口转发总弄错

    • @milaone
      @milaone  3 หลายเดือนก่อน

      有用,就是弄明白了哪个端口对着哪个端口就错不了了,拿纸画

  • @peifeng
    @peifeng 6 หลายเดือนก่อน

    你们是没443才用这个,我是有端口也用,因为好管理和证书

    • @milaone
      @milaone  6 หลายเดือนก่อน

      有端口就更好用了

  • @liron4954
    @liron4954 3 หลายเดือนก่อน

    ipv6解析的 证书一直出错,应该是不支持吧

    • @milaone
      @milaone  3 หลายเดือนก่อน

      还真没试过,你去官方文档搜搜

    • @liron4954
      @liron4954 3 หลายเดือนก่อน

      可以了,ipv6可以的,我关了了warp就行了,谢谢@@milaone

  • @andy-nq4dk
    @andy-nq4dk 6 หลายเดือนก่อน

    现在都是内网了,猫都没有公网ip

    • @milaone
      @milaone  6 หลายเดือนก่อน

      也可以申请吧

    • @mindethereal6627
      @mindethereal6627 5 หลายเดือนก่อน +3

      @@milaone 作为新疆人,实话给主播说:新疆申请个人公网是万万不可能的, 我手机都不敢翻墙,因为我怕,谢谢主播知识的分享, 请问:我想将家里的机器做成WEB服务器,同时可以远程管理共享桌面操作, 因为我准备今年出新疆去内地山村里居住,想买Mac mini 放在家里随身就带一个ipad远程访问家里的机器,剪接视频等等,请问;这样的需求怎么弄呢!是不是要买一个vps服务器 1核 1g的内存,500G 流量 够不够,香港的机房 ,谢谢 请主播 给一个建议

    • @milaone
      @milaone  5 หลายเดือนก่อน

      不用这么麻烦吧,你这需求就别考虑web了,你就先把远程桌面解决了不就得了,花生壳就可以吧

  • @andyyin1789
    @andyyin1789 6 หลายเดือนก่อน

    没啥用,不如用nps的域名服务,域名直接映射到内网机器,换公网IP都没事

    • @milaone
      @milaone  6 หลายเดือนก่อน

      他俩不是一个事,呵呵

  • @Ing-wen
    @Ing-wen 6 หลายเดือนก่อน

    这种方式还是用不了80端口啊

    • @milaone
      @milaone  6 หลายเดือนก่อน

      对80端口是链路层封的,用不了,这样可以申请证书了省的拷贝证书

    • @Ing-wen
      @Ing-wen 6 หลายเดือนก่อน

      @@milaone我觉得像neutrino-proxy 这种方案可能才是最佳实践

    • @milaone
      @milaone  6 หลายเดือนก่อน

      中微子哈,他有点像frp的p2p模式,这种肯定是服务器中转,如果干脆没了公网ip,frp的p2p和中微子这个无疑是很好的选择。我一直在寻找一个类似这种架构的,比如访问公网的80端口然后通过p2p的模式直接从国内的家庭内网拿数据,这才是最漂亮的架构,但是具体开发也不懂,不知道是不是不好实现,现在国内别说80端口了,很多城市连公网ip都不好要了。

    • @Ing-wen
      @Ing-wen 6 หลายเดือนก่อน

      @@milaone frp主要是没有好的GUI,如果有的话也是极好的

    • @milaone
      @milaone  6 หลายเดือนก่อน

      @Ing-wen 嗯,没错都是命令行不直观,但是好在简单易懂就几个模式,几个个协议,一次部署了不用动了,配合免费的oracle

  • @user-fz8iw6yb7z
    @user-fz8iw6yb7z หลายเดือนก่อน

    你这个是不是自己本地就有公网ip?

    • @milaone
      @milaone  หลายเดือนก่อน

      有最好,没有的话您可以看我还有一期视频zerotier的,那个可以

    • @user-fz8iw6yb7z
      @user-fz8iw6yb7z หลายเดือนก่อน

      @@milaone 你一提醒我发现我也是公网ip...还是几年前申请的。都搞忘了

    • @milaone
      @milaone  หลายเดือนก่อน

      @user-fz8iw6yb7z 哈哈哈😂

  • @redking777
    @redking777 5 หลายเดือนก่อน

    docker安装老是报错

    • @milaone
      @milaone  5 หลายเดือนก่อน

      报啥错,贴出来,帮你看看

    • @redking777
      @redking777 5 หลายเดือนก่อน

      @@milaone failed to register layer: no space left on device 提示空间不够,我实际是有的哈。chishin/nginx-proxy-manager-zh 把原docker-compose.yml改掉就是中文了吧。还有老师怎么支持IPV6啊Nginx Proxy Manager

    • @milaone
      @milaone  5 หลายเดือนก่อน

      哦,你是首次使用docker需要通过挂在点把省区空间挂在到docker上,先去docker info,查看根目录信息,然后把你空余的空间挂在到根目录上,才能使用你的空间。再安装就应该可以了

    • @redking777
      @redking777 5 หลายเดือนก่อน

      @@milaone 唉看了一下这确实就是空间不够。这个反代服务占的空间太大了我的小鸡跑不起来,和服务商要求加硬盘就跑起来了。

    • @milaone
      @milaone  5 หลายเดือนก่อน

      咋这么小?一般机器5个g总有了吧