#!/bin/bash # 彩色输出函数 color_output() { echo -e "$1" } # 打印脚本头部,增加美观 print_header() { clear color_output "\e[35m~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\e[0m" color_output "\e[35m\ _____ __ __ _ / \e[0m" color_output "\e[35m\ |__ /___ _ __ __\ \ / / __| |_ / \e[0m" color_output "\e[35m\ / // _ \ '__/ _ \ \ /\ / / '__| __| / \e[0m" color_output "\e[35m\ / /| __/ | | (_) \ V V /| | | |_ / \e[0m" color_output "\e[35m\ /____\___|_| \___/ \_/\_/ |_| \__| / \e[0m" color_output "\e[35m\ Z e r o W r t By Z e r o / \e[0m" color_output "\e[31m~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\e[0m" color_output "===============================================" color_output " 版本: 5.1 " color_output " 作者: Zero " color_output " 日期: $(date +'%Y-%m-%d') " color_output "===============================================" color_output " 本脚本帮助您设置 ZeroWrt-24.10。 " color_output " 博客地址: https://www.kejizero.online " color_output "===============================================" } # 显示菜单 show_menu() { echo "==============================" echo " ZeroWrt 菜单 " echo "==============================" echo "1. 更改 LAN 口 IP 地址" echo "2. 更改管理员密码" echo "3. 切换默认主题" echo "4. 恢复出厂设置" echo "5. 一键换源" echo "6. 安装 ShellClash" echo "0. 退出" echo "==============================" read -p "请输入您的选择 [0-6]: " choice case "$choice" in 1) change_ip ;; 2) change_password ;; 3) change_theme ;; 4) reset_config ;; 5) change_source ;; 6) install_shellclash ;; 0) exit 0 ;; *) echo "无效选项,请重新输入"; show_menu ;; esac } # 1. 更换 LAN 口 IP 地址 change_ip() { read -p "请输入新的 LAN 口 IP 地址(如 192.168.1.2): " new_ip if [[ -n "$new_ip" ]]; then uci set network.lan.ipaddr="$new_ip" uci commit network /etc/init.d/network restart echo "LAN 口 IP 已成功更改为 $new_ip" else echo "无效的 IP 地址,操作取消。" fi read -p "按 Enter 键返回菜单..." show_menu } # 2. 更改管理员密码 change_password() { read -p "请输入新的管理员密码: " new_password if [[ -n "$new_password" ]]; then echo -e "$new_password\n$new_password" | passwd root echo "管理员密码已成功更改。" else echo "无效的密码,操作取消。" fi read -p "按 Enter 键返回菜单..." show_menu } # 3. 切换默认主题 change_theme() { uci set luci.main.mediaurlbase='/luci-static/bootstrap' uci commit luci echo "主题已成功切换为设计主题。" read -p "按 Enter 键返回菜单..." show_menu } # 4. 一键重置配置 reset_config() { echo "恢复出厂设置中..." firstboot -y echo "设备将在 5 秒钟后重启..." sleep 5 reboot } # 5. 一键换源 change_source() { echo "请选择要使用的源:" echo "1. 阿里源" echo "2. 清华源" echo "3. 中科大源" echo "4. 官方源" echo "0. 返回" read -p "请输入您的选择 [0-4]: " source_choice case "$source_choice" in 1) base_url="https://mirrors.aliyun.com/openwrt/releases/24.10.0-rc3/packages/x86_64" ;; 2) base_url="https://mirrors.tuna.tsinghua.edu.cn/openwrt/releases/24.10.0-rc3/packages/x86_64" ;; 3) base_url="https://mirrors.ustc.edu.cn/openwrt/releases/24.10.0-rc3/packages/x86_64" ;; 4) base_url="https://downloads.openwrt.org/releases/24.10.0-rc3/packages/x86_64" ;; 0) show_menu ; return ;; *) echo "无效选项,返回菜单。" ; show_menu ; return ;; esac cat < /etc/opkg/distfeeds.conf src/gz openwrt_base $base_url/base src/gz openwrt_luci $base_url/luci src/gz openwrt_packages $base_url/packages src/gz openwrt_routing $base_url/routing src/gz openwrt_telephony $base_url/telephony EOF echo "软件源已成功切换。" read -p "按 Enter 键返回菜单..." show_menu } # 6. 安装 ShellClash install_shellclash() { echo "请选择 ShellClash 的安装源:" echo "1. GitHub 源" echo "2. jsDelivr CDN 源" echo "0. 返回" read -p "请输入您的选择 [0-2]: " install_choice case "$install_choice" in 1) export url='https://raw.githubusercontent.com/juewuy/ShellCrash/master' ;; 2) export url='https://fastly.jsdelivr.net/gh/juewuy/ShellCrash@master' ;; 0) show_menu ; return ;; *) echo "无效选项,返回菜单。" ; show_menu ; return ;; esac sh -c "$(curl -kfsSl $url/install.sh)" && source /etc/profile &> /dev/null echo "ShellClash 已成功安装。" read -p "按 Enter 键返回菜单..." show_menu } # 启动菜单 print_header show_menu