X-ui是一个可视化Xray管理面板,带流量统计功能,非常适合一台服务器多人共用的情形下使用,并且其默认屏蔽了BT,起到了一定的防范个别用户乱搞导致版权投诉的问题。
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.更改管理用户名及密码
1661250733284.jpg
2.更改X-ui管理后缀
267}AFKQ@~HFIIRF[TRJ1EK.png
注意更改根路径后需要重启面板
3.新建用户
(T_L)Q@9KJG}HH(FE{@7WH3.png
这里只需要更改一项,把传输配置更改为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;
  }

@OC5@V8VQ$VFZ`OZ)0_(M)T.png
注意 /X-ui前面需要加 ^~ 设置为正则匹配,要不会和宝塔默认的js缓存规则冲突导致X-ui后台js文件全部404,后台一片空白。

后续
注意这样设置会使X-ui后台的二维码和分享链接无法直接使用,导入后必须手动服务器地址为你的域名或者IP,更改端口为443,开启TLS并填入你的域名及path。
后续可以通过IP:54321/path 或 https://域名/path 访问X-ui后台,建议可以把54321端口用防火墙封禁掉只通过域名HTTPS访问。