X-ui配合宝塔nginx实现Nginx反代实现 v2-ui 面板和网站共存

X-ui单独设置Xray非常好用,但如果你的服务器上也安装了web server,如nginx,就会比较麻烦,因为Xray和nginx只能二选一监听443端口。当然,你也可以选择让Xray监听非标准HTTPS端口,但这又会造成Xray的流量看起来不像正常的流量的后果,因为几乎没有正常的站点会使用非标准HTTPS端口。

正规的做法应该是让Xray使用websocks(ws 下同)传输,监听本地端口,nginx反代此端口,这样就不会造成443端口冲突了,你的webserver也可以正常使用。

下面把这个流程简单说一遍。

1 安装宝塔

2 安装X-ui

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

如果提示curl命令不存在,你需要安装一下

apt update && apt install curl -y   #( debian或ubuntu)
yum update && yum install curl -y   #(centos)

注意如果先前已经安装了Xray,安装X-ui会重置Xray的配置文件,如果需要请备份一下配置文件

cp /etc/Xray/config.json /etc/Xray/config.json.bak

再执行安装命令;注意安装了宝塔之后X-ui的54321端口会被防火墙封禁,要去bt后台放行此端口。

3 宝塔添加站点 (注意你还需要做好域名解析)

4 为站点申请SSL证书

5 X-ui设置

1.更改管理用户名及密码

2.更改X-ui管理后缀

注意更改根路径后需要重启面板

3. 新建用户

这里只需要更改一项,把传输配置更改为ws即可!路径可自定义,不必和我的一样;监听IP默认为0.0.0.0 可改可不改,更改为127.0.0.1即只允许nginx反代而不允许直接连接。

6.nginx设置

在站点配置文件适当位置添加如下配置项

location ^~ /X-ui/ {
  proxy_pass http://127.0.0.1:54321/X-ui/;
  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 /ions {
  proxy_redirect off;
  proxy_pass http://127.0.0.1:53964;
  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 Xray access.log
  proxy_set_header X-Real-IP $remote_addr;
  proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
  }
注意 /X-ui前面需要加 ^~ 设置为正则匹配,要不会和宝塔默认的js缓存规则冲突导致X-ui后台js文件全部404,后台一片空白。

设置完毕以后,在宝塔面板里面重载配置,然后重新启动 Nginx,配置生效。

至此,你可以使用 https://ip/X-ui/  来访问你的 Xray 管理面板了。

后续

注意:这样设置会使X-ui后台的二维码和分享链接无法直接使用,导入后必须手动服务器地址为你的域名或者IP更改端口为443开启TLS并填入你的域名及path

后续可以通过IP:54321/pathhttps://域名/path 访问X-ui后台,建议可以把54321端口用防火墙封禁掉只通过域名HTTPS访问。

发表评论

您的电子邮箱地址不会被公开。