零、参考文章

推荐大家查阅,里头讲清楚了邪修节点部分原理:
【邪修】自建稳定能用的节点教程 - 开发调优 / 开发调优,Lv1 - LINUX DO

一、前置准备

  1. 一个域名。可以是白嫖的,或者买一个.xyz 的域名很便宜
  2. 一个 VPS, 我用的是 RN 的小鸡
  3. 一个 CloudFlare 账号
  4. 一个 Gemini/GPT 账号 (可选) 用于回答你期间可能出现的问题

二、邪修节点

3x-ui 部署

3x-ui 官方安装文档

1. 进入 VPS 终端,执行以下命令

docker run -itd \
 -e XRAY_VMESS_AEAD_FORCED=false \
 -e XUI_ENABLE_FAIL2BAN=true \
 -v $PWD/db/:/etc/x-ui/ \
 -v $PWD/cert/:/root/cert/ \
 --network=host \
 --restart=unless-stopped \
 --name 3x-ui \
 ghcr.io/mhsanaei/3x-ui:latest

2. 初步配置 3x-ui, 以下为示例,以你实际参数为准,

$docker ps

输出:
CONTAINER ID   IMAGE                           COMMAND                  CREATED       STATUS       PORTS                      NAMES
0597ee21536a   ghcr.io/mhsanaei/3x-ui:latest   "/app/DockerEntrypoi…"   6 hours ago   Up 6 hours         

$docker exec -it 0597ee /bin/sh

$/app/x-ui setting -username 用于登录3x-ui面板的用户名 -password 密码

$exit 

3. 打开浏览器访问: http:// 你的 vps-ip:2053 进入面板

4. 添加邪修节点,按图配置点击创建


注意:如果不需要 nginx 可以直接用 80 端口

点击三点,导出链接

打开 v2rayN, ctrl+v 添加节点,并修改如图圈起位置为对应参数

先确定保存,这个时候是不通的

5.cloudflare 配置

登录 cloudflare, 找到要使用的域名编辑 DNS 记录,添加一个 A 记录指向 VPS, 并关闭小黄云

添加 worker 并部署,注意看注释

addEventListener("fetch", event => {
  let url = new URL(event.request.url);
  url.hostname = "刚刚得到的子域名 如rn.abc.com";
  url.protocol = 'http';

  // 注意: 如果不需要nginx, 下面这一行一定要解除注释, 并且端口号与入站节点要保持一致 // url.port = '8080'; let newHeaders = new Headers(event.request.headers);
  newHeaders.set("Host", "rn.ringgav.xyz");

  let request = new Request(url, {
    method: event.request.method,
    headers: newHeaders,
    body: event.request.body,
    redirect: 'manual'
  });

  event.respondWith(fetch(request));
});

而后添加一个路由规则



SSL/TLS 修改为灵活 (Flexible)

此时回到 v2rayN 对刚刚修改后的节点测速,应该是有延迟的

6. 增加 cdn 节点

此处请跳转参考以下文章小节 “继续新增如下解析,注意都关闭小黄云” 添加 N 个 CNAME

这篇文章是本教程的核心,推荐大家查阅,里头讲清楚了为什么叫 "邪修":
【邪修】自建稳定能用的节点教程 - 开发调优 / 开发调优,Lv1 - LINUX DO

添加完成后如图

** 回到 V2RayN, 选中刚刚那个节点,ctrl+c 而后 ctrl+v 若干次,可以和 CNAME 的个数一致,并双击复制节点,修改地址 (address) 为: 数字 cdn.abc.com **
3x-ui 部署白嫖大厂 CDN 节点历程备忘存档11

3x-ui 部署白嫖大厂 CDN 节点历程备忘存档11

最后都搞到代理软件里就好,为了负载均衡,我最终用的是 clash party (不熟悉 V2RayN), 可以自己部署一个 sublink_converter 转换一下

贴一个手机热点速度

我这属于慢的,我看参考源站有飙到 500 + 的

优选节点,我也不知道算不算哈哈哈

开启 BBR

出站 warp

VPS 安全

WebDAV 备份

安装 rclone

sudo apt install rclone -y

添加 webdav 仓库,此处以坚果云为例

rclone config 
#!/bin/bash

# --- 基础配置 ---
HOSTNAME=$(hostname)
BACKUP_TEMP="/root/server_backup/temp_folder"
BACKUP_FINAL="/root/server_backup/final"
REMOTE_PATH="jianguoyun:/vps-rclone"
MAX_BACKUPS=20
DATETIME=$(date +"%Y-%m-%d %H:%M:%S")
FILE_TIME=$(date +%Y%m%d_%H%M%S)
COMPOSE_DIR="/root/3x-ui"

# --- 企业微信 Webhook 配置 ---
WEBHOOK_URL="https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=你的企微key"
# 通知函数
send_wechat_notice() {
    local status=$1
    local message=$2
    local color="info"
    [ "$status" == "失败" ] && color="warning"

    curl -s -X POST "$WEBHOOK_URL" \
        -H "Content-Type: application/json" \
        -d "{
        \"msgtype\": \"markdown\",
        \"markdown\": {
            \"content\": \"**VPS 备份提醒**\n> 状态: <font color=\\\"$color\\\">$status</font>\n> 主机: $HOSTNAME\n> 时间: $DATETIME\n> 详情: $message\"
        }
    }"
}

# 1. 环境准备与恢复脚本生成
mkdir -p $BACKUP_TEMP
mkdir -p $BACKUP_FINAL

cat <<EOF > $BACKUP_TEMP/restore.sh
#!/bin/bash
echo "开始恢复备份..."
if [ -d "./nginx_config" ]; then
    rm -rf /etc/nginx/*
    cp -r ./nginx_config/* /etc/nginx/
fi
mkdir -p $COMPOSE_DIR
cp -r ./3xui_db $COMPOSE_DIR/db
cp -r ./3xui_cert $COMPOSE_DIR/cert
cp ./docker-compose.yml $COMPOSE_DIR/
nginx -t && systemctl restart nginx
cd $COMPOSE_DIR && docker-compose up -d
echo "恢复完成。"
EOF
chmod +x $BACKUP_TEMP/restore.sh

# 2. 打包流程
cp -r /etc/nginx $BACKUP_TEMP/nginx_config
cp -r $COMPOSE_DIR/db $BACKUP_TEMP/3xui_db
cp -r $COMPOSE_DIR/cert $BACKUP_TEMP/3xui_cert
cp $COMPOSE_DIR/docker-compose.yml $BACKUP_TEMP/
# 备份脚本也打包进去
cp "$0" $BACKUP_TEMP/vps-backup.sh

FILENAME="${HOSTNAME}_full_bak_${FILE_TIME}.tar.gz"
tar -czf $BACKUP_FINAL/$FILENAME -C $BACKUP_TEMP .

# 3. 上传与通知
if rclone copy $BACKUP_FINAL $REMOTE_PATH -P; then
    # --- 保持最多 20 个备份逻辑 ---
    file_list=$(rclone lsf $REMOTE_PATH | grep "${HOSTNAME}" | sort)
    # 计算当前备份文件的总数
    file_count=$(echo "$file_list" | grep -v '^$' | wc -l)

    if [ $file_count -gt $MAX_BACKUPS ]; then
        # 计算需要删除的文件数量
        remove_count=$((file_count - MAX_BACKUPS))
        # 提取最旧的 N 个文件名并循环删除
        echo "$file_list" | head -n $remove_count | while read -r line; do
            rclone delete "$REMOTE_PATH/$line"
        done
    fi
    send_wechat_notice "成功" "备份已同步至坚果云,包名:$FILENAME"
else
    send_wechat_notice "失败" "rclone 同步过程出错,请检查网络或配置。"
fi

# 4. 清理本地临时文件
rm -rf $BACKUP_TEMP
rm -rf $BACKUP_FINAL

好晚了凌晨 5 点,改天补内容


📌 转载信息
原作者:
RinggaV
转载时间:
2026/1/3 11:55:58