#!/bin/bash # ========================================================================= # OOB 集中管理网络 (Hub-Spoke) - 指挥中心统一部署脚本 # 生成 1 个服务端,100 份 ROS 独立脚本,1 个管理员 PC 客户端 # ========================================================================= # --- 核心变量设置 --- WG_IFACE="wg-mgmt" WG_PORT="443" WG_SUBNET="10.99.0" # !!! 请在此处填入你自定义的服务器私钥 !!! SERVER_PRI_KEY="MM5+YFr9qH/+1FQaGnmGnZw2i1cQCz2oB2Ab8epclnw=" # 配置生成数量 ROS_COUNT=100 # 颜色定义 RED='\033[0;31m' GREEN='\033[0;32m' YELLOW='\033[0;33m' CYAN='\033[0;36m' PLAIN='\033[0m' if [ "$(id -u)" -ne 0 ]; then echo -e "${RED}错误:必须以 root 权限运行此脚本。${PLAIN}" exit 1 fi if [ "$SERVER_PRI_KEY" == "请在此处替换为你真实的服务器私钥_不要带引号" ] || [ -z "$SERVER_PRI_KEY" ]; then echo -e "${RED}错误:请先编辑本脚本,填入 SERVER_PRI_KEY!${PLAIN}" exit 1 fi echo -e "${GREEN}=================================================${PLAIN}" echo -e "${GREEN} 开始构建 OOB 管理中心与 100 份 ROS 配置文件... ${PLAIN}" echo -e "${GREEN}=================================================${PLAIN}" # 1. 安装依赖与获取网络信息 apt-get update apt-get install -y wireguard qrencode iptables curl iproute2 PUBLIC_IP=$(curl -s ifconfig.me || curl -s 4.ipw.cn) PUB_NIC=$(ip -4 route show default | grep -oP '(?<=dev )(\S+)' | head -1) SERVER_PUB_KEY=$(echo "${SERVER_PRI_KEY}" | wg pubkey) WG_CONFIG="/etc/wireguard/${WG_IFACE}.conf" ROS_OUT_DIR="/root/ros_configs" mkdir -p /etc/wireguard mkdir -p "${ROS_OUT_DIR}" chmod 700 /etc/wireguard # 2. 生成服务端主配置头 cat > "${WG_CONFIG}" <> "${WG_CONFIG}" < "${ROS_SCRIPT_FILE}" <> "${WG_CONFIG}" < "${ADMIN_CONF}" <> /etc/sysctl.conf sysctl -p > /dev/null systemctl enable wg-quick@${WG_IFACE} systemctl restart wg-quick@${WG_IFACE} echo -e "${GREEN}=================================================${PLAIN}" echo -e " ✅ 管理中心部署完毕!" echo -e " 📂 100 份 ROS 独立一键脚本已存放于: ${YELLOW}/root/ros_configs/${PLAIN}" echo -e " 💻 你的笔记本(Admin)专属配置文件: ${YELLOW}${ADMIN_CONF}${PLAIN}" echo -e "=================================================" echo -e "使用方法:" echo -e "1. 用 SFTP 或 cat 命令将 admin_pc.conf 导入你电脑的 WireGuard 客户端并连接。" echo -e "2. 以后有新的 ROS 需要上线,只需去 /root/ros_configs/ 里按顺序挑一个文本,粘贴进 ROS 终端。" echo -e "3. 粘贴后,在电脑的 WinBox 填入该文本里的 IP (例如 10.99.0.2),即可直连管理!"