手动安装v2ray


有的时候受限于网络问题需要手动安装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 下面创建一个配置文件

声明:小小博客|版权所有,违者必究|如未注明,均为原创|本网站采用BY-NC-SA协议进行授权

转载:转载请注明原文链接 - 手动安装v2ray


Carpe Diem and Do what I like