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

发布于 2022-05-02  296 次阅读


准备工作:

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

教程开始:

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

为了示范更清楚 ,下面所有教程,假设我的一级域名是123456.xyz

A.域名上的设置

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

  • 泛域名需要添加*这个记录,记录类型选CNAME,注意别选错选项
    记录1

获取key和key secert,后面需要这个

- 获取解析需要的钥匙
步骤钥匙1
- 使用子账户较为安全
钥匙步骤2
- 创建用户
创建用户
- 创建页面
创建页面
- 会有个安全验证,自己验证一下就行了
- 验证完成后就有key和secert了,记得点右边的复制保存好,或者下载CSV文件保存
- 成功页面
成功页面

重点是ID和secert,在步骤B和C都要用到

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

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

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。
- 初始默认邮箱:[email protected]
初始默认密码: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,因为还需要设置证书
    设置证书

    设置好后点save。
    NPM设置完成

    npmok

  • 注意到期时间,到期之前点击renew now更新证书就行了

    需要反代多个容器什么的比如qb,tr就在NPM的Dashboard里proxy hosts里add proxy host添加多个,注意二级域名不能一样。可以用同一个泛域名证书,不需要重复申请
    内网的其他ip也可以反代,不是只能反代装npm的ip


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群