luci-app-openclash: bump to v0.36.4
This commit is contained in:
parent
9e084c5bb0
commit
442186d8d7
@ -1,7 +1,7 @@
|
||||
include $(TOPDIR)/rules.mk
|
||||
|
||||
PKG_NAME:=luci-app-openclash
|
||||
PKG_VERSION:=0.36.3
|
||||
PKG_VERSION:=0.36.4
|
||||
PKG_RELEASE:=beta
|
||||
PKG_MAINTAINER:=vernesong <https://github.com/vernesong/OpenClash>
|
||||
|
||||
@ -14,7 +14,7 @@ define Package/$(PKG_NAME)
|
||||
SUBMENU:=3. Applications
|
||||
TITLE:=LuCI support for clash
|
||||
PKGARCH:=all
|
||||
DEPENDS:=+iptables +dnsmasq-full +coreutils +coreutils-nohup +bash +wget
|
||||
DEPENDS:=+iptables +dnsmasq-full +coreutils +coreutils-nohup +bash +curl +jsonfilter +ca-certificates
|
||||
MAINTAINER:=vernesong
|
||||
endef
|
||||
|
||||
@ -48,6 +48,7 @@ if [ -f "/etc/config/openclash" ]; then
|
||||
cp "/etc/config/openclash_custom_rules.list" "/tmp/openclash_custom_rules.list.bak" >/dev/null 2>&1
|
||||
cp "/etc/config/openclash_custom_hosts.list" "/tmp/openclash_custom_hosts.list.bak" >/dev/null 2>&1
|
||||
cp "/etc/config/openclash_custom_fake_black.conf" "/tmp/openclash_custom_fake_black.conf.bak" >/dev/null 2>&1
|
||||
cp "/etc/openclash/history" "/tmp/openclash_history.bak" >/dev/null 2>&1
|
||||
fi
|
||||
if [ -f "/etc/openclash/custom/openclash_custom_rules.list" ]; then
|
||||
cp "/etc/openclash/custom/openclash_custom_rules.list" "/tmp/openclash_custom_rules.list.bak" >/dev/null 2>&1
|
||||
@ -76,6 +77,7 @@ if [ -f "/tmp/openclash.bak" ]; then
|
||||
mv "/tmp/openclash_custom_rules.list.bak" "/etc/openclash/custom/openclash_custom_rules.list" >/dev/null 2>&1
|
||||
mv "/tmp/openclash_custom_hosts.list.bak" "/etc/openclash/custom/openclash_custom_hosts.list" >/dev/null 2>&1
|
||||
mv "/tmp/openclash_custom_fake_black.conf.bak" "/etc/openclash/custom/openclash_custom_fake_black.conf" >/dev/null 2>&1
|
||||
mv "/tmp/openclash_history.bak" "/etc/openclash/history" >/dev/null 2>&1
|
||||
fi
|
||||
if [ -f "/tmp/config.yaml" ]; then
|
||||
mv "/tmp/config.yaml" "/etc/openclash/config/config.yaml" >/dev/null 2>&1
|
||||
@ -113,6 +115,7 @@ fi
|
||||
mv "/etc/openclash/config" "/tmp/openclash_config" >/dev/null 2>&1
|
||||
mv "/etc/openclash/proxy_provider" "/tmp/openclash_proxy_provider" >/dev/null 2>&1
|
||||
mv "/etc/openclash/game_rules" "/tmp/openclash_game_rules" >/dev/null 2>&1
|
||||
mv "/etc/openclash/history" "/tmp/openclash_history.bak" >/dev/null 2>&1
|
||||
cp "/etc/config/openclash" "/tmp/openclash.bak" >/dev/null 2>&1
|
||||
cp "/etc/config/openclash_custom_rules.list" "/tmp/openclash_custom_rules.list.bak" >/dev/null 2>&1
|
||||
cp "/etc/config/openclash_custom_hosts.list" "/tmp/openclash_custom_hosts.list.bak" >/dev/null 2>&1
|
||||
@ -129,6 +132,7 @@ if [ -f "/etc/openclash/clash" ]; then
|
||||
rm -rf /etc/openclash/backup >/dev/null 2>&1
|
||||
rm -rf /etc/openclash/proxy_provider >/dev/null 2>&1
|
||||
rm -rf /etc/openclash/game_rules >/dev/null 2>&1
|
||||
rm -rf /etc/openclash/history >/dev/null 2>&1
|
||||
else
|
||||
rm -rf /etc/openclash >/dev/null 2>&1
|
||||
fi
|
||||
|
||||
@ -165,7 +165,7 @@ yml_check()
|
||||
awk '/^proxy-provider:/,/^Proxy Group:/{print}' "$3" | sed '/^Proxy Group:/d' >/tmp/backprovider.yaml 2>/dev/null
|
||||
sed -i '/^Proxy Group:/i\proxy-provider-tag' "$3" 2>/dev/null
|
||||
sed -i '/^proxy-provider:/,/proxy-provider-tag/d' "$3" 2>/dev/null
|
||||
sed -i '/^Rule:/i\proxy-provider:' "$3" 2>/dev/null
|
||||
sed -i '/^Proxy:/i\proxy-provider:' "$3" 2>/dev/null
|
||||
sed -i '/^proxy-provider:/d' /tmp/backprovider.yaml 2>/dev/null
|
||||
sed -i '/proxy-provider:/r/tmp/backprovider.yaml' "$3" 2>/dev/null
|
||||
rm -rf /tmp/backprovider.yaml 2>/dev/null
|
||||
@ -506,11 +506,16 @@ yml_game_rule_get()
|
||||
local section="$1"
|
||||
config_get_bool "enabled" "$section" "enabled" "1"
|
||||
config_get "group" "$section" "group" ""
|
||||
config_get "config" "$section" "config" ""
|
||||
|
||||
if [ "$enabled" = "0" ]; then
|
||||
return
|
||||
fi
|
||||
|
||||
if [ ! -z "$config" ] && [ "$config" != "$CONFIG_NAME" ] && [ "$config" != "all" ]; then
|
||||
return
|
||||
fi
|
||||
|
||||
if [ -z "$group" ]; then
|
||||
return
|
||||
fi
|
||||
@ -523,11 +528,16 @@ yml_game_group_get()
|
||||
local section="$1"
|
||||
config_get_bool "enabled" "$section" "enabled" "1"
|
||||
config_get "group" "$section" "group" ""
|
||||
config_get "config" "$section" "config" ""
|
||||
|
||||
if [ "$enabled" = "0" ]; then
|
||||
return
|
||||
fi
|
||||
|
||||
if [ ! -z "$config" ] && [ "$config" != "$CONFIG_NAME" ] && [ "$config" != "all" ]; then
|
||||
return
|
||||
fi
|
||||
|
||||
if [ -z "$group" ]; then
|
||||
return
|
||||
fi
|
||||
@ -609,6 +619,7 @@ else
|
||||
cp $BACKUP_FILE $CONFIG_FILE
|
||||
fi
|
||||
fi
|
||||
CONFIG_NAME=$(echo $CONFIG_FILE |awk -F '/' '{print $5}' 2>/dev/null)
|
||||
|
||||
enable=$(uci get openclash.config.enable 2>/dev/null)
|
||||
LOGTIME=$(date "+%Y-%m-%d %H:%M:%S")
|
||||
@ -691,13 +702,14 @@ if [ "$enable" -eq 1 ] && [ -f "$CONFIG_FILE" ]; then
|
||||
nohup $CLASH -d "$CLASH_CONFIG" -f "$CONFIG_FILE" >> $LOG_FILE 2>&1 &
|
||||
|
||||
#检测proxy_provider配置文件状态
|
||||
echo "第六步: 等待主程序下载代理集..." >$START_LOG
|
||||
yml_proxy_provider_check "$PROXY_PROVIDER_FILE"
|
||||
rm -rf /tmp/yaml_* 2>/dev/null
|
||||
|
||||
echo "第六步: 设置控制面板..." >$START_LOG
|
||||
echo "第七步: 设置控制面板..." >$START_LOG
|
||||
ln -s /usr/share/openclash/yacd /www/openclash 2>/dev/null
|
||||
|
||||
echo "第七步: 设置 OpenClash 防火墙规则..." >$START_LOG
|
||||
echo "第八步: 设置 OpenClash 防火墙规则..." >$START_LOG
|
||||
if [ -z "$(uci get firewall.openclash 2>/dev/null)" ] || [ -z "$(uci get ucitrack.@openclash[-1].init 2>/dev/null)" ]; then
|
||||
uci delete ucitrack.@openclash[-1] >/dev/null 2>&1
|
||||
uci add ucitrack openclash >/dev/null 2>&1
|
||||
@ -753,6 +765,7 @@ EOF
|
||||
ipset add localnetwork 224.0.0.0/4
|
||||
ipset add localnetwork 240.0.0.0/4
|
||||
ipset add localnetwork 172.16.0.0/12
|
||||
ipset add localnetwork "$wan_ip4"
|
||||
#启动TUN
|
||||
if [ "$en_mode_tun" = "2" ]; then
|
||||
ip tuntap add user root mode tun clash0
|
||||
@ -775,7 +788,7 @@ EOF
|
||||
fi
|
||||
fi
|
||||
|
||||
echo "第八步: 重启 Dnsmasq 程序..." >$START_LOG
|
||||
echo "第九步: 重启 Dnsmasq 程序..." >$START_LOG
|
||||
if [ "$(iptables -t nat -nL PREROUTING --line-number |grep dpt:53 |wc -l)" -gt 2 ]; then
|
||||
echo "发现53端口被劫持,如连接异常请将OpenClash设置为劫持53端口程序的上游DNS服务器!" >$START_LOG
|
||||
echo "${LOGTIME} Warring: OpenClash May Can Not Take Over DNS, Please Use OpenClash for Upstream DNS Resolve Server" >> $LOG_FILE
|
||||
@ -785,15 +798,17 @@ EOF
|
||||
fake_block "$en_mode" "$direct_dns"
|
||||
/etc/init.d/dnsmasq restart >/dev/null 2>&1
|
||||
if pidof clash >/dev/null; then
|
||||
echo "第九步: 添加 OpenClash 计划任务,启动进程守护程序..." >$START_LOG
|
||||
echo "第十步: 添加 OpenClash 计划任务,启动进程守护程序..." >$START_LOG
|
||||
add_cron
|
||||
if [ -z "$(uci get dhcp.lan.dhcpv6 2>/dev/null)" ]; then
|
||||
echo "OpenClash 启动成功,请等待服务器上线!" >$START_LOG
|
||||
echo "${LOGTIME} OpenClash Start Successful" >> $LOG_FILE
|
||||
/usr/share/openclash/openclash_history_set.sh
|
||||
sleep 5
|
||||
else
|
||||
echo "OpenClash 启动成功,检测到您启用了IPV6的DHCP服务,可能会造成连接异常!" >$START_LOG
|
||||
echo "${LOGTIME} OpenClash Start Successful, Please Note That Network May Abnormal With IPV6's DHCP Server" >> $LOG_FILE
|
||||
/usr/share/openclash/openclash_history_set.sh
|
||||
sleep 10
|
||||
fi
|
||||
echo "" >$START_LOG
|
||||
@ -813,12 +828,14 @@ EOF
|
||||
if [ -z "$(uci get dhcp.lan.dhcpv6 2>/dev/null)" ]; then
|
||||
echo "OpenClash 使用备份规则启动成功,请更新、检查变动的规则后重试!" >$START_LOG
|
||||
echo "${LOGTIME} OpenClash Start Successful With Backup Rules Config, Please Check Or Update Other Rules And Retry" >> $LOG_FILE
|
||||
/usr/share/openclash/openclash_history_set.sh
|
||||
sleep 10
|
||||
else
|
||||
echo "OpenClash 使用备份规则启动成功,请更新、检查变动的规则后重试!" >$START_LOG
|
||||
echo "${LOGTIME} OpenClash Start Successful With Backup Rules Config, Please Check Or Update Other Rules And Retry" >> $LOG_FILE
|
||||
sleep 10
|
||||
echo "OpenClash 启动成功,检测到您启用了IPV6的DHCP服务,可能会造成连接异常!" >$START_LOG
|
||||
/usr/share/openclash/openclash_history_set.sh
|
||||
sleep 5
|
||||
echo "检测到您启用了IPV6的DHCP服务,可能会造成连接异常!" >$START_LOG
|
||||
echo "${LOGTIME} OpenClash Start Successful, Please Note That Network May Abnormal With IPV6's DHCP Server" >> $LOG_FILE
|
||||
sleep 10
|
||||
fi
|
||||
@ -867,7 +884,10 @@ fi
|
||||
stop()
|
||||
{
|
||||
echo "OpenClash 开始关闭..." >$START_LOG
|
||||
echo "第一步: 删除 OpenClash 防火墙规则..." >$START_LOG
|
||||
echo "第一步: 备份当前节点状态..." >$START_LOG
|
||||
/usr/share/openclash/openclash_history_get.sh
|
||||
|
||||
echo "第二步: 删除 OpenClash 防火墙规则..." >$START_LOG
|
||||
rm -rf /var/etc/openclash.include 2>/dev/null
|
||||
#ipv4
|
||||
iptables -t nat -F openclash >/dev/null 2>&1
|
||||
@ -898,23 +918,23 @@ stop()
|
||||
iptables -t mangle -X openclash >/dev/null 2>&1
|
||||
ipset destroy localnetwork >/dev/null 2>&1
|
||||
|
||||
echo "第二步: 关闭 OpenClash 守护程序..." >$START_LOG
|
||||
echo "第三步: 关闭 OpenClash 守护程序..." >$START_LOG
|
||||
watchdog_pids=$(ps |grep openclash_watchdog.sh |grep -v grep |awk '{print $1}' 2>/dev/null)
|
||||
for watchdog_pid in $watchdog_pids; do
|
||||
kill -9 "$watchdog_pid" >/dev/null 2>&1
|
||||
done
|
||||
|
||||
echo "第三步: 关闭 Clash 主程序..." >$START_LOG
|
||||
echo "第四步: 关闭 Clash 主程序..." >$START_LOG
|
||||
kill -9 "$(pidof clash|sed 's/$//g')" 2>/dev/null
|
||||
|
||||
echo "第四步: 重启 Dnsmasq 程序..." >$START_LOG
|
||||
echo "第五步: 重启 Dnsmasq 程序..." >$START_LOG
|
||||
dns_port=$(uci get openclash.config.dns_port 2>/dev/null)
|
||||
redirect_dns=$(uci get openclash.config.redirect_dns 2>/dev/null)
|
||||
masq_cache=$(uci get openclash.config.masq_cache 2>/dev/null)
|
||||
revert_dns "$redirect_dns" "$masq_cache" "$dns_port"
|
||||
/etc/init.d/dnsmasq restart >/dev/null 2>&1
|
||||
|
||||
echo "第五步:删除 OpenClash 残留文件..." >$START_LOG
|
||||
echo "第六步:删除 OpenClash 残留文件..." >$START_LOG
|
||||
enable=$(uci get openclash.config.enable 2>/dev/null)
|
||||
if [ "$enable" -eq 0 ]; then
|
||||
rm -rf $LOG_FILE 2>/dev/null
|
||||
|
||||
@ -460,8 +460,7 @@ Rule:
|
||||
|
||||
# (HKMTMedia)
|
||||
# > 愛奇藝台灣站
|
||||
- DOMAIN-SUFFIX,iqiyi.com,HKMTMedia
|
||||
- DOMAIN-SUFFIX,71.am,HKMTMedia
|
||||
- DOMAIN,cache.video.iqiyi.com,HKMTMedia
|
||||
# > bilibili
|
||||
- DOMAIN-SUFFIX,bilibili.com,HKMTMedia
|
||||
- DOMAIN,upos-hz-mirrorakam.akamaized.net,HKMTMedia
|
||||
|
||||
Binary file not shown.
File diff suppressed because one or more lines are too long
@ -27,6 +27,18 @@ local e=string.lower(string.sub(e,-6,-1))
|
||||
return e==".rules"
|
||||
end
|
||||
|
||||
function IsYamlFile(e)
|
||||
e=e or""
|
||||
local e=string.lower(string.sub(e,-5,-1))
|
||||
return e == ".yaml"
|
||||
end
|
||||
|
||||
function IsYmlFile(e)
|
||||
e=e or""
|
||||
local e=string.lower(string.sub(e,-4,-1))
|
||||
return e == ".yml"
|
||||
end
|
||||
|
||||
if not NXFS.access("/tmp/rules_name") then
|
||||
SYS.call("awk -F ',' '{print $1}' /etc/openclash/game_rules.list > /tmp/rules_name 2>/dev/null")
|
||||
end
|
||||
@ -48,6 +60,21 @@ o.cfgvalue = function(...)
|
||||
return Flag.cfgvalue(...) or "1"
|
||||
end
|
||||
|
||||
---- config
|
||||
o = s:option(ListValue, "config", translate("Config File"))
|
||||
o:value("all", translate("Use For All Config File"))
|
||||
local e,a={}
|
||||
for t,f in ipairs(fs.glob("/etc/openclash/config/*"))do
|
||||
a=fs.stat(f)
|
||||
if a then
|
||||
e[t]={}
|
||||
e[t].name=fs.basename(f)
|
||||
if IsYamlFile(e[t].name) or IsYmlFile(e[t].name) then
|
||||
o:value(e[t].name)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
---- rule name
|
||||
o = s:option(DynamicList, "rule_name", translate("Game Rule's Name"))
|
||||
local e,a={}
|
||||
|
||||
@ -3,7 +3,7 @@ CKTIME=$(date "+%Y-%m-%d-%H")
|
||||
LAST_OPVER="/tmp/clash_last_version"
|
||||
version_url="https://raw.githubusercontent.com/vernesong/OpenClash/master/core_version"
|
||||
if [ "$CKTIME" != "$(grep "CheckTime" $LAST_OPVER 2>/dev/null |awk -F ':' '{print $2}')" ]; then
|
||||
wget-ssl --no-check-certificate --quiet --timeout=10 --tries=2 "$version_url" -O $LAST_OPVER
|
||||
curl -sL -m 10 --retry 2 "$version_url" -o $LAST_OPVER >/dev/null 2>&1
|
||||
if [ "$?" -eq "0" ] && [ "$(ls -l $LAST_OPVER 2>/dev/null |awk '{print int($5)}')" -gt 0 ]; then
|
||||
echo "CheckTime:$CKTIME" >>$LAST_OPVER
|
||||
else
|
||||
|
||||
@ -16,12 +16,12 @@ config_download()
|
||||
{
|
||||
if [ "$URL_TYPE" == "v2rayn" ]; then
|
||||
subscribe_url=`echo $subscribe_url |sed 's/{/%7B/g;s/}/%7D/g;s/:/%3A/g;s/\"/%22/g;s/,/%2C/g;s/?/%3F/g;s/=/%3D/g;s/&/%26/g;s/\//%2F/g'`
|
||||
wget-ssl --no-check-certificate --quiet --timeout=10 --tries=2 https://tgbot.lbyczf.com/v2rayn2clash?url="$subscribe_url" -O /tmp/config.yaml
|
||||
curl -sL -m 10 --retry 2 https://tgbot.lbyczf.com/v2rayn2clash?url="$subscribe_url" -o /tmp/config.yaml >/dev/null 2>&1
|
||||
elif [ "$URL_TYPE" == "surge" ]; then
|
||||
subscribe_url=`echo $subscribe_url |sed 's/{/%7B/g;s/}/%7D/g;s/:/%3A/g;s/\"/%22/g;s/,/%2C/g;s/?/%3F/g;s/=/%3D/g;s/&/%26/g;s/\//%2F/g'`
|
||||
wget-ssl --no-check-certificate --quiet --timeout=10 --tries=2 https://tgbot.lbyczf.com/surge2clash?url="$subscribe_url" -O /tmp/config.yaml
|
||||
curl -sL -m 10 --retry 2 https://tgbot.lbyczf.com/surge2clash?url="$subscribe_url" -o /tmp/config.yaml >/dev/null 2>&1
|
||||
else
|
||||
wget-ssl --no-check-certificate --quiet --timeout=10 --tries=2 "$subscribe_url" -O /tmp/config.yaml
|
||||
curl -sL -m 10 --retry 2 "$subscribe_url" -o /tmp/config.yaml >/dev/null 2>&1
|
||||
fi
|
||||
}
|
||||
|
||||
|
||||
@ -11,7 +11,7 @@ CPU_MODEL=$(uci get openclash.config.core_version 2>/dev/null)
|
||||
if [ "$(/etc/openclash/clash -v 2>/dev/null |awk -F ' ' '{print $2}')" != "$(sed -n 1p /tmp/clash_last_version 2>/dev/null)" ] || [ -z "$(/etc/openclash/clash -v 2>/dev/null |awk -F ' ' '{print $2}')" ] || [ ! -f /etc/openclash/clash ]; then
|
||||
if [ "$CPU_MODEL" != 0 ]; then
|
||||
echo "开始下载 OpenClash 内核..." >$START_LOG
|
||||
wget-ssl --no-check-certificate --quiet --timeout=10 --tries=5 https://github.com/vernesong/OpenClash/releases/download/Clash/clash-"$CPU_MODEL".tar.gz -O /tmp/clash.tar.gz
|
||||
curl -sL -m 10 --retry 2 https://github.com/vernesong/OpenClash/releases/download/Clash/clash-"$CPU_MODEL".tar.gz -o /tmp/clash.tar.gz >/dev/null 2>&1
|
||||
if [ "$?" -eq "0" ] && [ "$(ls -l /tmp/clash.tar.gz |awk '{print int($5/1024)}')" -ne 0 ]; then
|
||||
tar zxvf /tmp/clash.tar.gz -C /tmp >/dev/null 2>&1\
|
||||
&& rm -rf /tmp/clash.tar.gz >/dev/null 2>&1\
|
||||
|
||||
@ -12,7 +12,7 @@
|
||||
LOGTIME=$(date "+%Y-%m-%d %H:%M:%S")
|
||||
LOG_FILE="/tmp/openclash.log"
|
||||
echo "开始下载【$RULE_FILE_NAME】规则..." >$START_LOG
|
||||
wget-ssl --no-check-certificate --quiet --timeout=10 --tries=2 https://raw.githubusercontent.com/FQrabbit/SSTap-Rule/master/rules/"$DOWNLOAD_PATH" -O "$TMP_RULE_DIR"
|
||||
curl -sL -m 10 --retry 2 https://raw.githubusercontent.com/FQrabbit/SSTap-Rule/master/rules/"$DOWNLOAD_PATH" -o "$TMP_RULE_DIR" >/dev/null 2>&1
|
||||
if [ "$?" -eq "0" ] && [ "$(ls -l $TMP_RULE_DIR |awk '{print $5}')" -ne 0 ]; then
|
||||
echo "【$RULE_FILE_NAME】规则下载成功,检查规则版本是否更新..." >$START_LOG
|
||||
cmp -s $TMP_RULE_DIR $RULE_FILE_DIR
|
||||
|
||||
@ -0,0 +1,17 @@
|
||||
#!/bin/sh
|
||||
|
||||
CURL_GROUP_CACHE="/tmp/openclash_history_gorup.json"
|
||||
CURL_NOW_CACHE="/tmp/openclash_history_now.json"
|
||||
CURL_CACHE="/tmp/openclash_history_curl.json"
|
||||
HISTORY_PATH="/etc/openclash/history"
|
||||
SECRET=$(uci get openclash.config.dashboard_password 2>/dev/null)
|
||||
LAN_IP=$(uci get network.lan.ipaddr 2>/dev/null |awk -F '/' '{print $1}' 2>/dev/null)
|
||||
PORT=$(uci get openclash.config.cn_port 2>/dev/null)
|
||||
|
||||
curl -w %{http_code}"\n" -H "Authorization: Bearer ${SECRET}" -H "Content-Type:application/json" -X GET http://"$LAN_IP":"$PORT"/proxies > "$CURL_CACHE" 2>/dev/null
|
||||
if [ "$(sed -n '$p' "$CURL_CACHE")" -eq "200" ]; then
|
||||
cat "$CURL_CACHE" |jsonfilter -e '@["proxies"][@.type="Selector"]["name"]' > "$CURL_GROUP_CACHE" 2>/dev/null
|
||||
cat "$CURL_CACHE" |jsonfilter -e '@["proxies"][@.type="Selector"]["now"]' > "$CURL_NOW_CACHE" 2>/dev/null
|
||||
awk 'NR==FNR{a[i]=$0;i++}NR>FNR{print a[j]"#*#"$0;j++}' "$CURL_GROUP_CACHE" "$CURL_NOW_CACHE" > "$HISTORY_PATH" 2>/dev/null
|
||||
fi
|
||||
rm -rf /tmp/openclash_history_* 2>/dev/null
|
||||
@ -0,0 +1,15 @@
|
||||
#!/bin/sh
|
||||
|
||||
HISTORY_PATH="/etc/openclash/history"
|
||||
SECRET=$(uci get openclash.config.dashboard_password 2>/dev/null)
|
||||
LAN_IP=$(uci get network.lan.ipaddr 2>/dev/null |awk -F '/' '{print $1}' 2>/dev/null)
|
||||
PORT=$(uci get openclash.config.cn_port 2>/dev/null)
|
||||
|
||||
if [ ! -z "$(grep "#*#" "$HISTORY_PATH")" ]; then
|
||||
cat $HISTORY_PATH |while read line
|
||||
do
|
||||
GORUP_NAME=$(echo $line |awk -F '#*#' '{print $1}')
|
||||
NOW_NAME=$(echo $line |awk -F '#*#' '{print $3}')
|
||||
curl -H "Authorization: Bearer ${SECRET}" -H "Content-Type:application/json" -X PUT -d '{"name":"'"$NOW_NAME"'"}' http://"$LAN_IP":"$PORT"/proxies/"$GORUP_NAME" >/dev/null 2>&1
|
||||
done
|
||||
fi
|
||||
@ -3,7 +3,7 @@
|
||||
LOGTIME=$(date "+%Y-%m-%d %H:%M:%S")
|
||||
LOG_FILE="/tmp/openclash.log"
|
||||
echo "开始下载 GEOIP 数据库..." >$START_LOG
|
||||
wget-ssl --no-check-certificate --quiet --timeout=10 --tries=2 https://static.clash.to/GeoIP2/GeoIP2-Country.mmdb -O /tmp/Country.mmdb
|
||||
curl -sL -m 10 --retry 2 https://static.clash.to/GeoIP2/GeoIP2-Country.mmdb -o /tmp/Country.mmdb >/dev/null 2>&1
|
||||
if [ "$?" -eq "0" ] && [ "$(ls -l /tmp/Country.mmdb |awk '{print int($5/1024)}')" -ne 0 ]; then
|
||||
echo "GEOIP 数据库下载成功,检查数据库版本是否更新..." >$START_LOG
|
||||
cmp -s /tmp/Country.mmdb /etc/openclash/Country.mmdb
|
||||
|
||||
@ -6,13 +6,13 @@
|
||||
rule_source=$(uci get openclash.config.rule_source 2>/dev/null)
|
||||
echo "开始下载使用中的第三方规则..." >$START_LOG
|
||||
if [ "$rule_source" = "lhie1" ]; then
|
||||
wget-ssl --no-check-certificate --quiet --timeout=10 --tries=2 https://raw.githubusercontent.com/lhie1/Rules/master/Clash/Rule.yml -O /tmp/rules.yaml
|
||||
curl -sL -m 10 --retry 2 https://raw.githubusercontent.com/lhie1/Rules/master/Clash/Rule.yml -o /tmp/rules.yaml >/dev/null 2>&1
|
||||
sed -i '1i Rule:' /tmp/rules.yaml
|
||||
elif [ "$rule_source" = "ConnersHua" ]; then
|
||||
wget-ssl --no-check-certificate --quiet --timeout=10 --tries=2 https://raw.githubusercontent.com/ConnersHua/Profiles/master/Clash/Pro.yaml -O /tmp/rules.yaml
|
||||
curl -sL -m 10 --retry 2 https://raw.githubusercontent.com/ConnersHua/Profiles/master/Clash/Pro.yaml -o /tmp/rules.yaml >/dev/null 2>&1
|
||||
sed -i -n '/^Rule:/,$p' /tmp/rules.yaml
|
||||
elif [ "$rule_source" = "ConnersHua_return" ]; then
|
||||
wget-ssl --no-check-certificate --quiet --timeout=10 --tries=2 https://raw.githubusercontent.com/ConnersHua/Profiles/master/Clash/BacktoCN.yaml -O /tmp/rules.yaml
|
||||
curl -sL -m 10 --retry 2 https://raw.githubusercontent.com/ConnersHua/Profiles/master/Clash/BacktoCN.yaml -o /tmp/rules.yaml >/dev/null 2>&1
|
||||
sed -i -n '/^Rule:/,$p' /tmp/rules.yaml
|
||||
fi
|
||||
if [ "$?" -eq "0" ] && [ "$rule_source" != 0 ] && [ "$(ls -l /tmp/rules.yaml |awk '{print int($5/1024)}')" -ne 0 ]; then
|
||||
|
||||
@ -10,7 +10,7 @@ LAST_OPVER="/tmp/openclash_last_version"
|
||||
LAST_VER=$(sed -n 1p "$LAST_OPVER" 2>/dev/null |sed "s/^v//g")
|
||||
if [ "$(sed -n 1p /etc/openclash/openclash_version 2>/dev/null)" != "$(sed -n 1p $LAST_OPVER 2>/dev/null)" ] && [ -f "$LAST_OPVER" ]; then
|
||||
echo "开始下载 OpenClash-$LAST_VER ..." >$START_LOG
|
||||
wget-ssl --no-check-certificate --quiet --timeout=10 --tries=5 https://github.com/vernesong/OpenClash/releases/download/v"$LAST_VER"/luci-app-openclash_"$LAST_VER"_all.ipk -O /tmp/openclash.ipk
|
||||
curl -sL -m 10 --retry 5 https://github.com/vernesong/OpenClash/releases/download/v"$LAST_VER"/luci-app-openclash_"$LAST_VER"_all.ipk -o /tmp/openclash.ipk >/dev/null 2>&1
|
||||
if [ "$?" -eq "0" ] && [ "$(ls -l /tmp/openclash.ipk |awk '{print int($5/1024)}')" -ne 0 ]; then
|
||||
echo "OpenClash-$LAST_VER 下载成功,开始更新,更新过程请不要刷新页面和进行其他操作..." >$START_LOG
|
||||
cat > /tmp/openclash_update.sh <<"EOF"
|
||||
|
||||
@ -3,7 +3,7 @@ CKTIME=$(date "+%Y-%m-%d-%H")
|
||||
LAST_OPVER="/tmp/openclash_last_version"
|
||||
version_url="https://raw.githubusercontent.com/vernesong/OpenClash/master/version"
|
||||
if [ "$CKTIME" != "$(grep "CheckTime" $LAST_OPVER 2>/dev/null |awk -F ':' '{print $2}')" ]; then
|
||||
wget-ssl --no-check-certificate --quiet --timeout=10 --tries=2 "$version_url" -O $LAST_OPVER
|
||||
curl -sL -m 10 --retry 2 "$version_url" -o $LAST_OPVER >/dev/null 2>&1
|
||||
if [ "$?" -eq "0" ] && [ "$(ls -l $LAST_OPVER 2>/dev/null |awk '{print int($5)}')" -gt 0 ]; then
|
||||
if [ "$(sed -n 1p /etc/openclash/openclash_version 2>/dev/null)" = "$(sed -n 1p $LAST_OPVER 2>/dev/null)" ]; then
|
||||
sed -i "/^https:/i\CheckTime:${CKTIME}" "$LAST_OPVER" 2>/dev/null
|
||||
|
||||
@ -19,6 +19,8 @@ if [ "$enable" -eq 1 ]; then
|
||||
CONFIG_FILE=$(uci get openclash.config.config_path 2>/dev/null)
|
||||
echo "${LOGTIME} Watchdog: Clash Core Problem, Restart." >> $LOG_FILE
|
||||
nohup $CLASH -d "$CLASH_CONFIG" -f "$CONFIG_FILE" >> $LOG_FILE 2>&1 &
|
||||
sleep 3
|
||||
/usr/share/openclash/openclash_history_set.sh
|
||||
else
|
||||
echo "${LOGTIME} Watchdog: Already Restart 3 Times With Clash Core Problem, Auto-Exit." >> $LOG_FILE
|
||||
exit 0
|
||||
@ -28,6 +30,9 @@ if [ "$enable" -eq 1 ]; then
|
||||
fi
|
||||
fi
|
||||
|
||||
## Porxy history
|
||||
/usr/share/openclash/openclash_history_get.sh
|
||||
|
||||
## Log File Size Manage:
|
||||
LOGSIZE=`ls -l /tmp/openclash.log |awk '{print int($5/1024)}'`
|
||||
if [ "$LOGSIZE" -gt 90 ]; then
|
||||
|
||||
Loading…
Reference in New Issue
Block a user