一、安装docker和docker-compose
1. 更新系统:
sudo yum update2.安装需要的软件包:
sudo yum install -y yum-utils device-mapper-persistent-data lvm23.添加Docker仓库:
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo4.安装Docker引擎:
sudo yum install docker-ce5.启动Docker服务:
sudo systemctl start docker6.设置Docker自启动:
sudo systemctl enable docker7.验证Docker是否安装成功:
sudo docker --version8.下载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-compose10.验证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/npmvim docker-compose.ymlversion: '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面板
根据提示设置端口信息、用户名、密码登陆面板。


切换版本为最新版

设置面板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/alltubevim docker-compose.ymlversion: '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/alltubedocker-compose up -d