#!/usr/bin/env bash set -e echo "======================================" echo " EasyTier 公益中继节点一键部署脚本" echo "======================================" if [ "$(id -u)" != "0" ]; then echo "请使用 root 运行" exit 1 fi ######################################## # 检测包管理器 ######################################## if command -v dnf >/dev/null 2>&1; then PM="dnf" elif command -v yum >/dev/null 2>&1; then PM="yum" elif command -v apt >/dev/null 2>&1; then PM="apt" elif command -v zypper >/dev/null 2>&1; then PM="zypper" else echo "不支持的 Linux 发行版" exit 1 fi echo "检测到包管理器: $PM" ######################################## # 安装基础组件 ######################################## case $PM in apt) apt update apt install -y curl wget sudo fail2ban ;; dnf|yum) $PM install -y epel-release || true $PM install -y curl wget sudo fail2ban ;; zypper) zypper install -y curl wget sudo fail2ban ;; esac ######################################## # 安装 EasyTier ######################################## echo "安装 EasyTier..." wget -O /tmp/easytier.sh \ "https://raw.githubusercontent.com/EasyTier/EasyTier/main/script/install.sh" bash /tmp/easytier.sh install --gh-proxy https://ghfast.top/ ######################################## # 查找 easytier-core ######################################## EASYTIER_BIN="" for p in \ /usr/local/bin/easytier-core \ /usr/bin/easytier-core \ /opt/easytier/easytier-core do if [ -f "$p" ]; then EASYTIER_BIN="$p" break fi done if [ -z "$EASYTIER_BIN" ]; then echo "未找到 easytier-core" exit 1 fi echo "EasyTier 路径: $EASYTIER_BIN" ######################################## # 主机名 ######################################## HOSTNAME=$(hostname) ######################################## # 创建 systemd 服务 ######################################## cat >/etc/systemd/system/easytier.service </etc/sysctl.d/99-easytier.conf </etc/sysctl.d/99-bbr.conf </etc/fail2ban/filter.d/easytier.conf <:\\d+, err: wait resp error:.+ EOF cat >/etc/fail2ban/jail.local </dev/null 2>&1; then firewall-cmd --permanent --add-port=11010/tcp firewall-cmd --permanent --add-port=11010/udp firewall-cmd --permanent --add-port=11011/tcp firewall-cmd --permanent --add-port=11011/udp firewall-cmd --permanent --add-port=11012/tcp firewall-cmd --permanent --add-port=11012/udp firewall-cmd --permanent --add-port=11013/tcp firewall-cmd --reload fi ######################################## # 启动服务 ######################################## systemctl daemon-reload systemctl enable --now easytier systemctl enable --now fail2ban ######################################## # 输出状态 ######################################## echo echo "======================================" echo " EasyTier 公益节点部署完成" echo "======================================" echo systemctl --no-pager --full status easytier || true echo echo "--------------------------------------" fail2ban-client status || true echo echo "--------------------------------------" echo "BBR 状态:" sysctl net.ipv4.tcp_congestion_control echo echo "监听端口:" ss -lntup | grep easytier || true echo echo "部署完成"