diff --git a/proxy/mihomo-tun.sh b/proxy/mihomo-tun.sh new file mode 100644 index 0000000..9445d17 --- /dev/null +++ b/proxy/mihomo-tun.sh @@ -0,0 +1,234 @@ +#!/bin/bash +set -e + +# mihomo 版本号 +MIHOMO_VERSION="${MIHOMO_VERSION:-1.19.11}" + +CONFIG_DIR="/etc/mihomo" +CONFIG_FILE="$CONFIG_DIR/config.yaml" +SERVICE_FILE="/etc/systemd/system/mihomo.service" +BINARY_PATH="/usr/local/bin/mihomo" + +# 检查 root +if [ "$EUID" -ne 0 ]; then + echo "请使用 root 运行脚本" + exit 1 +fi + +# 检查并安装依赖 +check_dependencies() { + echo "检查系统依赖..." + + # 检查 curl + if ! command -v curl &>/dev/null; then + echo "curl 未安装,正在安装..." + if command -v apt-get &>/dev/null; then + apt-get update && apt-get install -y curl + elif command -v yum &>/dev/null; then + yum install -y curl + elif command -v dnf &>/dev/null; then + dnf install -y curl + elif command -v pacman &>/dev/null; then + pacman -S --noconfirm curl + else + echo "无法自动安装 curl,请手动安装后重试" + exit 1 + fi + fi + + # 检查 gzip + if ! command -v gzip &>/dev/null; then + echo "gzip 未安装,正在安装..." + if command -v apt-get &>/dev/null; then + apt-get update && apt-get install -y gzip + elif command -v yum &>/dev/null; then + yum install -y gzip + elif command -v dnf &>/dev/null; then + dnf install -y gzip + elif command -v pacman &>/dev/null; then + pacman -S --noconfirm gzip + else + echo "无法自动安装 gzip,请手动安装后重试" + exit 1 + fi + fi + + echo "依赖检查完成" +} + +# 安装 mihomo +install_mihomo() { + check_dependencies + + if ! command -v mihomo &>/dev/null; then + echo "检测到 mihomo 未安装,正在下载..." + + # 获取系统架构 + ARCH=$(uname -m) + case "$ARCH" in + x86_64) + ARCH_TAG="linux-amd64" + ;; + aarch64 | arm64) + ARCH_TAG="linux-arm64" + ;; + armv7l) + ARCH_TAG="linux-armv7" + ;; + *) + echo "不支持的架构: $ARCH" + exit 1 + ;; + esac + + # 下载地址 + DOWNLOAD_URL="https://gh-proxy.com/https://github.com/MetaCubeX/mihomo/releases/download/v${MIHOMO_VERSION}/mihomo-${ARCH_TAG}-v${MIHOMO_VERSION}.gz" + + echo "正在从以下地址下载: $DOWNLOAD_URL" + + # 下载并解压二进制文件 + if curl -L -o "/tmp/mihomo.gz" "$DOWNLOAD_URL"; then + gzip -d "/tmp/mihomo.gz" + mv "/tmp/mihomo" "$BINARY_PATH" + chmod +x "$BINARY_PATH" + echo "mihomo ${MIHOMO_VERSION} 安装完成 ($ARCH)" + else + echo "下载失败,请检查网络连接或版本号" + exit 1 + fi + else + echo "mihomo 已安装" + fi +} + +# 配置 mihomo +configure_mihomo() { + mkdir -p "$CONFIG_DIR" + + # 获取 SOCKS5 代理配置 + read -rp "请输入SOCKS5代理服务器地址 [默认127.0.0.1]: " SOCKS_ADDRESS + SOCKS_ADDRESS=${SOCKS_ADDRESS:-127.0.0.1} + read -rp "请输入SOCKS5代理服务器端口 [默认7890]: " SOCKS_PORT + SOCKS_PORT=${SOCKS_PORT:-7890} + + cat > "$CONFIG_FILE" < "$SERVICE_FILE" <