From 2afc2cade6101eae0d9266117ac0a71a961b62a9 Mon Sep 17 00:00:00 2001 From: Joywayer Date: Wed, 5 Aug 2026 09:51:12 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96=E9=83=A8=E7=BD=B2=EF=BC=8C?= =?UTF-8?q?=E5=A2=9E=E5=8A=A0lisa=20dmit?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- vps-xray/README.md | 10 ++- vps-xray/{ => client-config}/client-macos.md | 0 .../lisa-vps-xray-optimized-info-4.md | 30 ++++++++ .../vpn-vps-xray-optimized.yaml | 0 .../vps-xray-optimized-info-2.md | 0 .../vps-xray-optimized-info-3.md | 0 .../vps-xray-optimized-info.md | 0 vps-xray/deploy.sh | 77 ++++++++++++++++++- vps-xray/upload.sh | 42 ++++++++++ 9 files changed, 154 insertions(+), 5 deletions(-) rename vps-xray/{ => client-config}/client-macos.md (100%) create mode 100644 vps-xray/client-config/lisa-vps-xray-optimized-info-4.md rename vps-xray/{ => client-config}/vpn-vps-xray-optimized.yaml (100%) rename vps-xray/{ => client-config}/vps-xray-optimized-info-2.md (100%) rename vps-xray/{ => client-config}/vps-xray-optimized-info-3.md (100%) rename vps-xray/{ => client-config}/vps-xray-optimized-info.md (100%) create mode 100644 vps-xray/upload.sh diff --git a/vps-xray/README.md b/vps-xray/README.md index 92e196f..935c899 100644 --- a/vps-xray/README.md +++ b/vps-xray/README.md @@ -52,12 +52,13 @@ ``` vps-xray/ ├── deploy.sh # 一键部署脚本 -├── backup.sh # 备份脚本 ├── uninstall.sh # 完全卸载脚本 +├── upload.sh # 上传脚本(仅上传服务端必要文件) ├── .env.example # 配置模板 ├── README.md # 本文件 ├── vps-xray-optimized.md # Reality 方案详细文档 -└── vps-xray-fast.md # Fast TCP 方案详细文档 +├── vps-xray-fast.md # Fast TCP 方案详细文档 +└── client-config/ # 客户端配置示例(本地使用,不上传服务器) ``` 服务器上的文件位置: @@ -73,8 +74,11 @@ vps-xray/ ### 第一步:上传文件到 VPS +使用 `upload.sh` 只上传服务端必要文件(`deploy.sh`、`uninstall.sh`、`.env.example`),跳过文档和客户端配置: + ```bash -scp -r vps-xray/ root@:/opt/vps-xray +# 在本地 vps-xray/ 目录下执行 +bash upload.sh ``` ### 第二步:登录 VPS 执行部署 diff --git a/vps-xray/client-macos.md b/vps-xray/client-config/client-macos.md similarity index 100% rename from vps-xray/client-macos.md rename to vps-xray/client-config/client-macos.md diff --git a/vps-xray/client-config/lisa-vps-xray-optimized-info-4.md b/vps-xray/client-config/lisa-vps-xray-optimized-info-4.md new file mode 100644 index 0000000..cbaded1 --- /dev/null +++ b/vps-xray/client-config/lisa-vps-xray-optimized-info-4.md @@ -0,0 +1,30 @@ +========================================================== + Xray VLESS-Reality 部署完成 ✅ +========================================================== + + IP : 64.81.25.247 + 端口 : 443 + 协议 : VLESS + UUID : 5455974f-a22a-4039-82b4-5dc0a30f06ad + 流控 : xtls-rprx-vision + 传输 : tcp + 安全 : reality + SNI : dl.google.com + Fingerprint : chrome + PublicKey : cu-tvQ0PmpJDF5WtkgXgMmyhas2ZYdW5rpUiaAuekmo + ShortId : 88992d098ccc5622 + +========================================================== + +>>> VLESS 分享链接(可直接导入客户端): + +vless://5455974f-a22a-4039-82b4-5dc0a30f06ad@64.81.25.247:443?encryption=none&flow=xtls-rprx-vision&security=reality&sni=dl.google.com&fp=chrome&pbk=cu-tvQ0PmpJDF5WtkgXgMmyhas2ZYdW5rpUiaAuekmo&sid=88992d098ccc5622&type=tcp#vps-reality-lisa-1 + +========================================================== + +⚠️ 请妥善保存以上信息! + 配置文件: /usr/local/etc/xray/config.json + 凭据备份: /opt/vps-xray/.env + 查看日志: journalctl -u xray -f + 重启服务: systemctl restart xray +========================================================== \ No newline at end of file diff --git a/vps-xray/vpn-vps-xray-optimized.yaml b/vps-xray/client-config/vpn-vps-xray-optimized.yaml similarity index 100% rename from vps-xray/vpn-vps-xray-optimized.yaml rename to vps-xray/client-config/vpn-vps-xray-optimized.yaml diff --git a/vps-xray/vps-xray-optimized-info-2.md b/vps-xray/client-config/vps-xray-optimized-info-2.md similarity index 100% rename from vps-xray/vps-xray-optimized-info-2.md rename to vps-xray/client-config/vps-xray-optimized-info-2.md diff --git a/vps-xray/vps-xray-optimized-info-3.md b/vps-xray/client-config/vps-xray-optimized-info-3.md similarity index 100% rename from vps-xray/vps-xray-optimized-info-3.md rename to vps-xray/client-config/vps-xray-optimized-info-3.md diff --git a/vps-xray/vps-xray-optimized-info.md b/vps-xray/client-config/vps-xray-optimized-info.md similarity index 100% rename from vps-xray/vps-xray-optimized-info.md rename to vps-xray/client-config/vps-xray-optimized-info.md diff --git a/vps-xray/deploy.sh b/vps-xray/deploy.sh index 29ca62d..5071b7b 100644 --- a/vps-xray/deploy.sh +++ b/vps-xray/deploy.sh @@ -61,16 +61,88 @@ fi XRAY_PORT="${XRAY_PORT:-443}" +# ===== 0. 检查并安装依赖 ===== +# 精简版系统镜像(如部分 VPS 商的 Debian/Ubuntu minimal)常缺 curl / unzip +ensure_deps() { + step "0/5 检查依赖" + + local missing=() + local cmd + for cmd in curl unzip openssl; do + command -v "$cmd" &>/dev/null || missing+=("$cmd") + done + if [ ! -f /etc/ssl/certs/ca-certificates.crt ]; then + missing+=("ca-certificates") + fi + + if [ "${#missing[@]}" -eq 0 ]; then + log "依赖齐全: curl unzip openssl ca-certificates" + return + fi + + warn "缺少依赖: ${missing[*]},正在自动安装..." + if command -v apt-get &>/dev/null; then + export DEBIAN_FRONTEND=noninteractive + apt-get update -qq + apt-get install -y -qq "${missing[@]}" + elif command -v dnf &>/dev/null; then + dnf install -y "${missing[@]}" + elif command -v yum &>/dev/null; then + yum install -y "${missing[@]}" + elif command -v apk &>/dev/null; then + apk add --no-cache "${missing[@]}" + else + error "未识别的包管理器,请手动安装: ${missing[*]}" + exit 1 + fi + + for cmd in curl unzip openssl; do + if ! command -v "$cmd" &>/dev/null; then + error "依赖安装失败: ${cmd},请手动安装后重试" + exit 1 + fi + done + log "依赖安装完成" +} + # ===== 1. 安装 Xray ===== install_xray() { step "1/5 安装 Xray" - if command -v xray &>/dev/null || [ -x /usr/local/bin/xray ]; then + if [ -x /usr/local/bin/xray ]; then log "Xray 已安装: $(/usr/local/bin/xray version | head -1)" log "将更新到最新版本..." fi - bash <(curl -fsSL https://raw.githubusercontent.com/XTLS/Xray-install/main/install-release.sh) + # 不用 bash <(curl ...):curl 失败时进程替换只产生空脚本, + # 外层 bash 仍返回 0,会掩盖下载失败 + local installer + installer="$(mktemp)" + local url ok=0 + for url in \ + "https://raw.githubusercontent.com/XTLS/Xray-install/main/install-release.sh" \ + "https://github.com/XTLS/Xray-install/raw/main/install-release.sh" + do + if curl -fsSL --max-time 60 "$url" -o "$installer" && [ -s "$installer" ]; then + ok=1 + break + fi + warn "下载失败,尝试备用地址: $url" + done + + if [ "$ok" -ne 1 ]; then + rm -f "$installer" + error "无法下载 Xray 安装脚本,请检查服务器网络 / DNS" + exit 1 + fi + + bash "$installer" + rm -f "$installer" + + if [ ! -x /usr/local/bin/xray ]; then + error "Xray 安装失败:/usr/local/bin/xray 不存在" + exit 1 + fi log "Xray 安装完成: $(/usr/local/bin/xray version | head -1)" } @@ -471,6 +543,7 @@ main() { [ "$MODE" = "reality" ] && log "VLESS-Reality(推荐,抗封锁)" || log "VLESS TCP(极速,无 TLS)" echo "" + ensure_deps install_xray generate_keys select_reality_dest diff --git a/vps-xray/upload.sh b/vps-xray/upload.sh new file mode 100644 index 0000000..fac7dfe --- /dev/null +++ b/vps-xray/upload.sh @@ -0,0 +1,42 @@ +#!/usr/bin/env bash +# 仅上传服务端所需文件,跳过文档和客户端配置 + +set -euo pipefail + +VPS_IP="${1:-}" +SSH_PORT="${2:-22}" +if [[ -z "$VPS_IP" ]]; then + echo "用法: bash upload.sh [SSH_PORT]" + echo "示例: bash upload.sh 1.2.3.4 # 使用默认端口 22" + echo "示例: bash upload.sh 1.2.3.4 2222 # 使用自定义端口 2222" + exit 1 +fi + +if ! [[ "$SSH_PORT" =~ ^[0-9]+$ ]] || (( SSH_PORT < 1 || SSH_PORT > 65535 )); then + echo "错误: 端口必须是 1-65535 之间的数字,当前为 '${SSH_PORT}'" + exit 1 +fi + +REMOTE_DIR="/opt/vps-xray" +SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" + +echo ">>> 创建远程目录 ${REMOTE_DIR} (端口 ${SSH_PORT})" +ssh -p "${SSH_PORT}" "root@${VPS_IP}" "mkdir -p ${REMOTE_DIR}" + +echo ">>> 上传部署文件" +scp -P "${SSH_PORT}" \ + "${SCRIPT_DIR}/deploy.sh" \ + "${SCRIPT_DIR}/uninstall.sh" \ + "${SCRIPT_DIR}/.env.example" \ + "root@${VPS_IP}:${REMOTE_DIR}/" + +echo "" +echo "上传完成,文件位于 root@${VPS_IP}:${REMOTE_DIR}" +echo "" +echo "下一步:" +if [[ "$SSH_PORT" == "22" ]]; then + echo " ssh root@${VPS_IP}" +else + echo " ssh -p ${SSH_PORT} root@${VPS_IP}" +fi +echo " cd ${REMOTE_DIR} && bash deploy.sh"