【Docker魔法系列】NPM与XUI共存!Nginx Proxy Manager搭配X-UI实现Vless+WS+TLS 教程!

Docker用户的福音 = =

本博客用什么VPS?创作不易,欢迎请咕咕喝杯咖啡☕☕☕

之前分享过搭建可以与宝塔共存的一个“魔法”服务器状态监控应用——xui,支持Vmess+WS+TLS。

最近Docker视频出的比较多,前阵子又出现了宝塔国内版存在隐私泄露的问题,很多小伙伴其实都不用宝塔了,那么,在我们现在装了Nginx Proxy Manager(NPM)的环境下,80443端口都转由NPM来管理了,可以让XUI和NPM共存吗?如何用NPM来反代XUI呢?今天我们就来折腾一下!

1. 搭建环境

2. 搭建视频

YouTube:https://youtu.be/aYC4BTzbw8c

3. 搭建方式

3.1 服务器初始设置

服务器初始设置,参考

新买了一台服务器“必须”要做的6件小事

【Docker系列】不用宝塔面板,小白一样可以玩转VPS服务器!

3.2 下载xui

新版(支持功能更多):

bash <(curl -Ls https://raw.githubusercontent.com/FranzKafkaYu/x-ui/master/install.sh)

GitHub地址:https://github.com/FranzKafkaYu/x-ui

旧版:

bash <(curl -Ls https://raw.githubusercontent.com/vaxilu/x-ui/master/install.sh)

根据提示设置端口信息用户名密码

3.3 登陆xui面板并配置

image-20220519173838476

切换最新版本:

image-20220519173900021

修改面板路径:

image-20220519173916580

记得保存配置

添加入站列表:

image-20220519174016372

如果配置,只需要修改4个地方:

image-20220519174141370

点击添加,之后点击重启面板

image-20220519174237766

3.4 NPM配置

2022-12-15更新简单方法

无需手动进入目录修改,只需要在面版即可操作!

选择任意一个NPM代理上,分别在下面两个位置填入下面两个部分内容:

image-20221215182225687

代替了旧方法中的:

  location ^~ /fuckgfw {              #fuckgfw换成你前面设置的面板的url根路径
      proxy_pass http://158.101.3.171:54331/fuckgfw;  # IP填服务器IP,这边不能填127.0.0.1,因为是在容器里,54331换成你xui面板的端口
      proxy_set_header Host $host;
      proxy_set_header X-Real-IP $remote_addr;
      proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
  }

image-20221215182244204

  location /plogger {                 # plogger填你前面设置的ws的路径
          proxy_redirect off;
          proxy_pass http://158.101.3.171:13997;    # IP填服务器IP,这边不能填127.0.0.1,因为是在容器里,13997换成你入站规则那边的IP
          proxy_http_version 1.1;
          proxy_set_header Upgrade $http_upgrade;
          proxy_set_header Connection "upgrade";
          proxy_set_header Host $http_host;
          proxy_read_timeout 300s;
          # Show realip in v2ray access.log
          proxy_set_header X-Real-IP $remote_addr;
          proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
  }

保存即可!


以下为旧方法,不建议采用

登陆服务器,来到NPM的安装路径下(这边假设大家都是用【Docker系列】一个反向代理神器——Nginx Proxy Manager这篇文章的方法搭建的):

cd /root/data/docker_data/npm

查看当前文件:

ls -al

image-20220519174804818

我们的文件都在data目录下,一层一层找,找到我们的Nginx配置文件。

cd data/nginx/proxy_host

image-20220519175123930

可以看到两个文件(如果你NPM反代多的话,可能有很多个)

这边比较讨厌,是数字命名的,其实我们随便选一个也行。

image-20220519175343318
image-20220519175542303


以上为旧方法,不建议采用。

在上述位置加入以下内容:

  location ^~ /fuckgfw {              #fuckgfw换成你前面设置的面板的url根路径
      proxy_pass http://158.101.3.171:54331/fuckgfw;  # IP填服务器IP,这边不能填127.0.0.1,因为是在容器里,54331换成你xui面板的端口
      proxy_set_header Host $host;
      proxy_set_header X-Real-IP $remote_addr;
      proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
  }
  location /plogger {                 # plogger填你前面设置的ws的路径
          proxy_redirect off;
          proxy_pass http://158.101.3.171:13997;    # IP填服务器IP,这边不能填127.0.0.1,因为是在容器里,13997换成你入站规则那边的IP
          proxy_http_version 1.1;
          proxy_set_header Upgrade $http_upgrade;
          proxy_set_header Connection "upgrade";
          proxy_set_header Host $http_host;
          proxy_read_timeout 300s;
          # Show realip in v2ray access.log
          proxy_set_header X-Real-IP $remote_addr;
          proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
  }

保存后,重启一下NPM。

cd /root/data/docker_data/npm    # 来到docker-compose.yml所在的文件夹下

docker-compose restart  # 重启

4. 客户端连接

以小火煎为例子,其他客户端类似:

点击打开二维码:

image-20220519180233466
image-20220519180412072
image-20220519180510046
image-20220519180554086

完整配置参考:

image-20220519180630504
image-20220519180644375

启动节点:

image-20220519180728131

浏览器输入https://ip.skk.moe/

image-20220519180831650

搞定!

5. 注意事项(重要)

由于我们是直接修改的配置文件,所以,在反代的这个站点,不用轻易在NPM后台面板上修改原来的配置(比如打开,然后点确定),这样会破坏掉我们这边写的Nginx配置文件,导致节点无法正常使用。

---------------
如何觉得文章内容不错,欢迎点击一下广告,支持一下咕咕😍😍😍

原创文章,作者:Roy,如若转载,请注明出处:https://iwanlab.com/npm-xui/

(4)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
Roy的头像Roy
上一篇 2023年6月15日 下午7:24
下一篇 2023年6月15日 下午7:24

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注

评论列表(18条)

  • dogecoin
    dogecoin 2024年3月25日 下午1:10

    FranzKafkaYu/xui也有对应的docker版本,enwaiax/x-ui:alpha-zh这个镜像,不是latest。只是直接http://ip:54321不能直接访问,需要先反代一下,其余一摸一样

  • swysgh
    swysgh 2024年3月3日 上午12:26

    按照教程添加后直接offline,配置文件直接消失,删除后恢复正常,不知道原因

    • Roy的头像
      Roy 2024年3月4日 上午10:33

      @swysgh看下是不是哪里填错了

    • occ
      occ 2024年3月19日 上午1:25

      @swysgh遇到了一样的问题,请问解决了吗?

    • eddy
      eddy 2024年3月28日 下午6:35

      @swysgh我也遇到一样的问题,面板上设置Custom locations,就会显示offline。删除了就变成在线。用不了

    • Roy的头像
      Roy 2024年3月29日 上午8:51

      @eddy我也发现了,新版NPM问题。这个可以不用改,只改后面advanced部分,这部分只是为了反代面板登录页面的,影响不大

  • zszx
    zszx 2023年9月28日 上午11:25

    电脑上可以用,手机小火煎一直超时

    • Roy的头像
      Roy 2023年10月8日 上午10:41

      @zszx看看是不是tls没打开。btw,现在推荐用reality协议,tls这个会有被识别的风险

  • zszx
    zszx 2023年9月28日 上午11:08

    请问大佬,这个可以结合优选ip使用吗?或者有结合优选ip的方案吗?

    • Roy的头像
      Roy 2023年10月8日 上午10:42

      @zszx应该可以,但是我没尝试过 = =

  • 霸小伟
    霸小伟 2023年8月18日 下午7:22

    npm创建的时候 可以用hots模式 与主机共用网络 配置中就可以直接127.0.0.1 还有 没太懂 location ^~ /fuckgfw 添加面板的根路径是有什么作用?

    • Roy的头像
      Roy 2023年8月19日 下午4:13

      @霸小伟这样的话面板就可以输入域名访问了,不需要再输入端口啥了

    • 霸小伟
      霸小伟 2023年8月19日 下午11:52

      @Roy后来想到了

  • 大表哥
    大表哥 2023年8月9日 下午6:46

    你好,如果我想在xui里添加多个入站,节点路径名都用同一个还是可以使用不同的路径名呢?

    • Roy的头像
      Roy 2023年8月10日 上午8:35

      @大表哥看是用什么搭,用不一样的就好

    • 大表哥
      大表哥 2023年8月12日 下午4:18

      @Roy就是xui和npm共存的那种,但是如果用不一样的话,npm的advanced选项下,ws的路径怎么办呢?

  • Jae
    Jae 2023年6月24日 下午6:01

    你好,我按上面的设置了,小火箭测试连通是可以的,但是访问网站都是无网络,请问遇到过这个问题吗。

    • 我不是咕咕鸽的头像
      Roy 2023年6月24日 下午6:04

      @Jae小火煎tls打开