优化部署,增加lisa dmit
This commit is contained in:
+7
-3
@@ -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
@@ -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
|
||||
|
||||
@@ -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"
|
||||
Reference in New Issue
Block a user