NPM反向代理保姆级教程-全平台理论通用

NPM反向代理保姆级教程-全平台理论通用

准备工作:

  • 良好的心态,充足的时间。:stuck_out_tongue:
  • 注册购买域名(这里的步骤不再赘述,自行百度。)
  • 对自己的设备和系统有一定了解
  • 有基本的docker和Linux知识。(不会就照抄)
  • 出问题先学会百度,谷歌~
  • 总体流程 流程图

教程开始:

简单来说,在步骤A里做好*解析,在步骤B里做好ddns-go的@解析,在步骤D里做好路由器上4443的映射,然后就没他们啥事了。以后添加任何反代都是在步骤C,也就是npm的web界面里添加设置反代就行了。多个反代可以用同一个泛域名证书,不需要重复申请,到期之前续一下证书就可以了 [task]为了示范更清楚 ,下面所有教程,假设我的一级域名是123456.xyz[/task]

A.域名上的设置

  • 阿里云为例,阿里云域名解析设置 解析设置 解析设置1

  • 泛域名需要添加*这个记录,记录类型选CNAME,注意别选错选项 记录1
[task]获取key和key secert,后面需要这个[/task] - 获取解析需要的钥匙 步骤钥匙1 - 使用子账户较为安全 钥匙步骤2 - 创建用户 创建用户 - 创建页面 创建页面 - 会有个安全验证,自己验证一下就行了 - 验证完成后就有key和secert了,记得点右边的复制保存好,或者下载CSV文件保存 - 成功页面 成功页面 [warning]重点是ID和secert,在步骤B和C都要用到[/warning]

B.动态域名解析(固定ip可跳过此步骤)

  • ps:此教程为群友家宽环境而写的教程,家宽一般获取到的都是动态公网ip。如何获取也请移步百度。
  • docker安装(根据自己设备平台参考)
docker run -d \
--name ddns \
--restart=always \
--net=host \
-v /mnt/18A/docker/ddns:/root \
jeessy/ddns-go
  • 上面是我自己用的指令,可以参考着改,也可以去dockerhub上看具体教程 ddns-go

  • 安装后打开10.0.0.10:9876。 这个10.0.0.10记得改成自己装npm设备的内网ip 把上面保存的ID和secert都粘贴进去 ddns

[buy]有公网V4的,就在V4那勾选。添加@.xxxxxx.xyz。V6同理。[/buy] [buy]上面假设了我的域名是123456.xyz,那这里添加的是@.123456.xyz,记得点save。[/buy] [buy]到这一步你会发现A里面域名的解析设置里多了两条@的解析,步骤A没让添加是因为这一步里添加就完事了。[/buy]


C.NPM的安装和设置反代

复制命令粘贴
docker run -d \
--name NPM \
--restart=always \
-e UID=1000 \
-e GID=1000 \
-v /mnt/18A/docker/NPM:/config \
-p 8181:8181 -p 1880:8080 -p4443:4443 \
jlesage/nginx-proxy-manager:latest
同样上面是我自己用的指令,可以参考着改,也可以去dockerhub上看具体教程 链接直达npm - 访问用8181端口访问,第一个8181可改,改成啥就用啥去访问。对技术没把握的话所有端口都不建议改,先抄完作业再去改作业。 - 安装后打开10.0.0.10:8181。这个10.0.0.10记得改成自己装npm设备的内网ip。 - 初始默认邮箱:admin@example.com 初始默认密码:changeme 进去后会让你自己设置新的邮箱和密码 初始 生成证书: 证书 证书1
  • *.123456.xyz ps:123456.xyz千万记得把123456.xyz改为自己的域名 开始生成证书,对魔法没要求,失败的话多试试,生成需要时间
  • 添加需要反代的网址 地址
  • ps:假如我要用em.123456.xyz,反代我内网的emby,内网emby的访问地址是http://10.0.0.10:8096, 那上面第一个填写em.123456.xyz, 下一行三个分别写 http,10.0.0.10,8096
  • 这个123456.xyz,10.0.0.10记得改为自己的啊
  • 记得别保存,再点击上面的SSL,因为还需要设置证书 设置证书 [buy]设置好后点save。 NPM设置完成[/buy] npmok

  • 注意到期时间,到期之前点击renew now更新证书就行了 [buy]需要反代多个容器什么的比如qb,tr就在NPM的Dashboard里proxy hosts里add proxy host添加多个,注意二级域名不能一样。可以用同一个泛域名证书,不需要重复申请 内网的其他ip也可以反代,不是只能反代装npm的ip[/buy]


D.最后一步

在路由器里设置端口映射

  • 走https也就是反代的设置如下 家宽应该是封了443端口的,可以用其他不冲突的端口,映射到装npm设备的内网ip,内部端口为4443(上面docker装NPM的时候如果把4443端口改了,这里记得跟着改,没改端口的忽视这句话)

  • 比如外网17000(可任意改用不冲突的)映射到10.0.0.10的4443端口,外网访问用https://em.123456.xyz:17000 来访问上一步示范的emby

  • 在这里还有一个小技巧,再把外网443也映射给npm的4443,在内网即可直接用NPM设置里的二级域名访问,不需要加端口(也就是https://em.123456.xyz直接访问示范的emby) wan

  • 教程结束 随时修正教程,折腾有风险,入坑需谨慎。本人对教程导致的所有不良后果免责,请知悉。仅供学习交流参考。 有不完善的欢迎随时补充,不懂的可以加群问。群里大佬卧虎藏龙。 QQ群:945980097 本文来源群友共同努力探讨原创!转载请注意礼节。 QQ群