优化部署,增加lisa dmit

This commit is contained in:
2026-08-05 09:51:12 +08:00
parent 81928c6d33
commit 2afc2cade6
9 changed files with 154 additions and 5 deletions
+7 -3
View File
@@ -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@<VPS_IP>:/opt/vps-xray
# 在本地 vps-xray/ 目录下执行
bash upload.sh <VPS_IP>
```
### 第二步:登录 VPS 执行部署
@@ -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
==========================================================
+75 -2
View File
@@ -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
+42
View File
@@ -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 <VPS_IP> [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"