搜索
缓存时间12 现在时间12 缓存数据 你相信吗 也许在另一个平行时空 有一个跟你长得很像很像的人 正在热烈得爱着那个你爱不到的人
查看: 2163|回复: 0

Serv00 - Xray + CloudFlare 优选IP

[复制链接]
发表于 2024-8-26 16:55:09 | 显示全部楼层 |阅读模式

马上注册,免受广告困扰,轻松兑换eSIM!

您需要 登录 才可以下载或查看,没有账号?注册

×

准备

  1. 优选 IP 需要两个域名,其中一个主域名给用户直接访问,一个用于回源。

    回源的域名需要托管到 CF,主域名有人在DNSPod解析分国内外,不过我也是统一放在了 CF 托管。

    一般免费的域名商不能免费解析 TXT(CF 做回源的主机名验证需要),可以买个付费域名,例如 12345678.xyz 之类的数字域名就很便宜,我是在 spaceship 上一年几块钱。
    >
    > serv00 分配的域名不能托管到 CF(截至 2024-8-25)。

  2. 申请一个 Serv00 服务器,可以见我上一篇文章。

    Serv00 折腾 - Serv00申请与免费域名获取及配置

  3. 项目地址:

假设已准备

  1. 域名

    • 域名A:86123456.xyz

      – 作为主域名

    • 域名B:86123456.buzz
      – 作为回源域名

  2. 将两个域名托管到 CF,自行搜索教程。

1.png

  1. 在 Serv00 启用服务、开启端口和记录下自己服务器 IP。例如端口:6663

2.png

开始

一、 回源域名设置

  1. 进入 CF 面板,切换到用于回源的域名。

3.png

  1. 设置 SSL 为完全

    4.png
    添加回源域名
    5.png
    添加主机名
    6.png
    记下 TXT 的名称和值,待会去主域名里面添加记录。
    7.png

  2. 设置规则,将流量转到服务器的指定端口。
    8.png

    二、主域名设置

  3. 添加 DNS,第二条记录对应上面验证主机名。
    9.png

  4. SSL 设置
    10.png

    三、检查回源状态

  5. 进入回源域名查看主机名验证状态

    11.png

  6. 检查优选是否成功

    输入主域名,需要加上 https:// 协议

    网站:https://www.itdog.cn/http/

    12.png

    四、Serv00 安装 Xray 和 生成 SSL 证书

  7. 新增一个和主域名同名的网站,方便待会生成 ssl 证书验证。
    13.png

  8. 回到回源域名暂时关闭端口转发规则,否则 ssl 证书验证时候会失败。
    14.png

  9. 生成 SSL 证书

    参考【第 6 章】证书管理篇 | Project X (xtls.github.io)

    email 可以填自己真实的,乱填邮箱地址可能会导致后续报错,反面教材:[email protected]

    下载
    curl https://get.acme.sh | sh -s [email protected]
    
    设置命令别名,方便使用(注意自己实际路径)
    alias acme.sh=~/.acme.sh/acme.sh
    
    设置自动升级
    acme.sh --upgrade --auto-upgrade
    
    测试(自己替换)
    acme.sh --issue --server letsencrypt --test -d cdn.主域名.xyz -w /home/用户名/domains/cdn.主域名.xyz/public_html --keylength ec-256
    
    设置正式环境
    acme.sh --set-default-ca --server letsencrypt
    
    生成 SSL(自己替换)
    acme.sh --issue -d cdn.主域名.xyz -w /home/用户名/domains/cdn.主域名.xyz/public_html --keylength ec-256 --force
    
    安装 SSL,例如在 /home/用户名/domains/xray/ssl 建好文件夹
    acme.sh --installcert -d  cdn.主域名.xyz --cert-file /home/用户名/domains/xray/ssl/cert-cdn42.crt --key-file /home/用户名/domains/xray/ssl/cert-cdn42.key --fullchain-file /home/用户名/domains/xray/ssl/fullchain-cdn42.crt --ecc
    
    至此,SSL 生成完毕,记录 `.crt` 和 `.key` 文件路径,待会在 Xray 里面配置。

15.png 16.png 17.png

  1. 至此 SSL 证书生成了,进入CF面板把回源域名端口转发规则开启。否则会导致客户端无法连接上服务器的指定端口。

  2. 安装 Xray

    下载最新版,https://github.com/XTLS/Xray-core/releases

    我这里用的是 1.8.23,下载后拉到服务器右键解压。路径随你。

18.png
19.png

  1. Xray服务器配置

    这里用的是 VMess-Websocket-TLS 方案。参考:Xray-examples/VMess-Websocket-TLS/config_server.json at main · XTLS/Xray-examples (github.com)

    其他方案自己研究(被折磨了几天决定放弃)

    在 xray 目录下新建 config.json ,修改 inbounds 里面标注的4个地方。

    启动 xray 时候有错误或者客户端连接不上?可以设置 “loglevel”: “debug” 去排查。

    // REFERENCE:
    // https://github.com/XTLS/Xray-examples
    // https://xtls.github.io/config/
    // 常用的 config 文件,不论服务器端还是客户端,都有 5 个部分。外加小小白解读:
    // ┌─ 1*log 日志设置 - 日志写什么,写哪里(出错时有据可查)
    // ├─ 2_dns DNS-设置 - DNS 怎么查(防 DNS 污染、防偷窥、避免国内外站匹配到国外服务器等)
    // ├─ 3_routing 分流设置 - 流量怎么分类处理(是否过滤广告、是否国内外分流)
    // ├─ 4_inbounds 入站设置 - 什么流量可以流入 Xray
    // └─ 5_outbounds 出站设置 - 流出 Xray 的流量往哪里去
    {
       // 1_日志设置
       "log": {
           "loglevel": "warning" // 内容从少到多: "none", "error", "warning", "info", "debug"
       },
       // 2_DNS 设置
       "dns": {
           "servers": [
               "https+local://1.1.1.1/dns-query", // 首选 1.1.1.1 的 DoH 查询,牺牲速度但可防止 ISP 偷窥
               "localhost"
           ]
       },
       // 3*分流设置
       "routing": {
           "domainStrategy": "IPIfNonMatch",
           "rules": [
               // 3.1 防止服务器本地流转问题:如内网被攻击或滥用、错误的本地回环等
               {
                   "type": "field",
                   "ip": [
                       "geoip:private" // 分流条件:geoip 文件内,名为"private"的规则(本地)
                   ],
                   "outboundTag": "block" // 分流策略:交给出站"block"处理(黑洞屏蔽)
               },
               {
                   // 3.2 防止服务器直连国内
                   "type": "field",
                   "ip": [
                       "geoip:cn"
                   ],
                   "outboundTag": "block"
               },
               // 3.3 屏蔽广告
               {
                   "type": "field",
                   "domain": [
                       "geosite:category-ads-all" // 分流条件:geosite 文件内,名为"category-ads-all"的规则(各种广告域名)
                   ],
                   "outboundTag": "block" // 分流策略:交给出站"block"处理(黑洞屏蔽)
               }
           ]
       },
       // 4*入站设置
       // 4.1 这里只写了一个最简单的 vless+xtls 的入站,因为这是 Xray 最强大的模式。如有其他需要,请根据模版自行添加。
       "inbounds": [
           {
               "listen": "0.0.0.0",
               // 修改1:填自己端口
               "port": 6663,
               "protocol": "vmess",
               "settings": {
                   "clients": [
                       {
                           // 修改2:生成 uuid,自己找工具
                           "id": "44bf3f93-e593-4dfb-935c-dbcc2be8d4b6"
                       }
                   ]
               },
               "streamSettings": {
                   "network": "ws",
                   "security": "tls",
                   // 修改3:写自己生成 SSL 证书填的域名 
                   "serverName": "cdn.主域名.xyz",
                   "tlsSettings": {
                       "alpn": "http/1.1",
                       "certificates": [
                           {
                               // 修改4:修改 SSL 的 crt 和 key 地址
                               "certificateFile": "/home/用户名/domains/xray/ssl/cert-cdn42.crt",
                               "keyFile": "/home/用户名/domains/xray/ssl/cert-cdn42.key"
                           }
                       ]
                   }
               }
           }
       ],
       // 5*出站设置
       "outbounds": [
           // 5.1 第一个出站是默认规则,freedom 就是对外直连(vps 已经是外网,所以直连)
           {
               "tag": "direct",
               "protocol": "freedom"
           },
           // 5.2 屏蔽规则,blackhole 协议就是把流量导入到黑洞里(屏蔽)
           {
               "tag": "block",
               "protocol": "blackhole"
           }
       ]
    }
  2. 启动 xray

    进入 xray 目录 运行
    ./xray -c config.json &

    日志级别设置了 debug

20.png

五、客户端设置

使用的是 v2rayN,可自行选择:2dust/v2rayN: A GUI client for Windows, support Xray core and v2fly core and others (github.com)
21.png
22.png

六、拓展

优选 IP 还慢些?可能还需要测试多些。

不过可以看出套了CF(无论是否优选)都比 IP 直连会提高巨大下载速度

23.png
附两个客户端配置(服务器的json配置不用改):

  1. 直连服务器

24.png

  1. 不做回源和优选,只添加记录和开了代理。

25.png
结合之前文章添加保活:Serv00 折腾-SSH跳板登录+Cron保活

添加启动脚本

#!/bin/bash

# 设置脚本路径和工作目录
SCRIPT_PATH="/home/用户名/domains/xray"
WORK_DIR="/home/用户名/domains/xray"
LOG_FILE="$WORK_DIR/restart_log.txt"

# 检查并创建工作目录和日志文件
mkdir -p "$WORK_DIR"
touch "$LOG_FILE"

# 函数用于记录日志到文件和控制台
log() {
    echo "$1" | tee -a "$LOG_FILE"
}

# 检查参数
case "$1" in
    stop)
        # 停止 xray 服务
        if pgrep -f './xray -c config.json' > /dev/null; then
            cd "$WORK_DIR" || exit
            pkill -f './xray -c config.json'
            log "Stopped xray server at $(date)"
        else
            log "xray server is not running at $(date)"
        fi
        ;;
    start)
        # 启动 xray 服务
        if ! pgrep -f './xray -c config.json' > /dev/null; then
            cd "$WORK_DIR" || exit
            nohup ./xray -c config.json > /dev/null 2>&1 &
            log "Started xray server at $(date)"
        else
            log "xray server is already running at $(date)"
        fi
        ;;
    restart)
        # 重启 xray 服务
        if pgrep -f './xray -c config.json' > /dev/null; then
            cd "$WORK_DIR" || exit
            pkill -f './xray -c config.json'
            log "Stopped xray server at $(date)"
            sleep 2 # 等待服务完全停止
        fi
        cd "$WORK_DIR" || exit
        nohup ./xray -c config.json > /dev/null 2>&1 &
        log "Started xray server at $(date)"
        ;;
    *)
        log "Usage: $0 {start|stop|restart}"
        exit 1
        ;;
esac

# 添加空行以提高日志可读性
echo "" >> "$LOG_FILE"

check_crontab.sh 添加 tasks

"30 1 * * * /usr/bin/env TZ=Asia/Shanghai ~/domains/xray/xray-auto.sh restart >/dev/null 2>&1"
"0 */3 * * * /usr/bin/env TZ=Asia/Shanghai ~/domains/xray/xray-auto.sh start >/dev/null 2>&1"
"@reboot /usr/bin/env TZ=Asia/Shanghai ~/domains/xray/xray-auto.sh start >/dev/null 2>&1"

七、后记

  1. 用 Serv00 做 xray,如果是直接IP非常慢。

    如果有两个域名,可以做回源;如果只有一个,建议也套个 CF,参考 拓展 部分,下载速度能大幅提升。

  2. 回源可能更多是给自己网站加速,可以自己拓展用途。

  3. Xray 其他模式我也尝试过,由于自己对 CF 和端口转发那些都不熟悉,踩了很多坑,最后才选了上述方式。不是最佳,但是自用应该也够了。

  4. 上述步骤可能有遗漏,自己变通和搜索资料解决。

  5. 祝大家顺利搭建成功。

爱生活,爱奶昔~

Powered by Nyarime. Licensed

GMT+8, 2024-12-23 12:17 , Processed in 0.024452 second(s), 14 queries , Gzip On, Redis On
发帖际遇 ·手机版 ·小黑屋 ·RSS ·奶昔网

登录切换风格
快速回复 返回顶部 返回列表