侧边栏壁纸
博主头像
高压锅里的小白 博主等级

行动起来,活在当下

  • 累计撰写 65 篇文章
  • 累计创建 26 个标签
  • 累计收到 0 条评论

目 录CONTENT

文章目录

Docker安装配置x-ui面板

高压锅里的小白
2024-03-31 / 0 评论 / 0 点赞 / 74 阅读 / 0 字
温馨提示:
本文最后更新于2024-04-01,若内容或图片失效,请留言反馈。 部分素材来自网络,若不小心影响到您的利益,请联系我们删除。

项目简介

​ ​ x-ui是一个基于xray-core为核心的图形化代理搭建工具,前端使用Vue框架,后端使用Golang编写。
​ ​ 它的目的是为了帮助各位更好地去搭建属于自己的代理服务,并且能够通过Telegram bot进行便捷地监控与管理。

​ ​ 简单来说,X-UI就是一个搭建代理的神器,你不需要关注底层配置文件应该怎么写,只要简单的在网页上按部就班的输入一些信息即可,极大的降低了用户的上手难度。

x-ui主要包含以下功能

  • 系统状态监控
  • 支持单端口多用户、多协议,网页可视化操作
  • 支持的协议:vmess、vless、trojan、shadowsocks、shadowsocks 2022、dokodemo-door、socks、http
  • 支持配置更多传输配置:http、tcp、ws、grpc、kcp、quic
  • 流量统计,限制流量,限制到期时间,一键重置与设备监控
  • 可自定义 xray 配置模板
  • 支持 https 访问面板(自备域名 + ssl 证书)
  • 支持一键SSL证书申请且自动续签
  • Telegram bot通知、控制功能
  • 更多高级配置项,详见面板

具体使用、配置细节以及问题排查请查看官方wiki:wiki

安装环境

工具 版本
系统 CentOS 7
Docker 25.0.4
Docker-Compose 2.24.7
x-ui FranzKafkaYu/x-ui:0.3.4.4

由于原版vaxilu/x-ui已经已经停止更新,这里使用了FranzKafkaYu的版本,GitHub地址:FranzKafkaYu/x-ui

安装步骤

安装Docker

具体安装步骤见:Docker安装教程

安装docker-compose

具体安装步骤见:Docker-Compose安装教程

安装x-ui

新建目录

mkdir -p /你的路径/x-ui/data/db /你的路径/x-ui/data/cert

编写docker-compose.yml文件

在x-ui目录下新建docker-compose.yml文件,并填写以下内容

version: "3.9"
services:
  xui:
    # 镜像tag使用alpha-zh表示是FranzKafkaYu的镜像,如果需要英文,则使用enwaiax/x-ui:alpha
    image: enwaiax/x-ui:alpha-zh
    container_name: xui
    # 映射的本地路径,左侧为自己的实际路径,按实际情况填写即可
    volumes:
      # 数据库文件路径
      - $PWD/data/db/:/etc/x-ui/
      # 密钥文件路径
      - $PWD/data/cert/:/root/cert/
      # 时区文件(非必须)
      - /etc/localtime:/etc/localtime:ro
    # 重启策略。如果容器退出,Docker将自动重启它,除非手动停止它
    restart: unless-stopped
    # 将使用宿主机网络
    network_mode: host

启动容器

在docker-compose.yml文件所在目录下执行

docker-compose up -d

至此x-ui就安装好了

配置Nginx(非必须)

如果想通过Nginx代理的话,则需要如下配置

修改nginx.conf

修改conf/nginx.conf文件

events {
    worker_connections  1024;
}
# 非必须,若需使用Reality等协议才需要,按需配置即可
stream {
    include /etc/nginx/conf.d/*_stream.conf;
}

http {
    include       mime.types;
    default_type  application/octet-stream;
    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for"';

    sendfile        on;

    keepalive_timeout  300;

    include /etc/nginx/conf.d/*_http.conf;
}

重点是stream块下的 include /etc/nginx/conf.d/*_stream.conf;与http块下的 include /etc/nginx/conf.d/*_http.conf; 我们具体的配置都写在这个路径下的配置文件中。

新建xui_http.conf配置

在conf.d目录下新建文件xui_http.conf,该文件为x-ui的http配置,填写如下内容

server {
    # 监听443端口并复用端口
    # 如有https需求,则添加ssl
    # 由于需要与stream复用端口,所以要加reuseport,如没有这个需求可以不加
    listen       443 ssl reuseport;
    # 按需填写域名即可
    server_name  xxx.xxx.com;
    charset utf-8;
    access_log off;

    # 若listen中开启了ssl,则填写如下配置
    ssl_certificate      /证书存储路径/fullchain.cer;
    ssl_certificate_key  /证书存储路径/域名.key;
    ssl_session_cache    shared:SSL:1m;
    ssl_session_timeout  5m;
    ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
    ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;
    ssl_prefer_server_ciphers on;

    # x-ui配置,路径为面板url根路径,按实际情况填写。首次打开前可以配置为/,首次打开后生成了新的根路径再来修改配置即可。
    location /xxxx {
        # 默认面板UI端口为54321
        proxy_pass http://127.0.0.1:54321;

        proxy_http_version 1.1;
        proxy_set_header Host $host;

        sendfile on;
        keepalive_requests 25600;
        keepalive_timeout 300 300;
        proxy_buffering off;
        proxy_buffer_size 8k;

        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }   
   
    error_page   500 502 503 504 /50x.html;
    location = /50x.html {
        root   /usr/share/nginx/html;
    }
}

至此,Nginx基础配置完成,接下来就可以登录面板了

新建xui_stream.conf配置(非必须)

在conf.d目录下新建文件xui_stream.conf,该文件为x-ui的stream配置,填写如下内容(下面的是空配置,后面配置节点时,会根据协议增加详细的配置)

map $ssl_preread_server_name $sni_name {
  
}

server {
      # 复用443端口配置
      listen 443 reuseport;
  
      # 根据sni分流到不同的上游服务器
      proxy_pass $sni_name;

      # 用于获取TLS握手信息,也就是可以获取SNI的信息用于分流
      ssl_preread on;
}

登录面板

​ ​ 在安装完成且x-ui正常运行的情况下,在浏览器内输入 http://服务器IP或域名:端口进入登录页面。
默认情况下端口为 54321,登录账号为 admin,密码为 admin。

​ ​ 上述配置使用了nginx反代,所以需使用 443端口替代 54321端口。

​ ​ 在安装/更新时都会提示对账户/密码进行修改,若不修改,则为默认值或与之前设定保持一致。

​ ​ x-ui为了增强安全性,面板自0724版本增加了随机根路径功能。
如果你是初次安装,第一次登录面板后进入面板设置会自动生成根路径并重启面板。这时有了新的根路径后,记得更新nginx配置。

配置都正确后,就可以打开x-ui网页了。

文件截图

节点配置

首先,点击左侧菜单栏 入栈列表,然后再点击 添加入站

x-ui_add_inbound.png

然后下面进行具体的配置

Vless+reality+xtls-rprx-vision组合

节点配置

首先选择协议为vless,然后新建一个用户

端口根据自己需求设置即可,我这里直接用默认的,其他的选项可以根据提示自行设置。

x-ui_reality_step_1.png

图片中选项按要求设置,其他设置可以使用默认值,也可根据需求自行修改

x-ui_reality_step2.png

然后点击添加即可,之后在入站列表就可以看到新添加的节点了。

注意事项

  • 使用 xtls-rprx-vision流控需要xray core版本为 1.7.5及以上
  • 使用 reality需要xray core版本为 1.8.0及以上

Nginx配置(非必须)

使用reality需要stream配置,在xui_stream.conf中增加如下配置

map $ssl_preread_server_name $sni_name {
      # reality节点的伪装域名,要和新建节点时的可选域名一致
      addons.mozilla.org reality;
}

# 配置不同的上游服务
upstream reality {
      # 部署reality的容器的ip和监听的端口,要和新建节点时的端口一致,ip根据实际情况填写
      server 127.0.0.1:32355;
}

server {
      # 复用443端口配置
      listen 443 reuseport;
  
      # 根据sni分流到不同的上游服务器
      proxy_pass $sni_name;

      # 用于获取TLS握手信息,也就是可以获取SNI的信息用于分流
      ssl_preread on;
}

修改后,重载nginx即可生效。

客户端配置

Mac

Clash Verge(v1.5.11)

在配置文件中 proxies选项下增加如下配置

proxies:
  - name: "reality"
    type: vless
    server: 填写你实际服务器的IP或域名
    port: 使用了Nginx则填写nginx代理的端口,否则直接填写新建节点时的端口
    uuid: 填写新建user时的id
    network: tcp
    tls: true
    udp: true
    flow: xtls-rprx-vision
    servername: 填写新建节点时的可选域名 # REALITY servername
    reality-opts:
      public-key: 填写新建节点时的公钥
    client-fingerprint: chrome # 填写新建节点时的utls

然后重新加载配置文件,即可生效。

IOS

Shadowrocket(2.2.46)

进入首页点击右上角加号,按图片配置即可

reality_shadowrocket.png

保存即可使用

安卓

V2rayNG(v1.8.6)

进入首页点击顶部加号,选择扫描二维码或从剪贴板导入即可。

二维码或节点信息在x-ui面板,入站列表获取。

注:如果使用了nginx反代,扫描二维码或从剪切板导入配置后,要将端口改为nginx的端口,这两个方式导入的是节点端口。

Windows

V2rayN(V6.23)

进入首页点击服务器,选择扫描二维码或从剪贴板导入即可。

二维码或节点信息在x-ui面板,入站列表获取。

注:如果使用了nginx反代,扫描二维码或从剪切板导入配置后,要将端口改为nginx的端口,这两个方式导入的是节点端口。

0
  1. 支付宝打赏

    qrcode alipay
  2. 微信打赏

    qrcode weixin

评论区