150 lines
3.5 KiB
Bash
150 lines
3.5 KiB
Bash
#!/bin/bash
|
||
|
||
#fonts color
|
||
Green="\033[32m"
|
||
Red="\033[31m"
|
||
Yellow="\033[33m"
|
||
BLUE="\033[36m"
|
||
Plain="\033[0m"
|
||
red() {
|
||
echo -e "\033[31m\033[01m$1\033[0m"
|
||
}
|
||
|
||
green() {
|
||
echo -e "\033[32m\033[01m$1\033[0m"
|
||
}
|
||
|
||
yellow() {
|
||
echo -e "\033[33m\033[01m$1\033[0m"
|
||
}
|
||
|
||
|
||
is_root() {
|
||
if [ 0 == $UID ]; then
|
||
green "当前用户是root用户,进入安装流程 "
|
||
sleep 3
|
||
else
|
||
red "当前用户不是root用户,请切换到root用户后重新执行脚本 "
|
||
exit 1
|
||
fi
|
||
}
|
||
|
||
check_system() {
|
||
source '/etc/os-release'
|
||
if [[ "${ID}" == "centos" && ${VERSION_ID} -ge 7 ]]; then
|
||
green "当前系统为 Centos ${VERSION_ID} ${VERSION} "
|
||
INS="yum"
|
||
elif [[ "${ID}" == "debian" && ${VERSION_ID} -ge 8 ]]; then
|
||
green "当前系统为 Debian ${VERSION_ID} ${VERSION} "
|
||
INS="apt"
|
||
$INS update
|
||
## 添加 Nginx apt源
|
||
elif [[ "${ID}" == "ubuntu" && $(echo "${VERSION_ID}" | cut -d '.' -f1) -ge 16 ]]; then
|
||
green "当前系统为 Ubuntu ${VERSION_ID} ${UBUNTU_CODENAME} "
|
||
INS="apt"
|
||
rm /var/lib/dpkg/lock
|
||
dpkg --configure -a
|
||
rm /var/lib/apt/lists/lock
|
||
rm /var/cache/apt/archives/lock
|
||
$INS update
|
||
else
|
||
red "当前系统为 ${ID} ${VERSION_ID} 不在支持的系统列表内,安装中断 "
|
||
exit 1
|
||
fi
|
||
}
|
||
|
||
get_self_cert() {
|
||
mkdir self
|
||
$INS install -y openssl
|
||
# openssl genrsa -out self/1.key 2048
|
||
openssl ecparam -genkey -name prime256v1 -noout -out self/1.key
|
||
# 生成CA证书
|
||
openssl req -new -x509 -days 3650 -key self/1.key -out self/1.crt -subj "/C=US/O=DigiCert Inc. /CN=DigiCert Local Root CA"
|
||
}
|
||
|
||
install_self() {
|
||
get_self_cert
|
||
echo "你的证书:"
|
||
cat self/1.crt
|
||
echo "你的证书密钥:"
|
||
cat self/1.key
|
||
echo "所有文件在self文件夹下"
|
||
}
|
||
|
||
uninstall_self() {
|
||
rm -r self
|
||
}
|
||
|
||
install_docker() {
|
||
$INS install -y curl
|
||
curl -fsSL https://get.docker.com | sh
|
||
}
|
||
|
||
run_gost() {
|
||
# 下载脚本
|
||
curl -fsSL https://git.igewu.org/yanglc/xbbox/raw/branch/main/rungost.sh -o rungost.sh
|
||
|
||
# 添加可执行权限并运行脚本
|
||
chmod +x rungost.sh
|
||
./rungost.sh
|
||
|
||
}
|
||
|
||
self_cert() {
|
||
# 下载脚本
|
||
curl -fsSL https://git.igewu.org/yanglc/xbbox/raw/branch/main/selfcert.sh -0 selfcert.sh
|
||
|
||
chmod +x selfsert.sh
|
||
./selfcert.sh
|
||
}
|
||
wginstall(){
|
||
curl -fsSL https://git.igewu.org/yanglc/xbbox/raw/branch/main/wginstall.sh -0 wginstall.sh
|
||
|
||
chmod +x wginstall.sh
|
||
./wginstall.sh
|
||
}
|
||
|
||
menu() {
|
||
echo -e "—————————————— 小白工具箱一键脚本 ——————————————"""
|
||
echo -e "\t---authored by yanglc---"
|
||
echo -e "${Green}0.${Plain} 退出 "
|
||
echo -e "${Green}1.${Plain} 生成自签证书 "
|
||
echo -e "${Green}2.${Plain} 删除自签证书 "
|
||
echo -e "${Green}3.${Plain} 安装Docker "
|
||
echo -e "${Green}4.${Plain} gost控制脚本"
|
||
echo -e "${Green}5.${Plain} 自签证书脚本(备用)"
|
||
echo -e "${Green}6.${Plain} Wireguard配置脚本"
|
||
|
||
# 调用is_root()函数来检查是否为root用户
|
||
is_root
|
||
|
||
read -rp "请输入数字:" menu_num
|
||
case $menu_num in
|
||
0)
|
||
exit 0
|
||
;;
|
||
1)
|
||
install_self
|
||
;;
|
||
2)
|
||
uninstall_self
|
||
;;
|
||
3)
|
||
install_docker
|
||
;;
|
||
4)
|
||
run_gost
|
||
;;
|
||
5)
|
||
self_cert
|
||
;;
|
||
6)
|
||
wginstall
|
||
;;
|
||
*)
|
||
red "请输入正确的数字"
|
||
;;
|
||
esac
|
||
}
|
||
|
||
menu |