加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
克隆/下载
adbyby.sh 6.57 KB
一键复制 编辑 原始数据 按行查看 历史
#!/usr/bin/env bash
PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin
export PATH
#=================================================
# System Required: CentOS/Debian/Ubuntu
# Description: ADbyby
# Version: 1.0.1
# Author: Toyo
# Blog: https://doub.io/adbyby-jc2/
#=================================================
file="/usr/local/adbyby"
adbyby_file="/usr/local/adbyby/bin/adbyby"
adbyby_conf="/usr/local/adbyby/bin/adhook.ini"
Green_font_prefix="\033[32m" && Red_font_prefix="\033[31m" && Green_background_prefix="\033[42;37m" && Red_background_prefix="\033[41;37m" && Font_color_suffix="\033[0m"
Info="${Green_font_prefix}[信息]${Font_color_suffix}"
Error="${Red_font_prefix}[错误]${Font_color_suffix}"
Tip="${Green_font_prefix}[注意]${Font_color_suffix}"
#检查系统
check_sys(){
if [[ -f /etc/redhat-release ]]; then
release="centos"
elif cat /etc/issue | grep -q -E -i "debian"; then
release="debian"
elif cat /etc/issue | grep -q -E -i "ubuntu"; then
release="ubuntu"
elif cat /etc/issue | grep -q -E -i "centos|red hat|redhat"; then
release="centos"
elif cat /proc/version | grep -q -E -i "debian"; then
release="debian"
elif cat /proc/version | grep -q -E -i "ubuntu"; then
release="ubuntu"
elif cat /proc/version | grep -q -E -i "centos|red hat|redhat"; then
release="centos"
fi
bit=`uname -m`
}
check_installed_status(){
[[ ! -e ${adbyby_file} ]] && echo -e "${Error} ADbyby 没有安装,请检查 !" && exit 1
}
check_pid(){
PID=`ps -ef| grep "adbyby"| grep -v grep| grep -v "adbyby.sh"| grep -v "init.d"| grep -v "service"| awk '{print $2}'`
}
Download_adbyby(){
cd ${file}
if [[ ${bit} == "x86_64" ]]; then
wget --no-check-certificate -O "adbyby.tar.gz" "https://raw.githubusercontent.com/adbyby/Files/master/linux.64.tar.gz"
else
wget --no-check-certificate -O "adbyby.tar.gz" "https://raw.githubusercontent.com/adbyby/Files/master/linux.86.tar.gz"
fi
[[ ! -e "adbyby.tar.gz" ]] && echo -e "${Error} ADbyby 下载失败 !" && exit 1
tar -xzf adbyby.tar.gz && rm -rf adbyby.tar.gz
[[ ! -e "${adbyby_file}" ]] && echo -e "${Error} ADbyby 解压失败 !" && exit 1
cd bin
chmod 777 adbyby
wget -N --no-check-certificate "https://raw.githubusercontent.com/ToyoDAdoubi/doubi/master/other/adhook.ini"
}
Service_adbyby(){
if [[ ${release} = "centos" ]]; then
if ! wget --no-check-certificate https://raw.githubusercontent.com/ToyoDAdoubi/doubi/master/service/adbyby_centos -O /etc/init.d/adbyby; then
echo -e "${Error} ADbyby服务 管理脚本下载失败 !" && exit 1
fi
chmod +x /etc/init.d/adbyby
chkconfig --add adbyby
chkconfig adbyby on
else
if ! wget --no-check-certificate https://raw.githubusercontent.com/ToyoDAdoubi/doubi/master/service/adbyby_debian -O /etc/init.d/adbyby; then
echo -e "${Error} ADbyby服务 管理脚本下载失败 !" && exit 1
fi
chmod +x /etc/init.d/adbyby
update-rc.d -f adbyby defaults
fi
echo -e "${Info} ADbyby服务 管理脚本下载完成 !"
}
Installation_dependency(){
if [[ ${release} = "centos" ]]; then
yum update
yum install -y vim
else
apt-get update
apt-get install -y vim
fi
mkdir ${file}
}
Install_adbyby(){
[[ -e ${adbyby_file} ]] && echo -e "${Error} 检测到 ADbyby 已安装 !" && exit 1
check_sys
echo -e "${Info} 开始安装/配置 依赖..."
Installation_dependency
echo -e "${Info} 开始下载/安装..."
Download_adbyby
echo -e "${Info} 开始下载/安装 服务脚本(init)..."
Service_adbyby
echo -e "${Info} 开始设置 iptables防火墙..."
Set_iptables
echo -e "${Info} 开始添加 iptables防火墙规则..."
Add_iptables
echo -e "${Info} 开始保存 iptables防火墙规则..."
Save_iptables
echo -e "${Info} 所有步骤 安装完毕,开始启动..."
Start_adbyby
}
Start_adbyby(){
check_installed_status
check_pid
[[ ! -z ${PID} ]] && echo -e "${Error} ADbyby 正在运行,请检查 !" && exit 1
service adbyby start
}
Stop_adbyby(){
check_installed_status
check_pid
[[ -z ${PID} ]] && echo -e "${Error} ADbyby 没有运行,请检查 !" && exit 1
service adbyby stop
}
Restart_adbyby(){
check_installed_status
check_pid
[[ ! -z ${PID} ]] && service adbyby stop
service adbyby start
}
Set_adbyby(){
check_installed_status
vi ${adbyby_conf}
Restart_adbyby
}
Uninstall_adbyby(){
check_installed_status
echo "确定要卸载 ADbyby ? (y/N)"
echo
read -e -p "(默认: n):" unyn
[[ -z ${unyn} ]] && unyn="n"
if [[ ${unyn} == [Yy] ]]; then
check_pid
[[ ! -z $PID ]] && kill -9 ${PID}
Del_iptables
Save_iptables
rm -rf ${file} && rm -rf /etc/init.d/adbyby
if [[ ${release} = "centos" ]]; then
chkconfig --del adbyby
else
update-rc.d -f adbyby remove
fi
echo && echo "ADbyby 卸载完成 !" && echo
else
echo && echo "卸载已取消..." && echo
fi
}
Add_iptables(){
iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-ports 8118
}
Del_iptables(){
iptables -t nat -D PREROUTING -p tcp --dport 80 -j REDIRECT --to-ports 8118
}
Save_iptables(){
if [[ ${release} == "centos" ]]; then
service iptables save
else
iptables-save > /etc/iptables.up.rules
fi
}
Set_iptables(){
echo -e "net.ipv4.ip_forward=1" >> /etc/sysctl.conf
sysctl -p
if [[ ${release} == "centos" ]]; then
service iptables save
chkconfig --level 2345 iptables on
else
iptables-save > /etc/iptables.up.rules
echo -e '#!/bin/bash\n/sbin/iptables-restore < /etc/iptables.up.rules' > /etc/network/if-pre-up.d/iptables
chmod +x /etc/network/if-pre-up.d/iptables
fi
}
echo && echo -e "请输入一个数字来选择选项
${Green_font_prefix}1.${Font_color_suffix} 安装 ADbyby
${Green_font_prefix}2.${Font_color_suffix} 卸载 ADbyby
————————————
${Green_font_prefix}3.${Font_color_suffix} 启动 ADbyby
${Green_font_prefix}4.${Font_color_suffix} 停止 ADbyby
${Green_font_prefix}5.${Font_color_suffix} 重启 ADbyby
————————————
${Green_font_prefix}6.${Font_color_suffix} 修改 配置文件
————————————" && echo
if [[ -e ${adbyby_file} ]]; then
check_pid
if [[ ! -z "${PID}" ]]; then
echo -e " 当前状态: ${Green_font_prefix}已安装${Font_color_suffix}${Green_font_prefix}已启动${Font_color_suffix}"
else
echo -e " 当前状态: ${Green_font_prefix}已安装${Font_color_suffix}${Red_font_prefix}未启动${Font_color_suffix}"
fi
else
echo -e " 当前状态: ${Red_font_prefix}未安装${Font_color_suffix}"
fi
echo
read -e -p " 请输入数字 [1-8]:" num
case "$num" in
1)
Install_adbyby
;;
2)
Uninstall_adbyby
;;
3)
Start_adbyby
;;
4)
Stop_adbyby
;;
5)
Restart_adbyby
;;
6)
Set_adbyby
;;
*)
echo "请输入正确数字 [1-8]"
;;
esac
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化