moxbox init

This commit is contained in:
monlor
2020-03-05 00:08:40 +08:00
commit 76dbe98978
856 changed files with 170708 additions and 0 deletions

View File

@@ -0,0 +1,127 @@
#!/bin/sh
source /etc/mixbox/bin/base
eval `mbdb export smartdns`
[ -z "${port}" ] && port=535
set_iptable()
{
IPS="`ifconfig | grep "inet addr" | grep -v ":127" | grep "Bcast" | awk '{print $2}' | awk -F: '{print $2}'`"
for IP in $IPS
do
[ -z "$(iptables -t nat -S | grep "${appname}"-"$IP")" ] && iptables -t nat -A PREROUTING -p udp -d $IP --dport 53 -m comment --comment "${appname}"-"$IP" -j REDIRECT --to-ports ${port}
done
}
clear_iptable()
{
eval `iptables -t nat -S | grep "${appname}"- | sed -e 's/-A/iptables -t nat -D/g' | sed -e 's/\$/;/g'`
}
set_dnsmasq() {
uci set dhcp.@dnsmasq[0].local=127.0.0.1#$port
uci commit
/etc/init.d/dnsmasq reload
}
reset_dnsmsq() {
uci set dhcp.@dnsmasq[0].local=/lan/
uci commit
/etc/init.d/dnsmasq reload
}
set_default_dns() {
cat >> ${mbroot}/apps/${appname}/config/${appname}.conf <<-EOF
server 223.5.5.5:53
server 114.114.114.114:53
server 180.153.225.136:53
server 180.76.76.76:53
server 101.226.4.5:53
server 8.8.8.8:53
server 208.67.220.220:53
server 1.1.1.1:53
server 117.50.11.11:53
server 119.29.29.29:53
EOF
}
start() {
[ -n "$(pidof ${appname})" ] && logsh "$service" "${appname}已经在运行!" && exit 1
logsh "$service" "正在启动${appname}服务... "
# cru a "${appname}" "0 6 * * * ${mbroot}/apps/${appname}/scripts/${appname}.sh restart"
# Scripts Here
# open_port
write_firewall_start
# 修改上游服务器
sed -i '/^server/d' ${mbroot}/apps/${appname}/config/${appname}.conf
if [ -z "$(mbdb values ${appname}.info)" ]; then
logsh "$service" "未添加自定义DNS服务器"
else
mbdb values ${appname}.info >> ${mbroot}/apps/${appname}/config/${appname}.conf
fi
[ "$default_dns" = "1" ] && set_default_dns
# 修改端口号
sed -i '/bind \[::\]:/d' ${mbroot}/apps/${appname}/config/${appname}.conf
echo "bind [::]:${port}" >> ${mbroot}/apps/${appname}/config/${appname}.conf
logsh "$service" "添加dnsmasq上游解析dns中..."
set_dnsmasq &> /dev/null
[ $? -ne 0 ] && logsh "$service" "未监测到dnsmasq尝试添加iptables规则..." && set_iptable
daemon ${mbroot}/apps/${appname}/bin/${appname} -c ${mbroot}/apps/${appname}/config/${appname}.conf
if [ $? -ne 0 ]; then
logsh "$service" "启动${appname}服务失败!"
else
logsh "$service" "启动${appname}服务完成!"
fi
}
stop() {
logsh "$service" "正在停止${appname}服务... "
[ "$enable" == '0' ] && destroy
killall -9 ${appname} &> /dev/null
clear_iptable &> /dev/null
reset_dnsmsq &> /dev/null
remove_firewall_start
#
}
destroy() {
# End app, Scripts here
# cru d "${appname}"
return
}
end() {
mbdb set $appname.main.enable=0
stop && exit 1
}
status() {
if [ -n "$(pidof ${appname})" ]; then
status="运行中|1"
else
status="未运行|0"
fi
mbdb set $appname.main.status="$status"
}
case "$1" in
start) start ;;
stop) stop ;;
restart) stop; start ;;
reload) clear_iptable && set_iptable ;;
status) status ;;
esac