一、安装docker和docker-compose

1. 更新系统:

sudo yum update

2.安装需要的软件包:

sudo yum install -y yum-utils device-mapper-persistent-data lvm2

3.添加Docker仓库:

sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

4.安装Docker引擎:

sudo yum install docker-ce

5.启动Docker服务:

sudo systemctl start docker

6.设置Docker自启动:

sudo systemctl enable docker

7.验证Docker是否安装成功:

sudo docker --version

8.下载Docker Compose:

sudo curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

9.添加执行权限:

sudo chmod +x /usr/local/bin/docker-compose

10.验证Docker Compose安装是否成功

sudo docker-compose --version
### 如果安装的是新版本,请使用 docker compose 命令,下面也需要将docker-compose改为docker compose
sudo docker compose version

现在Docker和Docker Compose都安装成功啦

二、NPM配置

安装NPM

mkdir -p /root/data/docker_data/npm && cd /root/data/docker_data/npm
vim docker-compose.yml
version: '3'
services:
  app:
    image: 'jc21/nginx-proxy-manager:latest'
    restart: unless-stopped
    ports:
      - '80:80'  # 冒号左边可以改成自己服务器未被占用的端口
      - '81:81'  # 冒号左边可以改成自己服务器未被占用的端口
      - '443:443' # 冒号左边可以改成自己服务器未被占用的端口
    volumes:
      - ./data:/data # 冒号左边可以改路径,现在是表示把数据存放在在当前文件夹下的 data 文件夹中
      - ./letsencrypt:/etc/letsencrypt  # 冒号左边可以改路径,现在是表示把数据存放在在当前文件夹下的 letsencrypt 文件夹中
docker-compose up -d 

登陆NPM

访问IP:81,默认的NPM登陆账号密码:

Email:    admin@example.com
Password: changeme

三、X-UI安装

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

登陆X-UI面板

根据提示设置端口信息、用户名、密码登陆面板。

image-20220519173838476

切换版本为最新版

设置面板url路径

保存配置信息,并重启面板

添加入站列表

备注随便填写,协议、端口、id、路径根据自己的喜好填写,id需要唯一,可以点击 GUID 生成

四、NPM配置转发

点击Proxy Host 添加一个Proxy Host.域名需要提前解析到VPS,如果是刚配置的话,可能域名解析要等一会儿才会生效,具体根据域名解析服务商确定.

Detail中的IP是服务器的IP,端口号填写NPM的端口号81

Custom locations中的location和X-UI中的面板 url 根路径一致,端口号是X-UI面板的端口

location /v2ray {                 # /v2ray 填你前面入站列表设置的ws的路径
        proxy_redirect off;
        proxy_pass http://158.101.3.171:13997;    # IP填服务器IP,这边不能填127.0.0.1,因为是在容器里,13997换成你入站规则那边的端口
        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;
}

点击save保存,可能会报错500,多点几次.

配置好以后没有问题的话,访问域名会直接跳转到NPM的登录页.说明Detail的配置没有问题,如果通过域名+xui面板的根路径能够访问xui面板说明Custom location配置没有问题.

五、客户端连接

在入站列表点击操作,复制会得到一串连接,导入进去后不能直接使用,还需要改一些配置

这里以小火箭为例,点击右上角的 ➕ 会默认读取剪切板的链接.确定后,会在本地节点中显示

点击后面的感叹号,编辑节点,地址改为在NPM上配置的域名地址,端口改为443,传输方式选择ws,ws中的Host填写NPM上的域名,路径填写入站列表里的路径,开启tls,备注可以改也可以不改

修改完后的配置信息

六、安装伪装应用(可选)

mkdir -p /root/data/docker_data/alltube & cd /root/data/docker_data/alltube
vim docker-compose.yml
version: '3.3'
services:
    alltube:
        container_name: alltube
        ports:
            - '5903:80'   # 5903可以改成任意vps上未使用过的端口,80不要改
        environment:
            - PUID=0    # 稍后在终端输入id可以查看当前用户的id
            - PGID=0    # 同上
            - TZ=Asia/Shanghai
        restart: always
        image: rudloff/alltube
docker-compose up -d