有的时候受限于网络问题需要手动安装v2ray
废话不多说直接贴脚本
#!/bin/bash
# ========================================
# V2Ray 安装与卸载脚本
#
# 该脚本用于在 Linux 服务器上安装或卸载 V2Ray。
# 支持从 GitHub 下载最新的 V2Ray 版本或使用本地文件进行安装。
# 还支持生成 systemd 服务以方便管理 V2Ray 服务。
#
# 适用系统:
# - CentOS / RHEL
# - Debian / Ubuntu
#
# 使用方法:
# 1. 赋予执行权限:
# chmod +x script.sh
#
# 2. 执行安装操作:
# sudo ./script.sh install
#
# 3. 使用本地文件安装(如果已经下载了 v2ray-linux-64.zip 文件):
# sudo ./script.sh install --local
#
# 4. 执行卸载操作:
# sudo ./script.sh uninstall
#
# 重要提示:
# - 必须以 root 用户运行脚本。
# - 使用 '--local' 时,需要确保 v2ray-linux-64.zip 文件在当前目录下。
# - 安装完成后可以使用 'systemctl status v2ray' 查看服务状态。
#
# 版权与参考:
# - V2Ray 官方网站:https://www.v2fly.org/
# - V2Ray GitHub 发布页:https://github.com/v2fly/v2ray-core/releases
# ========================================
V2RAY_VERSION="v4.31.0"
V2RAY_ZIP="v2ray-linux-64.zip"
V2RAY_DIR="/usr/local/v2ray"
CONFIG_DIR="/etc/v2ray"
SERVICE_FILE="/usr/lib/systemd/system/v2ray.service"
USE_LOCAL=false
# 确保脚本是以 root 用户运行
if [ "$(id -u)" -ne 0 ]; then
echo "请以 root 用户运行该脚本!"
exit 1
fi
# 获取系统发行版名称
OS_TYPE=$(awk -F= '/^ID=/ { print $2 }' /etc/os-release)
# 安装依赖工具
function install_dependencies() {
echo "安装必要的依赖..."
if [ "$OS_TYPE" == "centos" ] || [ "$OS_TYPE" == "rhel" ]; then
yum install -y wget unzip
elif [ "$OS_TYPE" == "debian" ] || [ "$OS_TYPE" == "ubuntu" ]; then
apt update
apt install -y wget unzip
else
echo "不支持的操作系统类型:$OS_TYPE"
exit 1
fi
}
# 显示帮助信息
function show_help() {
echo "使用方法: $0 [install|uninstall] [--local]"
echo " install 安装 V2Ray"
echo " uninstall 卸载 V2Ray"
echo " --local 使用本地文件安装 (默认从 GitHub 下载)"
exit 0
}
# 解析命令参数
if [ $# -eq 0 ]; then
show_help
fi
ACTION=$1
if [ "$2" == "--local" ]; then
USE_LOCAL=true
fi
# 安装 V2Ray
function install_v2ray() {
echo "开始安装 V2Ray..."
# 安装依赖
install_dependencies
# 下载或使用本地文件
if [ "$USE_LOCAL" == "true" ]; then
echo "使用本地文件安装 V2Ray..."
if [ ! -f "$V2RAY_ZIP" ]; then
echo "错误:未找到本地文件 $V2RAY_ZIP,请放置到当前目录后重试!"
exit 1
fi
else
echo "从 GitHub 下载 V2Ray..."
wget -O "$V2RAY_ZIP" "https://github.com/v2fly/v2ray-core/releases/download/$V2RAY_VERSION/$V2RAY_ZIP"
fi
# 解压 V2Ray
echo "解压 V2Ray..."
mkdir -p v2ray
unzip -d v2ray "$V2RAY_ZIP"
# 复制 V2Ray 文件
echo "复制 V2Ray 文件..."
mkdir -p "$V2RAY_DIR"
cp v2ray/* "$V2RAY_DIR/"
# 创建配置目录
echo "创建配置目录..."
mkdir -p "$CONFIG_DIR"
cp vpoint_vmess_freedom.json "$CONFIG_DIR/config.json"
# 创建 systemd 服务文件
echo "创建 systemd 服务..."
cat <<EOF > "$SERVICE_FILE"
[Unit]
Description=V2Ray Service
Documentation=https://www.v2fly.org/
After=network.target nss-lookup.target
[Service]
User=nobody
CapabilityBoundingSet=CAP_NET_ADMIN CAP_NET_BIND_SERVICE
AmbientCapabilities=CAP_NET_ADMIN CAP_NET_BIND_SERVICE
NoNewPrivileges=true
ExecStart=$V2RAY_DIR/v2ray run -config $CONFIG_DIR/config.json
Restart=on-failure
RestartPreventExitStatus=23
[Install]
WantedBy=multi-user.target
EOF
# 重新加载 systemd 并启动 V2Ray
echo "启动 V2Ray..."
systemctl daemon-reload
systemctl enable v2ray
systemctl start v2ray
echo "✅ V2Ray 安装完成!"
echo "你可以使用以下命令查看 V2Ray 运行状态:"
echo " systemctl status v2ray"
}
# 卸载 V2Ray
function uninstall_v2ray() {
echo "开始卸载 V2Ray..."
# 停止并禁用服务
echo "停止 V2Ray..."
systemctl stop v2ray
systemctl disable v2ray
# 删除文件
echo "删除 V2Ray 文件..."
rm -rf "$V2RAY_DIR" "$CONFIG_DIR" "$SERVICE_FILE"
# 重新加载 systemd
echo "重新加载 systemd 配置..."
systemctl daemon-reload
echo "✅ V2Ray 已成功卸载。"
}
# 根据参数执行相应操作
case "$ACTION" in
install)
install_v2ray
;;
uninstall)
uninstall_v2ray
;;
*)
show_help
;;
esac
这里需要注意 需要再/etc/v2ray 下面创建一个配置文件
Comments | NOTHING