update-10.13
This commit is contained in:
parent
54209fe518
commit
49e5709a89
|
@ -13,8 +13,8 @@ end
|
|||
|
||||
function check_update()
|
||||
needs_update, notice, md5 = false, false, false
|
||||
remote_version = luci.sys.exec("curl -s https://op.supes.top/firmware/" ..model.. "/version.txt")
|
||||
updatelogs = luci.sys.exec("curl -s https://op.supes.top/firmware/" ..model.. "/updatelogs.txt")
|
||||
remote_version = luci.sys.exec("curl -skfL https://op.supes.top/firmware/" ..model.. "/version.txt")
|
||||
updatelogs = luci.sys.exec("curl -skfL https://op.supes.top/firmware/" ..model.. "/updatelogs.txt")
|
||||
remoteformat = luci.sys.exec("date -d $(echo \"" ..remote_version.. "\" | tr '\r\n' ',' | awk -F, '{printf $1}' | awk -F. '{printf $3\"-\"$1\"-\"$2}') +%s")
|
||||
fnotice = luci.sys.exec("echo \"" ..remote_version.. "\" | tr '\r\n' ',' | awk -F, '{printf $(NF-1)}'")
|
||||
dateyr = luci.sys.exec("echo \"" ..remote_version.. "\" | tr '\r\n' ',' | awk -F. '{printf $1\".\"$2}'")
|
||||
|
|
|
@ -9,16 +9,12 @@ PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)
|
|||
|
||||
include $(INCLUDE_DIR)/package.mk
|
||||
|
||||
define Package/$(PKG_NAME)/config
|
||||
select PACKAGE_libcap-bin
|
||||
endef
|
||||
|
||||
define Package/$(PKG_NAME)
|
||||
CATEGORY:=LuCI
|
||||
SUBMENU:=3. Applications
|
||||
TITLE:=LuCI support for clash
|
||||
PKGARCH:=all
|
||||
DEPENDS:=+iptables +dnsmasq-full +coreutils +coreutils-nohup +bash +curl +ca-bundle +ipset +ip-full +iptables-mod-tproxy +iptables-mod-extra +libcap +ruby +ruby-yaml
|
||||
DEPENDS:=+iptables +dnsmasq-full +coreutils +coreutils-nohup +bash +curl +ca-bundle +ipset +ip-full +iptables-mod-tproxy +iptables-mod-extra +libcap +libcap-bin +ruby +ruby-yaml +kmod-tun
|
||||
MAINTAINER:=vernesong
|
||||
endef
|
||||
|
||||
|
@ -81,6 +77,8 @@ define Package/$(PKG_NAME)/postrm
|
|||
rm -rf /tmp/openclash.log
|
||||
rm -rf /tmp/openclash_start.log
|
||||
rm -rf /tmp/openclash_last_version
|
||||
rm -rf /tmp/openclash_config.tmp
|
||||
rm -rf /tmp/openclash.change
|
||||
rm -rf /tmp/Proxy_Group
|
||||
rm -rf /tmp/rules_name
|
||||
rm -rf /tmp/rule_providers_name
|
||||
|
@ -88,6 +86,7 @@ define Package/$(PKG_NAME)/postrm
|
|||
rm -rf /usr/share/openclash/backup
|
||||
rm -rf /tmp/openclash_fake_filter.list
|
||||
rm -rf /tmp/openclash_servers_fake_filter.conf
|
||||
rm -rf /tmp/dler*
|
||||
uci -q delete firewall.openclash
|
||||
uci -q commit firewall
|
||||
uci -q delete ucitrack.@openclash[-1]
|
||||
|
|
|
@ -30,6 +30,7 @@ function index()
|
|||
entry({"admin", "services", "openclash", "coreupdate"},call("action_coreupdate"))
|
||||
entry({"admin", "services", "openclash", "ping"}, call("act_ping"))
|
||||
entry({"admin", "services", "openclash", "download_rule"}, call("action_download_rule"))
|
||||
entry({"admin", "services", "openclash", "download_netflix_domains"}, call("action_download_netflix_domains"))
|
||||
entry({"admin", "services", "openclash", "restore"}, call("action_restore_config"))
|
||||
entry({"admin", "services", "openclash", "backup"}, call("action_backup"))
|
||||
entry({"admin", "services", "openclash", "remove_all_core"}, call("action_remove_all_core"))
|
||||
|
@ -298,6 +299,11 @@ function download_rule()
|
|||
return state
|
||||
end
|
||||
|
||||
function download_netflix_domains()
|
||||
local state = luci.sys.call(string.format('/usr/share/openclash/openclash_download_rule_list.sh "%s" >/dev/null 2>&1',"netflix_domains"))
|
||||
return state
|
||||
end
|
||||
|
||||
function action_restore_config()
|
||||
uci:set("openclash", "config", "enable", "0")
|
||||
uci:commit("openclash")
|
||||
|
@ -629,11 +635,11 @@ end
|
|||
end
|
||||
|
||||
function action_toolbar_show_sys()
|
||||
local pid = luci.sys.exec("pidof clash |tr -d '\n' 2>/dev/null")
|
||||
local pid = luci.sys.exec("pidof clash |head -1 |tr -d '\n' 2>/dev/null")
|
||||
local mem, cpu
|
||||
if pid and pid ~= "" then
|
||||
mem = tonumber(luci.sys.exec(string.format("cat /proc/%s/status 2>/dev/null |grep -w VmRSS |awk '{print $2}'", pid)))
|
||||
cpu = luci.sys.exec(string.format("top -b -n1 |grep %s 2>/dev/null |head -1 |awk '{print $7}' 2>/dev/null", pid))
|
||||
cpu = luci.sys.exec(string.format("top -b -n1 |grep -E '(%s|PID)' 2>/dev/null |grep -v grep |awk '{for (i=1;i<=NF;i++) {if ($i ~ /CPU/) num=i}};{print $num}' 2>/dev/null | sed -n '2p' 2>/dev/null", pid))
|
||||
if mem and cpu then
|
||||
mem = fs.filesize(mem*1024)
|
||||
cpu = string.gsub(cpu, "%%\n", "")
|
||||
|
@ -652,7 +658,7 @@ function action_toolbar_show_sys()
|
|||
end
|
||||
|
||||
function action_toolbar_show()
|
||||
local pid = luci.sys.exec("pidof clash |tr -d '\n' 2>/dev/null")
|
||||
local pid = luci.sys.exec("pidof clash |head -1 |tr -d '\n' 2>/dev/null")
|
||||
local traffic, connections, connection, up, down, up_total, down_total, mem, cpu
|
||||
if pid and pid ~= "" then
|
||||
local daip = daip()
|
||||
|
@ -675,7 +681,7 @@ function action_toolbar_show()
|
|||
connection = "0"
|
||||
end
|
||||
mem = tonumber(luci.sys.exec(string.format("cat /proc/%s/status 2>/dev/null |grep -w VmRSS |awk '{print $2}'", pid)))
|
||||
cpu = luci.sys.exec(string.format("top -b -n1 |grep %s 2>/dev/null |head -1 |awk '{print $7}' 2>/dev/null", pid))
|
||||
cpu = luci.sys.exec(string.format("top -b -n1 |grep -E '(%s|PID)' 2>/dev/null |grep -v grep |awk '{for (i=1;i<=NF;i++) {if ($i ~ /CPU/) num=i}};{print $num}' 2>/dev/null | sed -n '2p' 2>/dev/null", pid))
|
||||
if mem and cpu then
|
||||
mem = fs.filesize(mem*1024)
|
||||
cpu = string.gsub(cpu, "%%\n", "")
|
||||
|
@ -903,6 +909,13 @@ function action_download_rule()
|
|||
})
|
||||
end
|
||||
|
||||
function action_download_netflix_domains()
|
||||
luci.http.prepare_content("application/json")
|
||||
luci.http.write_json({
|
||||
rule_download_status = download_netflix_domains();
|
||||
})
|
||||
end
|
||||
|
||||
function action_refresh_log()
|
||||
luci.http.prepare_content("application/json")
|
||||
local logfile="/tmp/openclash.log"
|
||||
|
|
|
@ -75,9 +75,7 @@ for t,f in ipairs(fs.glob("/etc/openclash/rule_provider/*"))do
|
|||
if h then
|
||||
p[t]={}
|
||||
p[t].name=fs.basename(f)
|
||||
if IsYamlFile(p[t].name) or IsYmlFile(p[t].name) then
|
||||
o:value("./rule_provider/"..p[t].name)
|
||||
end
|
||||
o:value("./rule_provider/"..p[t].name)
|
||||
end
|
||||
end
|
||||
o.rmempty = false
|
||||
|
|
|
@ -18,9 +18,6 @@ m.description=translate("Attention:")..
|
|||
"<br/>"..translate("2. Click the <manage third party game rules> or <manage third party rule set> button to enter the rule list and download the rules you want to use")..
|
||||
"<br/>"..translate("3. On this page, set the corresponding configuration file and policy group of the rule you have downloaded, and save the settings")..
|
||||
"<br/>"..
|
||||
"<br/>"..translate("Use in normal mode (rules of the game only):")..
|
||||
"<br/>"..translate("1. Select normal mode in <global settings> - <mode settings> - <running mode> and enable UDP traffic, then restart")..
|
||||
"<br/>"..
|
||||
"<br/>"..translate("Use in tun mode:")..
|
||||
"<br/>"..translate("1. In the <global settings> - <version update tab>, download and install the corresponding mode core first")..
|
||||
"<br/>"..translate("2. Select mixed mode, Tun mode or game mode in <global settings> - <mode settings> - <running mode> and restart")..
|
||||
|
@ -48,7 +45,7 @@ function IsYmlFile(e)
|
|||
end
|
||||
|
||||
-- [[ Edit Game Rule ]] --
|
||||
s = m:section(TypedSection, "game_config", translate("Game Rules and Groups"))
|
||||
s = m:section(TypedSection, "game_config", translate("Game Rules and Groups (Only TUN Core Support)"))
|
||||
s.anonymous = true
|
||||
s.addremove = true
|
||||
s.sortable = true
|
||||
|
|
|
@ -116,6 +116,19 @@ o:depends("en_mode", "redir-host-tun")
|
|||
o:depends("en_mode", "redir-host-vpn")
|
||||
o:depends("en_mode", "redir-host-mix")
|
||||
|
||||
o = s:taboption("op_mode", Flag, "netflix_domains_prefetch", font_red..bold_on..translate("Prefetch Netflix Domains")..bold_off..font_off)
|
||||
o.description = translate("Prevent Some Devices From Directly Using IP Access To Cause Unlocking Failure")
|
||||
o.default=0
|
||||
|
||||
o = s:taboption("op_mode", Value, "netflix_domains_prefetch_interval", translate("Netflix Domains Prefetch Interval(min)"))
|
||||
o.default=60
|
||||
o.datatype = "uinteger"
|
||||
o:depends("netflix_domains_prefetch", "1")
|
||||
|
||||
o = s:taboption("op_mode", DummyValue, "netflix_domains_update", translate("Update Netflix Domains List"))
|
||||
o:depends("netflix_domains_prefetch", "1")
|
||||
o.template = "openclash/download_netflix_domains"
|
||||
|
||||
o = s:taboption("op_mode", Flag, "small_flash_memory", translate("Small Flash Memory"))
|
||||
o.description = translate("Move Core And GEOIP Data File To /tmp/etc/openclash For Small Flash Memory Device")
|
||||
o.default=0
|
||||
|
@ -215,6 +228,12 @@ o = s:taboption("dns", Flag, "append_wan_dns", font_red..bold_on..translate("App
|
|||
o.description = font_red..bold_on..translate("Append The Upstream Assigned DNS And Gateway IP To The Nameserver")..bold_off..font_off
|
||||
o.default=1
|
||||
|
||||
if op_mode == "fake-ip" then
|
||||
o = s:taboption("dns", Flag, "store_fakeip", font_red..bold_on..translate("Persistence Fake-IP")..bold_off..font_off)
|
||||
o.description = font_red..bold_on..translate("Cache Fake-IP DNS Resolution Records To File, Improve The Response Speed After Startup")..bold_off..font_off
|
||||
o.default=1
|
||||
end
|
||||
|
||||
o = s:taboption("dns", Flag, "ipv6_dns", translate("IPv6 DNS Resolve"))
|
||||
o.description = font_red..bold_on..translate("Enable Clash to Resolve IPv6 DNS Requests")..bold_off..font_off
|
||||
o.default=0
|
||||
|
|
File diff suppressed because one or more lines are too long
|
@ -0,0 +1,39 @@
|
|||
<%+cbi/valueheader%>
|
||||
|
||||
<script type="text/javascript">//<![CDATA[
|
||||
function act_download_rule(btn)
|
||||
{
|
||||
btn.disabled = true;
|
||||
btn.value = '<%:Downloading Rule...%> ';
|
||||
XHR.get('<%=luci.dispatcher.build_url("admin", "services", "openclash","download_netflix_domains")%>',
|
||||
null,
|
||||
function(x,status)
|
||||
{
|
||||
if ( x && x.status == 200 ) {
|
||||
if(status.rule_download_status=="0")
|
||||
{
|
||||
btn.value = '<%:Downloading Fail%>';
|
||||
}
|
||||
else if (status.rule_download_status=="1")
|
||||
{
|
||||
btn.value = '<%:Downloading Successful%>';
|
||||
}
|
||||
else if (status.rule_download_status=="2")
|
||||
{
|
||||
btn.value = '<%:Rule No Change%>';
|
||||
}
|
||||
}
|
||||
else {
|
||||
btn.value = '<%:Downloading Timeout%>';
|
||||
}
|
||||
}
|
||||
);
|
||||
btn.disabled = false;
|
||||
return false;
|
||||
}
|
||||
//]]></script>
|
||||
|
||||
|
||||
<input type="button" class="btn cbi-button cbi-input-reload" value="<%:Click to Update%>" onclick="return act_download_rule(this)" />
|
||||
|
||||
<%+cbi/valuefooter%>
|
|
@ -36,6 +36,6 @@
|
|||
//]]></script>
|
||||
|
||||
|
||||
<input type="button" class="btn cbi-button cbi-input-reload" value="<%:点击更新规则%>" onclick="return act_download_rule(this,'<%=self:cfgvalue(section)%>')" />
|
||||
<input type="button" class="btn cbi-button cbi-input-reload" value="<%:Click to Update%>" onclick="return act_download_rule(this,'<%=self:cfgvalue(section)%>')" />
|
||||
|
||||
<%+cbi/valuefooter%>
|
||||
|
|
|
@ -23,8 +23,8 @@ msgstr "全局设置"
|
|||
msgid "Rule Providers and Groups"
|
||||
msgstr "规则集与策略组管理"
|
||||
|
||||
msgid "Game Rules and Groups"
|
||||
msgstr "游戏规则与策略组管理"
|
||||
msgid "Game Rules and Groups (Only TUN Core Support)"
|
||||
msgstr "游戏规则与策略组管理(仅TUN内核)"
|
||||
|
||||
msgid "Other Rule Providers and Groups (Only TUN Core Support)"
|
||||
msgstr "第三方规则集与策略组管理(仅TUN内核)"
|
||||
|
@ -1859,38 +1859,38 @@ msgstr "错误: 缺少配置文件,请上传或更新配置文件!"
|
|||
msgid "Error: Config File Format Validation Failed..."
|
||||
msgstr "错误:配置文件格式校验失败..."
|
||||
|
||||
msgid "Detected The Exclusive Function of The TUN Core, Use TUN Core to Start..."
|
||||
msgstr "检测到配置了 TUN 内核专属功能,调用 TUN 内核启动..."
|
||||
msgid "Tip: Detected The Exclusive Function of The TUN Core, Use TUN Core to Start..."
|
||||
msgstr "提示: 检测到配置了 TUN 内核专属功能,调用 TUN 内核启动..."
|
||||
|
||||
msgid "Detected The Exclusive Function of The Game Core, Use Game Core to Start..."
|
||||
msgstr "检测到配置了 Game 内核专属功能,调用 Game 内核启动..."
|
||||
msgid "Tip: Detected The Exclusive Function of The Game Core, Use Game Core to Start..."
|
||||
msgstr "提示: 检测到配置了 Game 内核专属功能,调用 Game 内核启动..."
|
||||
|
||||
msgid "No Special Configuration Detected, Use Dev Core to Start..."
|
||||
msgstr "未检测到特殊配置,调用 Dev 内核启动..."
|
||||
msgid "Tip: No Special Configuration Detected, Use Dev Core to Start..."
|
||||
msgstr "提示: 未检测到特殊配置,调用 Dev 内核启动..."
|
||||
|
||||
msgid "Detect that the Dev Core is not Installed, Use TUN Core to Start..."
|
||||
msgstr "检测到 Dev 内核未安装,调用 TUN 内核启动..."
|
||||
msgid "Tip: Detected that the Dev Core is not Installed, Use TUN Core to Start..."
|
||||
msgstr "提示: 检测到 Dev 内核未安装,调用 TUN 内核启动..."
|
||||
|
||||
msgid "Detect that the Dev Core is not Installed, Use Game Core to Start..."
|
||||
msgstr "检测到 Dev 内核未安装,调用 Game 内核启动..."
|
||||
msgid "Tip: Detected that the Dev Core is not Installed, Use Game Core to Start..."
|
||||
msgstr "提示: 检测到 Dev 内核未安装,调用 Game 内核启动..."
|
||||
|
||||
msgid "Detect that the Dev Core is not Installed, Use Game Core to Start..."
|
||||
msgstr "检测到 Dev 内核未安装,调用 Game 内核启动..."
|
||||
msgid "Tip: Detected that the Dev Core is not Installed, Use Game Core to Start..."
|
||||
msgstr "提示: 检测到 Dev 内核未安装,调用 Game 内核启动..."
|
||||
|
||||
msgid "Detect that the GEOIP Database is not Installed, Ready to Download..."
|
||||
msgstr "检测到GEOIP数据库文件不存在,准备开始下载..."
|
||||
msgid "Tip: Detected that the GEOIP Database is not Installed, Ready to Download..."
|
||||
msgstr "提示: 检测到GEOIP数据库文件不存在,准备开始下载..."
|
||||
|
||||
msgid "Detect that the Core is not Installed, Ready to Download..."
|
||||
msgstr "检测到内核文件不存在,准备开始下载..."
|
||||
msgid "Tip: Detected that the Core is not Installed, Ready to Download..."
|
||||
msgstr "提示: 检测到内核文件不存在,准备开始下载..."
|
||||
|
||||
msgid "Detect that the Chnroute Cidr List is not Installed, Ready to Download..."
|
||||
msgstr "检测到大陆白名单列表不存在,准备开始下载..."
|
||||
msgid "Tip: Detected that the Chnroute Cidr List is not Installed, Ready to Download..."
|
||||
msgstr "提示: 检测到大陆白名单列表不存在,准备开始下载..."
|
||||
|
||||
msgid "Error: Could Not Load The Capsh Library, Please Verify The Capsh Shell Library Work Well..."
|
||||
msgstr "错误:Capsh异常,请尝试重新安装依赖【libcap】和相应的Capsh库,终止启动..."
|
||||
|
||||
msgid "Tip: You Could Download And Re-Install The libcap & libcap-bin Library From The Address Give"
|
||||
msgstr "Tip: 你可以尝试从给出的地址中查找、下载并重新安装架构对应的 libcap 和 libcap-bin 依赖"
|
||||
msgstr "提示: 你可以尝试从给出的地址中查找、下载并重新安装架构对应的 libcap 和 libcap-bin 依赖"
|
||||
|
||||
msgid "Error: Get DNS 'listen' Option Error, OpenClash Can Not Start With Raw Config File"
|
||||
msgstr "错误: 无法获取DNS部分的监听端口设置, OpenClash 使用原始配置文件启动失败"
|
||||
|
@ -2039,12 +2039,6 @@ msgstr "2、点击《管理第三方游戏规则》或者《管理第三方规
|
|||
msgid "3. On this page, set the corresponding configuration file and policy group of the rule you have downloaded, and save the settings"
|
||||
msgstr "3、在此页面设置您已下载的规则的对应配置文件、策略组并保存设置"
|
||||
|
||||
msgid "Use in normal mode (rules of the game only):"
|
||||
msgstr "在普通模式下使用(仅游戏规则):"
|
||||
|
||||
msgid "1. Select normal mode in <global settings> - <mode settings> - <running mode> and enable UDP traffic, then restart"
|
||||
msgstr "1、在《全局设置》-《模式设置》-《运行模式》中选择普通模式并启用UDP流量代理,然后重新启动"
|
||||
|
||||
msgid "Use in tun mode:"
|
||||
msgstr "在TUN模式下使用:"
|
||||
|
||||
|
@ -2306,6 +2300,9 @@ msgstr "错误:策略组解析失败,"
|
|||
msgid "Error: Set default-nameserver Error,"
|
||||
msgstr "错误:修改default-nameserver配置失败,"
|
||||
|
||||
msgid "Error: Netflix IP Rules Complete Error,"
|
||||
msgstr "错误:Netflix IP 规则补全失败,"
|
||||
|
||||
msgid "switching succeeded!"
|
||||
msgstr "切换成功!"
|
||||
|
||||
|
@ -2391,4 +2388,37 @@ msgid "All Groups"
|
|||
msgstr "所有策略组"
|
||||
|
||||
msgid "Are you sure want to switch the running mode?"
|
||||
msgstr "确认要切换运行模式吗?"
|
||||
msgstr "确认要切换运行模式吗?"
|
||||
|
||||
msgid "Tip: Because of the file"
|
||||
msgstr "提示: 由于文件"
|
||||
|
||||
msgid "modificated, Pause quick start..."
|
||||
msgstr "被修改,暂停快速启动..."
|
||||
|
||||
msgid "Click to Update"
|
||||
msgstr "点击更新规则"
|
||||
|
||||
msgid "Prefetch Netflix Domains"
|
||||
msgstr "实验性:预解析 Netflix 域名"
|
||||
|
||||
msgid "Prevent Some Devices From Directly Using IP Access To Cause Unlocking Failure"
|
||||
msgstr "防止部分设备直接使用IP访问导致DNS解锁失败"
|
||||
|
||||
msgid "Update Netflix Domains List"
|
||||
msgstr "更新 Netflix 域名列表"
|
||||
|
||||
msgid "Netflix Domains Prefetch Interval(min)"
|
||||
msgstr "Netflix 域名预解析间隔(分钟)"
|
||||
|
||||
msgid "Tip: Start Prefetch Netflix Domains..."
|
||||
msgstr "提示:开始预解析 Netflix 域名..."
|
||||
|
||||
msgid "Tip: Netflix Domains Prefetch Finished..."
|
||||
msgstr "提示:Netflix 域名预解析完成..."
|
||||
|
||||
msgid "Persistence Fake-IP"
|
||||
msgstr "Fake-IP 持久化"
|
||||
|
||||
msgid "Cache Fake-IP DNS Resolution Records To File, Improve The Response Speed After Startup"
|
||||
msgstr "存储Fake-IP的DNS解析记录到文件,提升内核启动后的反应速度和稳定性"
|
|
@ -40,8 +40,10 @@ config openclash 'config'
|
|||
option common_ports '0'
|
||||
option log_size '1024'
|
||||
option tolerance '0'
|
||||
option store_fakeip '1'
|
||||
option custom_fallback_filter '0'
|
||||
option append_wan_dns '1'
|
||||
option netflix_domains_prefetch '0'
|
||||
option geo_custom_url 'https://cdn.jsdelivr.net/gh/alecthw/mmdb_china_ip_list@release/lite/Country.mmdb'
|
||||
option chnr_custom_url 'https://ispip.clang.cn/all_cn.txt'
|
||||
option chnr6_custom_url 'https://ispip.clang.cn/all_cn_ipv6.txt'
|
||||
|
|
|
@ -235,7 +235,7 @@ yml_provider_path()
|
|||
Value_1 = Marshal.load(Marshal.dump(Value['$2']));
|
||||
Value['$2'].values.each{
|
||||
|x,v|
|
||||
unless x['path'].include? '$3' then
|
||||
if not x['path'].include? '$3' and not x['path'].include? 'game_rules' then
|
||||
v=File.basename(x['path'])
|
||||
x['path']='./$3/'+v
|
||||
end
|
||||
|
@ -502,9 +502,31 @@ get_rule_file()
|
|||
GAME_RULE_FILE_NAME=$(grep "^$1," /usr/share/openclash/res/game_rules.list |awk -F ',' '{print $2}' 2>/dev/null)
|
||||
fi
|
||||
|
||||
GAME_RULE_PATH="/etc/openclash/game_rules/$GAME_RULE_FILE_NAME"
|
||||
GAME_RULE_PATH="./game_rules/$GAME_RULE_FILE_NAME"
|
||||
|
||||
sed '/^#/d' "$GAME_RULE_PATH" 2>/dev/null |sed '/^ *$/d' |awk '{print "- IP-CIDR,"$0}' |awk -v tag="$2" '{print $0","'tag'""}' >> $GAME_RULE_FILE 2>/dev/null
|
||||
[ ! -f "$GAME_RULE_FILE" ] && echo "rules:" > "$GAME_RULE_FILE"
|
||||
|
||||
ruby -ryaml -E UTF-8 -e "
|
||||
begin
|
||||
Value = YAML.load_file('$GAME_RULE_FILE');
|
||||
if Value.has_key?('rules') and not Value['rules'].to_a.empty? then
|
||||
Value['rules'].insert(-1,'RULE-SET,${1},${2}')
|
||||
Value['rules']=Value['rules'].uniq
|
||||
else
|
||||
Value={'rules'=>['RULE-SET,${1},${2}']}
|
||||
end;
|
||||
Value_1={'rule-providers'=>{'${1}'=>{'type'=>'file', 'behavior'=>'ipcidr', 'path'=>'${GAME_RULE_PATH}'}}};
|
||||
if Value.has_key?('rule-providers') and not Value['rule-providers'].to_a.empty? then
|
||||
Value['rule-providers'].merge!(Value_1['rule-providers'])
|
||||
Value['rule-providers'].uniq
|
||||
else
|
||||
Value['rule-providers']=Value_1['rule-providers']
|
||||
end;
|
||||
File.open('$GAME_RULE_FILE','w') {|f| YAML.dump(Value, f)};
|
||||
rescue Exception => e
|
||||
puts '${LOGTIME} Error: Game Rule Merge Error,【' + e.message + '】'
|
||||
end
|
||||
" 2>/dev/null >> $LOG_FILE
|
||||
}
|
||||
|
||||
yml_game_rule_get()
|
||||
|
@ -566,11 +588,17 @@ Value_1 = YAML.load_file('$GAME_RULE_FILE');
|
|||
if Value.has_key?('rules') and not Value['rules'].to_a.empty? then
|
||||
ruby_add_index = Value['rules'].index(Value['rules'].grep(/(GEOIP|MATCH|FINAL)/).first)
|
||||
ruby_add_index ||= -1
|
||||
Value_2 = Value_1.reverse!
|
||||
Value_2 = Value_1['rules'].reverse!
|
||||
Value_2.each{|x| Value['rules'].insert(ruby_add_index,x)}
|
||||
Value['rules']=Value['rules'].uniq;
|
||||
else
|
||||
Value['rules'] = Value_1
|
||||
Value['rules'] = Value_1['rules']
|
||||
end;
|
||||
if Value.has_key?('rule-providers') and not Value['rule-providers'].to_a.empty? then
|
||||
Value['rule-providers'].merge!(Value_1['rule-providers'])
|
||||
Value['rule-providers'].uniq
|
||||
else
|
||||
Value['rule-providers']=Value_1['rule-providers']
|
||||
end;
|
||||
File.open('$CONFIG_FILE','w') {|f| YAML.dump(Value, f)}
|
||||
rescue Exception => e
|
||||
|
@ -631,12 +659,12 @@ if Value.has_key?('rules') and not Value['rules'].to_a.empty? then
|
|||
if $3 == 1 then
|
||||
ruby_add_index = Value['rules'].index(Value['rules'].grep(/(GEOIP|MATCH|FINAL)/).first)
|
||||
ruby_add_index ||= -1
|
||||
Value['rules'].insert(ruby_add_index,'RULE-SET,$1,$2')
|
||||
Value['rules'].insert(ruby_add_index,'RULE-SET,${1},${2}')
|
||||
else
|
||||
Value['rules'].insert(0,'RULE-SET,$1,$2')
|
||||
Value['rules'].insert(0,'RULE-SET,${1},${2}')
|
||||
end
|
||||
else
|
||||
Value_1 = {'rules'=>['RULE-SET,$1,$2']}
|
||||
Value_1 = {'rules'=>['RULE-SET,${1},${2}']}
|
||||
Value.merge!(Value_1);
|
||||
end;
|
||||
File.open('$CONFIG_FILE','w') {|f| YAML.dump(Value, f)}
|
||||
|
@ -865,16 +893,20 @@ if [ ! -f "$RAW_CONFIG_FILE" ]; then
|
|||
exit 0
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
||||
config_check()
|
||||
{
|
||||
#创建启动配置
|
||||
#rm -rf "/etc/openclash/*.y*" 2>/dev/null
|
||||
cp "$RAW_CONFIG_FILE" "$CONFIG_FILE"
|
||||
|
||||
ruby -ryaml -E UTF-8 -e "
|
||||
begin
|
||||
YAML.load_file('$RAW_CONFIG_FILE');
|
||||
YAML.load_file('$RAW_CONFIG_FILE');
|
||||
rescue Exception => e
|
||||
puts '${LOGTIME} Error: Unable To Parse Config File,【' + e.message + '】'
|
||||
system 'rm -rf ${CONFIG_FILE}'
|
||||
puts '${LOGTIME} Error: Unable To Parse Config File,【' + e.message + '】'
|
||||
system 'rm -rf ${CONFIG_FILE}'
|
||||
end
|
||||
" 2>/dev/null >> $LOG_FILE
|
||||
if [ $? -ne 0 ]; then
|
||||
|
@ -895,15 +927,18 @@ ruby -ryaml -E UTF-8 -e "
|
|||
Value['proxies'] = Value['Proxy']
|
||||
Value.delete('Proxy')
|
||||
puts '${LOGTIME} Warning: Proxy is no longer used. Auto replaced by proxies'
|
||||
elsif Value.key?('Proxy Group') then
|
||||
end
|
||||
if Value.key?('Proxy Group') then
|
||||
Value['proxy-groups'] = Value['Proxy Group']
|
||||
Value.delete('Proxy Group')
|
||||
puts '${LOGTIME} Warning: Proxy Group is no longer used. Auto replaced by proxy-groups'
|
||||
elsif Value.key?('Rule') then
|
||||
end
|
||||
if Value.key?('Rule') then
|
||||
Value['rules'] = Value['Rule']
|
||||
Value.delete('Rule')
|
||||
puts '${LOGTIME} Warning: Rule is no longer used. Auto replaced by rules'
|
||||
elsif Value.key?('rule-provider') then
|
||||
end
|
||||
if Value.key?('rule-provider') then
|
||||
Value['rule-providers'] = Value['rule-provider']
|
||||
Value.delete('rule-provider')
|
||||
puts '${LOGTIME} Warning: rule-provider is no longer used. Auto replaced by rule-providers'
|
||||
|
@ -931,6 +966,42 @@ yml_other_rules_get()
|
|||
config_get "rule_name" "$section" "rule_name" ""
|
||||
}
|
||||
|
||||
check_run_quick()
|
||||
{
|
||||
quick_start=true
|
||||
check_file="$RAW_CONFIG_FILE /etc/openclash/custom/openclash_custom_domain_dns.list /etc/openclash/custom/openclash_custom_domain_dns_policy.list /etc/openclash/custom/openclash_custom_fake_filter.list /etc/openclash/custom/openclash_custom_fallback_filter.yaml /etc/openclash/custom/openclash_custom_hosts.list /etc/openclash/custom/openclash_custom_rules.list /etc/openclash/custom/openclash_custom_rules_2.list $dev_core_path $tun_core_path $game_core_path $geoip_path $chnr_path $chnr6_path /usr/share/openclash/res/ConnersHua.yaml /usr/share/openclash/res/ConnersHua_return.yaml /usr/share/openclash/res/lhie1.yaml /usr/share/openclash/res/openclash_version"
|
||||
if [ ! -f "$CONFIG_FILE" ] || [ ! -f "/tmp/openclash_config.tmp" ] || [ ! -f "/tmp/openclash.change" ]; then
|
||||
quick_start=false
|
||||
return
|
||||
fi
|
||||
cmp -s "/etc/config/openclash" "/tmp/openclash_config.tmp"
|
||||
if [ "$?" -ne "0" ]; then
|
||||
LOG_OUT "Tip: Because of the file【 /etc/config/openclash 】modificated, Pause quick start..."
|
||||
quick_start=false
|
||||
else
|
||||
if [ -s "/tmp/openclash.change" ]; then
|
||||
for i in $check_file; do
|
||||
if [ -z "$(grep "$i $(date -r $i)" "/tmp/openclash.change")" ]; then
|
||||
LOG_OUT "Tip: Because of the file【 $i 】modificated, Pause quick start..."
|
||||
quick_start=false
|
||||
break
|
||||
fi
|
||||
done
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
||||
write_run_quick()
|
||||
{
|
||||
if ! $quick_start; then
|
||||
cp "/etc/config/openclash" "/tmp/openclash_config.tmp"
|
||||
: > "/tmp/openclash.change"
|
||||
for i in $check_file; do
|
||||
echo "$i $(date -r $i)" >> "/tmp/openclash.change"
|
||||
done
|
||||
fi
|
||||
}
|
||||
|
||||
#运行模式处理
|
||||
do_run_mode()
|
||||
{
|
||||
|
@ -996,13 +1067,13 @@ do_run_file()
|
|||
if [ "$en_mode_tun" = "1" ] || [ "$en_mode_tun" = "3" ]; then
|
||||
ln -s "$tun_core_path" /etc/openclash/clash 2>/dev/null
|
||||
core_type="TUN"
|
||||
core_start_log="Detected The Exclusive Function of The TUN Core, Use TUN Core to Start..."
|
||||
core_start_log="Tip: Detected The Exclusive Function of The TUN Core, Use TUN Core to Start..."
|
||||
fi
|
||||
|
||||
if [ "$en_mode_tun" = "2" ]; then
|
||||
ln -s "$game_core_path" /etc/openclash/clash 2>/dev/null
|
||||
core_type="Game"
|
||||
core_start_log="Detected The Exclusive Function of The Game Core, Use Game Core to Start..."
|
||||
core_start_log="Tip: Detected The Exclusive Function of The Game Core, Use Game Core to Start..."
|
||||
fi
|
||||
|
||||
if [ "$rule_source" != "0" ]; then
|
||||
|
@ -1010,30 +1081,30 @@ do_run_file()
|
|||
config_foreach yml_other_rules_get "other_rules" "$CONFIG_NAME"
|
||||
fi
|
||||
|
||||
if [ "$proxy_mode" = "script" ] || [ "$rule_name" = "ConnersHua" ] || [ "$rule_name" = "lhie1" ] || [ -n "$(ruby_read "$CONFIG_FILE" "['rules'].grep(/(^RULE-SET,|^SCRIPT,)/)")" ] || [ -n "$(ruby_read "/etc/openclash/custom/openclash_custom_rules.list" "['rules'].grep(/(^RULE-SET,|^SCRIPT,)/)")" ] || [ -n "$(ruby_read "/etc/openclash/custom/openclash_custom_rules_2.list" "['rules'].grep(/(^RULE-SET,|^SCRIPT,)/)")" ]; then
|
||||
if [ "$proxy_mode" = "script" ] || [ "$rule_name" = "ConnersHua" ] || [ "$rule_name" = "lhie1" ] || [ -n "$(ruby_read "$RAW_CONFIG_FILE" "['rules'].grep(/(^RULE-SET,|^SCRIPT,)/)")" ] || [ -n "$(ruby_read "/etc/openclash/custom/openclash_custom_rules.list" "['rules'].grep(/(^RULE-SET,|^SCRIPT,)/)")" ] || [ -n "$(ruby_read "/etc/openclash/custom/openclash_custom_rules_2.list" "['rules'].grep(/(^RULE-SET,|^SCRIPT,)/)")" ]; then
|
||||
if [ "$en_mode_tun" != "2" ]; then
|
||||
rm -rf "/etc/openclash/clash"
|
||||
ln -s "$tun_core_path" /etc/openclash/clash 2>/dev/null
|
||||
core_type="TUN"
|
||||
core_start_log="Detected The Exclusive Function of The TUN Core, Use TUN Core to Start..."
|
||||
core_start_log="Tip: Detected The Exclusive Function of The TUN Core, Use TUN Core to Start..."
|
||||
fi
|
||||
fi
|
||||
|
||||
if [ ! -f "/etc/openclash/clash" ] && [ -f "$dev_core_path" ] && [ -z "$core_type" ]; then
|
||||
ln -s "$dev_core_path" /etc/openclash/clash 2>/dev/null
|
||||
core_start_log="No Special Configuration Detected, Use Dev Core to Start..."
|
||||
core_start_log="Tip: No Special Configuration Detected, Use Dev Core to Start..."
|
||||
fi
|
||||
|
||||
if [ ! -f "/etc/openclash/clash" ] && [ -f "$tun_core_path" ] && [ "$core_type" != "Game" ]; then
|
||||
ln -s "$tun_core_path" /etc/openclash/clash 2>/dev/null
|
||||
core_type="TUN"
|
||||
core_start_log="Detect that the Dev Core is not Installed, Use TUN Core to Start..."
|
||||
core_start_log="Tip: Detected that the Dev Core is not Installed, Use TUN Core to Start..."
|
||||
fi
|
||||
|
||||
if [ ! -f "/etc/openclash/clash" ] && [ -f "$game_core_path" ] && [ "$core_type" != "TUN" ]; then
|
||||
ln -s "$game_core_path" /etc/openclash/clash 2>/dev/null
|
||||
core_type="Game"
|
||||
core_start_log="Detect that the Dev Core is not Installed, Use Game Core to Start..."
|
||||
core_start_log="Tip: Detected that the Dev Core is not Installed, Use Game Core to Start..."
|
||||
fi
|
||||
|
||||
#权限检查
|
||||
|
@ -1055,13 +1126,13 @@ do_run_file()
|
|||
}
|
||||
|
||||
[ ! -f "$geoip_path" ] && {
|
||||
LOG_OUT "Detect that the GEOIP Database is not Installed, Ready to Download..."
|
||||
LOG_OUT "Tip: Detected that the GEOIP Database is not Installed, Ready to Download..."
|
||||
nofile=1
|
||||
nohup /usr/share/openclash/openclash_ipdb.sh &
|
||||
}
|
||||
|
||||
[ ! -f "$CLASH" ] && {
|
||||
LOG_OUT "Detect that the Core is not Installed, Ready to Download..."
|
||||
LOG_OUT "Tip: Detected that the Core is not Installed, Ready to Download..."
|
||||
nofile=1
|
||||
rm -rf "/tmp/clash_last_version"
|
||||
nohup /usr/share/openclash/openclash_core.sh "$core_type" &
|
||||
|
@ -1069,7 +1140,7 @@ do_run_file()
|
|||
|
||||
if [ "$china_ip_route" = "1" ] || [ "$china_ip6_route" = "1" ] || [ "$disable_udp_quic" = "1" ]; then
|
||||
if [ ! -f "$chnr_path" ] || [ ! -f "$chnr6_path" ]; then
|
||||
LOG_OUT "Detect that the Chnroute Cidr List is not Installed, Ready to Download..."
|
||||
LOG_OUT "Tip: Detected that the Chnroute Cidr List is not Installed, Ready to Download..."
|
||||
nofile=1
|
||||
nohup /usr/share/openclash/openclash_chnroute.sh &
|
||||
fi
|
||||
|
@ -1922,6 +1993,7 @@ get_config()
|
|||
tolerance=$(uci -q get openclash.config.tolerance)
|
||||
custom_fallback_filter=$(uci -q get openclash.config.custom_fallback_filter)
|
||||
append_wan_dns=$(uci -q get openclash.config.append_wan_dns || echo 1)
|
||||
store_fakeip=$(uci -q get openclash.config.store_fakeip || echo 1)
|
||||
_koolshare=$(cat /usr/lib/os-release 2>/dev/null |grep OPENWRT_RELEASE 2>/dev/null |grep -i koolshare 2>/dev/null)
|
||||
[ -z "$dns_port" ] && dns_port=7874 && uci -q set openclash.config.dns_port=7874
|
||||
[ "$ipv6_enable" -eq 1 ] && [ "$intranet_allowed" -eq 1 ] && intranet_allowed=0 && uci -q set openclash.config.intranet_allowed=0
|
||||
|
@ -1934,9 +2006,8 @@ start()
|
|||
enable=$(uci -q get openclash.config.enable)
|
||||
[ "$enable" != "1" ] && LOG_OUT "Warning: OpenClash Now Disabled, Need Start From Luci Page, Exit..." && SLOG_CLEAN && del_lock && exit 0
|
||||
|
||||
config_choose
|
||||
|
||||
LOG_OUT "OpenClash Start Running..."
|
||||
config_choose
|
||||
do_run_mode
|
||||
|
||||
LOG_OUT "Step 1: Get The Configuration..."
|
||||
|
@ -1944,22 +2015,28 @@ start()
|
|||
|
||||
LOG_OUT "Step 2: Check The Components..."
|
||||
#检查文件是否存在
|
||||
do_run_file "$CONFIG_FILE" "$BACKUP_FILE"
|
||||
|
||||
LOG_OUT "Step 3: Modify The Config File..."
|
||||
config_load "openclash"
|
||||
config_foreach yml_auth_get "authentication"
|
||||
yml_auth_custom "$CONFIG_FILE"
|
||||
yml_dns_custom "$enable_custom_dns" "$CONFIG_FILE" "$append_wan_dns" "$ipv6_dns"
|
||||
/usr/share/openclash/yml_change.sh 2>/dev/null "$LOGTIME" "$en_mode" "$enable_custom_dns" "$da_password" "$cn_port" "$proxy_port" "$CONFIG_FILE" "$ipv6_enable" "$http_port" "$socks_port" "$lan_ip" "$log_level" "$proxy_mode" "$intranet_allowed" "$en_mode_tun" "$stack_type" "$dns_port" "$core_type" "$mixed_port" "$tproxy_port" "$ipv6_dns"
|
||||
/usr/share/openclash/yml_rules_change.sh 2>/dev/null "$LOGTIME" "$rule_source" "$enable_custom_clash_rules" "$CONFIG_FILE" "$enable_rule_proxy" "$CONFIG_NAME"
|
||||
yml_custom_rule_provider
|
||||
yml_game_custom
|
||||
yml_provider_path "$CONFIG_FILE" "proxy-providers" "proxy_provider"
|
||||
yml_provider_path "$CONFIG_FILE" "rule-providers" "rule_provider"
|
||||
yml_dns_check "$CONFIG_FILE" "$FALLBACK_FILTER_FILE"
|
||||
yml_tolerance_set "$CONFIG_FILE" "$tolerance"
|
||||
|
||||
do_run_file "$RAW_CONFIG_FILE" "$BACKUP_FILE"
|
||||
|
||||
#快速启动判断
|
||||
check_run_quick
|
||||
|
||||
if ! $quick_start; then
|
||||
LOG_OUT "Step 3: Modify The Config File..."
|
||||
config_check
|
||||
config_load "openclash"
|
||||
config_foreach yml_auth_get "authentication"
|
||||
yml_auth_custom "$CONFIG_FILE"
|
||||
yml_dns_custom "$enable_custom_dns" "$CONFIG_FILE" "$append_wan_dns" "$ipv6_dns"
|
||||
/usr/share/openclash/yml_change.sh 2>/dev/null "$LOGTIME" "$en_mode" "$enable_custom_dns" "$da_password" "$cn_port" "$proxy_port" "$CONFIG_FILE" "$ipv6_enable" "$http_port" "$socks_port" "$lan_ip" "$log_level" "$proxy_mode" "$intranet_allowed" "$en_mode_tun" "$stack_type" "$dns_port" "$core_type" "$mixed_port" "$tproxy_port" "$ipv6_dns" "$store_fakeip"
|
||||
/usr/share/openclash/yml_rules_change.sh 2>/dev/null "$LOGTIME" "$rule_source" "$enable_custom_clash_rules" "$CONFIG_FILE" "$enable_rule_proxy" "$CONFIG_NAME"
|
||||
yml_custom_rule_provider
|
||||
yml_game_custom
|
||||
yml_provider_path "$CONFIG_FILE" "proxy-providers" "proxy_provider"
|
||||
yml_provider_path "$CONFIG_FILE" "rule-providers" "rule_provider"
|
||||
yml_dns_check "$CONFIG_FILE" "$FALLBACK_FILTER_FILE"
|
||||
yml_tolerance_set "$CONFIG_FILE" "$tolerance"
|
||||
fi
|
||||
|
||||
LOG_OUT "Step 4: Start Running The Clash Core..."
|
||||
start_run_core
|
||||
|
||||
|
@ -1996,6 +2073,7 @@ start()
|
|||
sleep 3
|
||||
fi
|
||||
echo "OpenClash Already Start!"
|
||||
write_run_quick
|
||||
SLOG_CLEAN
|
||||
rm -rf /tmp/yaml_*
|
||||
}
|
||||
|
@ -2033,25 +2111,24 @@ stop()
|
|||
|
||||
LOG_OUT "Step 6: Delete OpenClash Residue File..."
|
||||
if [ "$enable" != "1" ]; then
|
||||
rm -rf $LOG_FILE
|
||||
rm -rf /tmp/openclash_debug.log
|
||||
rm -rf /www/luci-static/openclash
|
||||
rm -rf /tmp/openclash_last_version
|
||||
rm -rf /tmp/clash_last_version
|
||||
rm -rf /tmp/Proxy_Group
|
||||
rm -rf /tmp/rules_name
|
||||
rm -rf /tmp/rule_providers_name
|
||||
rm -rf /tmp/openclash_fake_filter.list
|
||||
rm -rf /tmp/openclash_servers_fake_filter.conf
|
||||
|
||||
rm -rf /tmp/openclash_last_version
|
||||
rm -rf /tmp/openclash_config.tmp
|
||||
rm -rf /tmp/openclash.change
|
||||
rm -rf /tmp/openclash_debug.log
|
||||
del_lock
|
||||
LOG_OUT "OpenClash Already Stop!"
|
||||
sleep 3
|
||||
rm -rf $LOG_FILE
|
||||
fi
|
||||
|
||||
del_cron
|
||||
uci -q delete openclash.config.core_type
|
||||
uci -q commit openclash
|
||||
rm -rf /tmp/yaml_*
|
||||
rm -rf $START_LOG
|
||||
echo "OpenClash Already Stop!"
|
||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -1,295 +1,294 @@
|
|||
#Monster Hunter: World,怪兽世界猎人steam版,0,0,1,0,1,0,By-normanbb
|
||||
2.16.0.0/16
|
||||
2.17.0.0/16
|
||||
2.18.0.0/16
|
||||
2.19.0.0/16
|
||||
2.20.0.0/16
|
||||
2.21.0.0/16
|
||||
2.22.0.0/16
|
||||
2.23.0.0/16
|
||||
8.7.0.0/16
|
||||
14.21.0.0/16
|
||||
23.0.0.0/4
|
||||
23.1.0.0/16
|
||||
23.2.0.0/16
|
||||
23.3.0.0/16
|
||||
23.4.0.0/16
|
||||
23.5.0.0/16
|
||||
23.7.0.0/16
|
||||
23.8.0.0/16
|
||||
23.9.0.0/16
|
||||
23.11.0.0/16
|
||||
23.12.0.0/16
|
||||
23.13.0.0/16
|
||||
23.14.0.0/16
|
||||
23.15.0.0/16
|
||||
23.32.0.0/16
|
||||
23.33.0.0/16
|
||||
23.34.0.0/16
|
||||
23.35.0.0/16
|
||||
23.36.0.0/16
|
||||
23.37.0.0/16
|
||||
23.38.0.0/16
|
||||
23.39.0.0/16
|
||||
23.40.0.0/16
|
||||
23.41.0.0/16
|
||||
23.42.0.0/16
|
||||
23.44.0.0/16
|
||||
23.45.0.0/16
|
||||
23.46.0.0/16
|
||||
23.48.0.0/16
|
||||
23.49.0.0/16
|
||||
23.50.0.0/16
|
||||
23.51.0.0/16
|
||||
23.52.0.0/16
|
||||
23.53.0.0/16
|
||||
23.54.0.0/16
|
||||
23.55.0.0/16
|
||||
23.56.0.0/16
|
||||
23.57.0.0/16
|
||||
23.58.0.0/16
|
||||
23.59.0.0/16
|
||||
23.60.0.0/16
|
||||
23.61.0.0/16
|
||||
23.62.0.0/16
|
||||
23.63.0.0/16
|
||||
23.64.0.0/16
|
||||
23.65.0.0/16
|
||||
23.67.0.0/16
|
||||
23.72.0.0/16
|
||||
23.73.0.0/16
|
||||
23.74.0.0/16
|
||||
23.75.0.0/16
|
||||
23.76.0.0/16
|
||||
23.77.0.0/16
|
||||
23.78.0.0/16
|
||||
23.79.0.0/16
|
||||
23.192.0.0/16
|
||||
23.193.0.0/16
|
||||
23.194.0.0/16
|
||||
23.196.0.0/16
|
||||
23.197.0.0/16
|
||||
23.198.0.0/16
|
||||
23.199.0.0/16
|
||||
23.200.0.0/16
|
||||
23.201.0.0/16
|
||||
23.202.0.0/16
|
||||
23.203.0.0/16
|
||||
23.204.0.0/16
|
||||
23.205.0.0/16
|
||||
23.206.0.0/16
|
||||
23.207.0.0/16
|
||||
23.208.0.0/16
|
||||
23.209.0.0/16
|
||||
23.210.0.0/16
|
||||
23.211.0.0/16
|
||||
23.212.0.0/16
|
||||
23.213.0.0/16
|
||||
23.214.0.0/16
|
||||
23.215.0.0/16
|
||||
23.216.0.0/16
|
||||
23.217.0.0/16
|
||||
23.218.0.0/16
|
||||
23.219.0.0/16
|
||||
23.220.0.0/16
|
||||
23.221.0.0/16
|
||||
23.222.0.0/16
|
||||
23.223.0.0/16
|
||||
31.0.0.0/4
|
||||
31.13.0.0/16
|
||||
37.10.0.0/16
|
||||
45.121.0.0/16
|
||||
45.121.184.0/24
|
||||
45.121.186.0/24
|
||||
46.0.0.0/4
|
||||
59.0.0.0/4
|
||||
60.254.0.0/16
|
||||
61.213.0.0/16
|
||||
63.146.0.0/16
|
||||
63.219.0.0/16
|
||||
63.243.0.0/16
|
||||
64.0.0.0/4
|
||||
64.124.0.0/16
|
||||
65.152.0.0/16
|
||||
65.158.0.0/16
|
||||
66.0.0.0/4
|
||||
67.0.0.0/4
|
||||
67.131.0.0/16
|
||||
69.0.0.0/4
|
||||
69.16.0.0/16
|
||||
69.63.0.0/16
|
||||
69.171.0.0/16
|
||||
69.192.0.0/16
|
||||
72.165.0.0/16
|
||||
72.246.0.0/16
|
||||
72.247.0.0/16
|
||||
74.0.0.0/4
|
||||
74.86.0.0/16
|
||||
74.201.0.0/16
|
||||
75.0.0.0/4
|
||||
75.126.0.0/16
|
||||
78.16.0.0/16
|
||||
84.53.0.0/16
|
||||
85.190.0.0/16
|
||||
88.0.0.0/4
|
||||
88.221.0.0/16
|
||||
92.122.0.0/16
|
||||
92.123.0.0/16
|
||||
95.100.0.0/16
|
||||
95.101.0.0/16
|
||||
96.0.0.0/4
|
||||
96.6.0.0/16
|
||||
96.16.0.0/16
|
||||
96.17.0.0/16
|
||||
103.10.124.0/24
|
||||
103.28.0.0/16
|
||||
103.28.54.0/24
|
||||
103.74.0.0/16
|
||||
104.0.0.0/4
|
||||
104.65.0.0/16
|
||||
104.66.0.0/16
|
||||
104.67.0.0/16
|
||||
104.68.0.0/16
|
||||
104.70.0.0/16
|
||||
104.71.0.0/16
|
||||
104.72.0.0/16
|
||||
104.73.0.0/16
|
||||
104.75.0.0/16
|
||||
104.76.0.0/16
|
||||
104.77.0.0/16
|
||||
104.79.0.0/16
|
||||
104.80.0.0/16
|
||||
104.81.0.0/16
|
||||
104.82.0.0/16
|
||||
104.83.0.0/16
|
||||
104.84.0.0/16
|
||||
104.85.0.0/16
|
||||
104.86.0.0/16
|
||||
104.87.0.0/16
|
||||
104.89.0.0/16
|
||||
104.90.0.0/16
|
||||
104.91.0.0/16
|
||||
104.92.0.0/16
|
||||
104.94.0.0/16
|
||||
104.95.0.0/16
|
||||
104.97.0.0/16
|
||||
104.98.0.0/16
|
||||
104.100.0.0/16
|
||||
104.101.0.0/16
|
||||
104.102.0.0/16
|
||||
104.103.0.0/16
|
||||
104.104.0.0/16
|
||||
104.105.0.0/16
|
||||
104.106.0.0/16
|
||||
104.107.0.0/16
|
||||
104.108.0.0/16
|
||||
104.109.0.0/16
|
||||
104.110.0.0/16
|
||||
104.111.0.0/16
|
||||
104.112.0.0/16
|
||||
104.113.0.0/16
|
||||
104.115.0.0/16
|
||||
104.116.0.0/16
|
||||
104.117.0.0/16
|
||||
104.118.0.0/16
|
||||
104.119.0.0/16
|
||||
104.120.0.0/16
|
||||
104.121.0.0/16
|
||||
104.122.0.0/16
|
||||
104.123.0.0/16
|
||||
104.124.0.0/16
|
||||
104.126.0.0/16
|
||||
104.127.0.0/16
|
||||
106.15.0.0/16
|
||||
110.45.0.0/16
|
||||
115.223.0.0/16
|
||||
117.103.0.0/16
|
||||
118.155.0.0/16
|
||||
118.214.0.0/16
|
||||
118.215.0.0/16
|
||||
120.24.184.25/32
|
||||
121.156.0.0/16
|
||||
122.252.0.0/16
|
||||
125.56.0.0/16
|
||||
125.252.0.0/16
|
||||
128.241.0.0/16
|
||||
139.175.0.0/16
|
||||
141.0.0.0/4
|
||||
146.66.0.0/16
|
||||
152.199.0.0/16
|
||||
153.254.0.0/16
|
||||
153.254.86.0/24
|
||||
155.133.0.0/16
|
||||
155.133.232.0/24
|
||||
155.133.233.0/24
|
||||
155.133.234.0/24
|
||||
155.133.235.0/24
|
||||
155.133.239.0/24
|
||||
155.133.244.0/24
|
||||
155.133.253.0/24
|
||||
155.133.254.0/24
|
||||
162.254.0.0/16
|
||||
162.254.192.0/24
|
||||
162.254.193.0/24
|
||||
162.254.194.0/24
|
||||
162.254.199.0/24
|
||||
165.254.0.0/16
|
||||
172.0.0.0/4
|
||||
172.224.0.0/16
|
||||
172.226.0.0/16
|
||||
172.227.0.0/16
|
||||
172.228.0.0/16
|
||||
172.229.0.0/16
|
||||
172.230.0.0/16
|
||||
172.231.0.0/16
|
||||
173.0.0.0/4
|
||||
173.197.0.0/16
|
||||
173.205.0.0/16
|
||||
173.222.0.0/16
|
||||
173.223.0.0/16
|
||||
173.252.0.0/16
|
||||
174.36.0.0/16
|
||||
175.99.0.0/16
|
||||
175.139.0.0/16
|
||||
180.101.192.0/24
|
||||
182.162.0.0/16
|
||||
184.0.0.0/4
|
||||
184.24.0.0/16
|
||||
184.25.0.0/16
|
||||
184.26.0.0/16
|
||||
184.29.0.0/16
|
||||
184.30.0.0/16
|
||||
184.31.0.0/16
|
||||
184.50.0.0/16
|
||||
184.51.0.0/16
|
||||
184.84.0.0/16
|
||||
184.85.0.0/16
|
||||
184.87.0.0/16
|
||||
185.25.0.0/16
|
||||
185.27.0.0/16
|
||||
185.88.0.0/16
|
||||
192.69.96.0/24
|
||||
192.81.0.0/16
|
||||
198.87.0.0/16
|
||||
198.172.0.0/16
|
||||
199.0.0.0/4
|
||||
199.239.0.0/16
|
||||
203.69.0.0/16
|
||||
203.80.149.0/24
|
||||
205.186.0.0/16
|
||||
205.196.6.0/24
|
||||
205.197.0.0/16
|
||||
208.0.0.0/4
|
||||
208.64.0.0/16
|
||||
208.64.200.0/24
|
||||
208.78.0.0/16
|
||||
208.78.164.0/24
|
||||
208.78.166.0/24
|
||||
208.78.167.0/24
|
||||
209.170.0.0/16
|
||||
210.61.0.0/16
|
||||
210.201.0.0/16
|
||||
216.3.0.0/16
|
||||
216.156.0.0/16
|
||||
223.119.0.0/16
|
||||
|
||||
payload:
|
||||
- 2.16.0.0/16
|
||||
- 2.17.0.0/16
|
||||
- 2.18.0.0/16
|
||||
- 2.19.0.0/16
|
||||
- 2.20.0.0/16
|
||||
- 2.21.0.0/16
|
||||
- 2.22.0.0/16
|
||||
- 2.23.0.0/16
|
||||
- 8.7.0.0/16
|
||||
- 14.21.0.0/16
|
||||
- 23.0.0.0/4
|
||||
- 23.1.0.0/16
|
||||
- 23.2.0.0/16
|
||||
- 23.3.0.0/16
|
||||
- 23.4.0.0/16
|
||||
- 23.5.0.0/16
|
||||
- 23.7.0.0/16
|
||||
- 23.8.0.0/16
|
||||
- 23.9.0.0/16
|
||||
- 23.11.0.0/16
|
||||
- 23.12.0.0/16
|
||||
- 23.13.0.0/16
|
||||
- 23.14.0.0/16
|
||||
- 23.15.0.0/16
|
||||
- 23.32.0.0/16
|
||||
- 23.33.0.0/16
|
||||
- 23.34.0.0/16
|
||||
- 23.35.0.0/16
|
||||
- 23.36.0.0/16
|
||||
- 23.37.0.0/16
|
||||
- 23.38.0.0/16
|
||||
- 23.39.0.0/16
|
||||
- 23.40.0.0/16
|
||||
- 23.41.0.0/16
|
||||
- 23.42.0.0/16
|
||||
- 23.44.0.0/16
|
||||
- 23.45.0.0/16
|
||||
- 23.46.0.0/16
|
||||
- 23.48.0.0/16
|
||||
- 23.49.0.0/16
|
||||
- 23.50.0.0/16
|
||||
- 23.51.0.0/16
|
||||
- 23.52.0.0/16
|
||||
- 23.53.0.0/16
|
||||
- 23.54.0.0/16
|
||||
- 23.55.0.0/16
|
||||
- 23.56.0.0/16
|
||||
- 23.57.0.0/16
|
||||
- 23.58.0.0/16
|
||||
- 23.59.0.0/16
|
||||
- 23.60.0.0/16
|
||||
- 23.61.0.0/16
|
||||
- 23.62.0.0/16
|
||||
- 23.63.0.0/16
|
||||
- 23.64.0.0/16
|
||||
- 23.65.0.0/16
|
||||
- 23.67.0.0/16
|
||||
- 23.72.0.0/16
|
||||
- 23.73.0.0/16
|
||||
- 23.74.0.0/16
|
||||
- 23.75.0.0/16
|
||||
- 23.76.0.0/16
|
||||
- 23.77.0.0/16
|
||||
- 23.78.0.0/16
|
||||
- 23.79.0.0/16
|
||||
- 23.192.0.0/16
|
||||
- 23.193.0.0/16
|
||||
- 23.194.0.0/16
|
||||
- 23.196.0.0/16
|
||||
- 23.197.0.0/16
|
||||
- 23.198.0.0/16
|
||||
- 23.199.0.0/16
|
||||
- 23.200.0.0/16
|
||||
- 23.201.0.0/16
|
||||
- 23.202.0.0/16
|
||||
- 23.203.0.0/16
|
||||
- 23.204.0.0/16
|
||||
- 23.205.0.0/16
|
||||
- 23.206.0.0/16
|
||||
- 23.207.0.0/16
|
||||
- 23.208.0.0/16
|
||||
- 23.209.0.0/16
|
||||
- 23.210.0.0/16
|
||||
- 23.211.0.0/16
|
||||
- 23.212.0.0/16
|
||||
- 23.213.0.0/16
|
||||
- 23.214.0.0/16
|
||||
- 23.215.0.0/16
|
||||
- 23.216.0.0/16
|
||||
- 23.217.0.0/16
|
||||
- 23.218.0.0/16
|
||||
- 23.219.0.0/16
|
||||
- 23.220.0.0/16
|
||||
- 23.221.0.0/16
|
||||
- 23.222.0.0/16
|
||||
- 23.223.0.0/16
|
||||
- 31.0.0.0/4
|
||||
- 31.13.0.0/16
|
||||
- 37.10.0.0/16
|
||||
- 45.121.0.0/16
|
||||
- 45.121.184.0/24
|
||||
- 45.121.186.0/24
|
||||
- 46.0.0.0/4
|
||||
- 59.0.0.0/4
|
||||
- 60.254.0.0/16
|
||||
- 61.213.0.0/16
|
||||
- 63.146.0.0/16
|
||||
- 63.219.0.0/16
|
||||
- 63.243.0.0/16
|
||||
- 64.0.0.0/4
|
||||
- 64.124.0.0/16
|
||||
- 65.152.0.0/16
|
||||
- 65.158.0.0/16
|
||||
- 66.0.0.0/4
|
||||
- 67.0.0.0/4
|
||||
- 67.131.0.0/16
|
||||
- 69.0.0.0/4
|
||||
- 69.16.0.0/16
|
||||
- 69.63.0.0/16
|
||||
- 69.171.0.0/16
|
||||
- 69.192.0.0/16
|
||||
- 72.165.0.0/16
|
||||
- 72.246.0.0/16
|
||||
- 72.247.0.0/16
|
||||
- 74.0.0.0/4
|
||||
- 74.86.0.0/16
|
||||
- 74.201.0.0/16
|
||||
- 75.0.0.0/4
|
||||
- 75.126.0.0/16
|
||||
- 78.16.0.0/16
|
||||
- 84.53.0.0/16
|
||||
- 85.190.0.0/16
|
||||
- 88.0.0.0/4
|
||||
- 88.221.0.0/16
|
||||
- 92.122.0.0/16
|
||||
- 92.123.0.0/16
|
||||
- 95.100.0.0/16
|
||||
- 95.101.0.0/16
|
||||
- 96.0.0.0/4
|
||||
- 96.6.0.0/16
|
||||
- 96.16.0.0/16
|
||||
- 96.17.0.0/16
|
||||
- 103.10.124.0/24
|
||||
- 103.28.0.0/16
|
||||
- 103.28.54.0/24
|
||||
- 103.74.0.0/16
|
||||
- 104.0.0.0/4
|
||||
- 104.65.0.0/16
|
||||
- 104.66.0.0/16
|
||||
- 104.67.0.0/16
|
||||
- 104.68.0.0/16
|
||||
- 104.70.0.0/16
|
||||
- 104.71.0.0/16
|
||||
- 104.72.0.0/16
|
||||
- 104.73.0.0/16
|
||||
- 104.75.0.0/16
|
||||
- 104.76.0.0/16
|
||||
- 104.77.0.0/16
|
||||
- 104.79.0.0/16
|
||||
- 104.80.0.0/16
|
||||
- 104.81.0.0/16
|
||||
- 104.82.0.0/16
|
||||
- 104.83.0.0/16
|
||||
- 104.84.0.0/16
|
||||
- 104.85.0.0/16
|
||||
- 104.86.0.0/16
|
||||
- 104.87.0.0/16
|
||||
- 104.89.0.0/16
|
||||
- 104.90.0.0/16
|
||||
- 104.91.0.0/16
|
||||
- 104.92.0.0/16
|
||||
- 104.94.0.0/16
|
||||
- 104.95.0.0/16
|
||||
- 104.97.0.0/16
|
||||
- 104.98.0.0/16
|
||||
- 104.100.0.0/16
|
||||
- 104.101.0.0/16
|
||||
- 104.102.0.0/16
|
||||
- 104.103.0.0/16
|
||||
- 104.104.0.0/16
|
||||
- 104.105.0.0/16
|
||||
- 104.106.0.0/16
|
||||
- 104.107.0.0/16
|
||||
- 104.108.0.0/16
|
||||
- 104.109.0.0/16
|
||||
- 104.110.0.0/16
|
||||
- 104.111.0.0/16
|
||||
- 104.112.0.0/16
|
||||
- 104.113.0.0/16
|
||||
- 104.115.0.0/16
|
||||
- 104.116.0.0/16
|
||||
- 104.117.0.0/16
|
||||
- 104.118.0.0/16
|
||||
- 104.119.0.0/16
|
||||
- 104.120.0.0/16
|
||||
- 104.121.0.0/16
|
||||
- 104.122.0.0/16
|
||||
- 104.123.0.0/16
|
||||
- 104.124.0.0/16
|
||||
- 104.126.0.0/16
|
||||
- 104.127.0.0/16
|
||||
- 106.15.0.0/16
|
||||
- 110.45.0.0/16
|
||||
- 115.223.0.0/16
|
||||
- 117.103.0.0/16
|
||||
- 118.155.0.0/16
|
||||
- 118.214.0.0/16
|
||||
- 118.215.0.0/16
|
||||
- 120.24.184.25/32
|
||||
- 121.156.0.0/16
|
||||
- 122.252.0.0/16
|
||||
- 125.56.0.0/16
|
||||
- 125.252.0.0/16
|
||||
- 128.241.0.0/16
|
||||
- 139.175.0.0/16
|
||||
- 141.0.0.0/4
|
||||
- 146.66.0.0/16
|
||||
- 152.199.0.0/16
|
||||
- 153.254.0.0/16
|
||||
- 153.254.86.0/24
|
||||
- 155.133.0.0/16
|
||||
- 155.133.232.0/24
|
||||
- 155.133.233.0/24
|
||||
- 155.133.234.0/24
|
||||
- 155.133.235.0/24
|
||||
- 155.133.239.0/24
|
||||
- 155.133.244.0/24
|
||||
- 155.133.253.0/24
|
||||
- 155.133.254.0/24
|
||||
- 162.254.0.0/16
|
||||
- 162.254.192.0/24
|
||||
- 162.254.193.0/24
|
||||
- 162.254.194.0/24
|
||||
- 162.254.199.0/24
|
||||
- 165.254.0.0/16
|
||||
- 172.0.0.0/4
|
||||
- 172.224.0.0/16
|
||||
- 172.226.0.0/16
|
||||
- 172.227.0.0/16
|
||||
- 172.228.0.0/16
|
||||
- 172.229.0.0/16
|
||||
- 172.230.0.0/16
|
||||
- 172.231.0.0/16
|
||||
- 173.0.0.0/4
|
||||
- 173.197.0.0/16
|
||||
- 173.205.0.0/16
|
||||
- 173.222.0.0/16
|
||||
- 173.223.0.0/16
|
||||
- 173.252.0.0/16
|
||||
- 174.36.0.0/16
|
||||
- 175.99.0.0/16
|
||||
- 175.139.0.0/16
|
||||
- 180.101.192.0/24
|
||||
- 182.162.0.0/16
|
||||
- 184.0.0.0/4
|
||||
- 184.24.0.0/16
|
||||
- 184.25.0.0/16
|
||||
- 184.26.0.0/16
|
||||
- 184.29.0.0/16
|
||||
- 184.30.0.0/16
|
||||
- 184.31.0.0/16
|
||||
- 184.50.0.0/16
|
||||
- 184.51.0.0/16
|
||||
- 184.84.0.0/16
|
||||
- 184.85.0.0/16
|
||||
- 184.87.0.0/16
|
||||
- 185.25.0.0/16
|
||||
- 185.27.0.0/16
|
||||
- 185.88.0.0/16
|
||||
- 192.69.96.0/24
|
||||
- 192.81.0.0/16
|
||||
- 198.87.0.0/16
|
||||
- 198.172.0.0/16
|
||||
- 199.0.0.0/4
|
||||
- 199.239.0.0/16
|
||||
- 203.69.0.0/16
|
||||
- 203.80.149.0/24
|
||||
- 205.186.0.0/16
|
||||
- 205.196.6.0/24
|
||||
- 205.197.0.0/16
|
||||
- 208.0.0.0/4
|
||||
- 208.64.0.0/16
|
||||
- 208.64.200.0/24
|
||||
- 208.78.0.0/16
|
||||
- 208.78.164.0/24
|
||||
- 208.78.166.0/24
|
||||
- 208.78.167.0/24
|
||||
- 209.170.0.0/16
|
||||
- 210.61.0.0/16
|
||||
- 210.201.0.0/16
|
||||
- 216.3.0.0/16
|
||||
- 216.156.0.0/16
|
||||
- 223.119.0.0/16
|
||||
|
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
|
@ -193,7 +193,7 @@ config_su_check()
|
|||
else
|
||||
LOG_OUT "Config File【$name】No Change, Do Nothing!"
|
||||
rm -rf "$CFG_FILE"
|
||||
sleep 5
|
||||
sleep 3
|
||||
SLOG_CLEAN
|
||||
fi
|
||||
else
|
||||
|
@ -214,7 +214,7 @@ config_error()
|
|||
{
|
||||
LOG_OUT "Error:【$name】Update Error, Please Try Again Later..."
|
||||
rm -rf "$CFG_FILE" 2>/dev/null
|
||||
sleep 5
|
||||
sleep 3
|
||||
SLOG_CLEAN
|
||||
}
|
||||
|
||||
|
@ -248,15 +248,18 @@ field_name_check()
|
|||
Value['proxies'] = Value['Proxy']
|
||||
Value.delete('Proxy')
|
||||
puts '${LOGTIME} Warning: Proxy is no longer used. Auto replaced by proxies'
|
||||
elsif Value.key?('Proxy Group') then
|
||||
end
|
||||
if Value.key?('Proxy Group') then
|
||||
Value['proxy-groups'] = Value['Proxy Group']
|
||||
Value.delete('Proxy Group')
|
||||
puts '${LOGTIME} Warning: Proxy Group is no longer used. Auto replaced by proxy-groups'
|
||||
elsif Value.key?('Rule') then
|
||||
end
|
||||
if Value.key?('Rule') then
|
||||
Value['rules'] = Value['Rule']
|
||||
Value.delete('Rule')
|
||||
puts '${LOGTIME} Warning: Rule is no longer used. Auto replaced by rules'
|
||||
elsif Value.key?('rule-provider') then
|
||||
end
|
||||
if Value.key?('rule-provider') then
|
||||
Value['rule-providers'] = Value['rule-provider']
|
||||
Value.delete('rule-provider')
|
||||
puts '${LOGTIME} Warning: rule-provider is no longer used. Auto replaced by rule-providers'
|
||||
|
|
|
@ -13,9 +13,10 @@
|
|||
}
|
||||
|
||||
china_ip_route=$(uci get openclash.config.china_ip_route 2>/dev/null)
|
||||
china_ip6_route=$(uci get openclash.config.china_ip_route 2>/dev/null)
|
||||
china_ip6_route=$(uci get openclash.config.china_ip6_route 2>/dev/null)
|
||||
CHNR_CUSTOM_URL=$(uci get openclash.config.chnr_custom_url 2>/dev/null)
|
||||
CHNR6_CUSTOM_URL=$(uci get openclash.config.chnr6_custom_url 2>/dev/null)
|
||||
disable_udp_quic=$(uci get openclash.config.disable_udp_quic 2>/dev/null)
|
||||
small_flash_memory=$(uci get openclash.config.small_flash_memory 2>/dev/null)
|
||||
set_lock
|
||||
|
||||
|
@ -49,16 +50,18 @@
|
|||
if [ "$?" -ne "0" ]; then
|
||||
LOG_OUT "Chnroute Cidr List Has Been Updated, Starting To Replace The Old Version..."
|
||||
mv /tmp/china_ip_route.list "$chnr_path" >/dev/null 2>&1
|
||||
[ "$china_ip_route" -eq 1 ] && [ "$(unify_ps_prevent)" -eq 0 ] && /etc/init.d/openclash restart >/dev/null 2>&1 &
|
||||
if [ "$china_ip_route" -eq 1 ] || [ "$disable_udp_quic" -eq 1 ]; then
|
||||
[ "$(unify_ps_prevent)" -eq 0 ] && /etc/init.d/openclash restart >/dev/null 2>&1 &
|
||||
fi
|
||||
LOG_OUT "Chnroute Cidr List Update Successful!"
|
||||
sleep 5
|
||||
sleep 3
|
||||
else
|
||||
LOG_OUT "Updated Chnroute Cidr List No Change, Do Nothing..."
|
||||
sleep 5
|
||||
sleep 3
|
||||
fi
|
||||
else
|
||||
LOG_OUT "Chnroute Cidr List Update Error, Please Try Again Later..."
|
||||
sleep 5
|
||||
sleep 3
|
||||
fi
|
||||
|
||||
#ipv6
|
||||
|
@ -77,16 +80,18 @@
|
|||
if [ "$?" -ne "0" ]; then
|
||||
LOG_OUT "Chnroute6 Cidr List Has Been Updated, Starting To Replace The Old Version..."
|
||||
mv /tmp/china_ip6_route.list "$chnr6_path" >/dev/null 2>&1
|
||||
[ "$china_ip6_route" -eq 1 ] && [ "$(unify_ps_prevent)" -eq 0 ] && /etc/init.d/openclash restart >/dev/null 2>&1 &
|
||||
if [ "$china_ip6_route" -eq 1 ] || [ "$disable_udp_quic" -eq 1 ]; then
|
||||
[ "$(unify_ps_prevent)" -eq 0 ] && /etc/init.d/openclash restart >/dev/null 2>&1 &
|
||||
fi
|
||||
LOG_OUT "Chnroute6 Cidr List Update Successful!"
|
||||
sleep 5
|
||||
sleep 3
|
||||
else
|
||||
LOG_OUT "Updated Chnroute6 Cidr List No Change, Do Nothing..."
|
||||
sleep 5
|
||||
sleep 3
|
||||
fi
|
||||
else
|
||||
LOG_OUT "Chnroute6 Cidr List Update Error, Please Try Again Later..."
|
||||
sleep 5
|
||||
sleep 3
|
||||
fi
|
||||
rm -rf /tmp/china_ip*_route* >/dev/null 2>&1
|
||||
SLOG_CLEAN
|
||||
|
|
|
@ -28,7 +28,7 @@ case $CORE_TYPE in
|
|||
CORE_LV=$(sed -n 2p /tmp/clash_last_version 2>/dev/null)
|
||||
if [ -z "$CORE_LV" ]; then
|
||||
LOG_OUT "Error: 【"$CORE_TYPE"】Core Version Check Error, Please Try Again Later..."
|
||||
sleep 5
|
||||
sleep 3
|
||||
SLOG_CLEAN
|
||||
exit 0
|
||||
fi
|
||||
|
@ -121,7 +121,7 @@ if [ "$CORE_CV" != "$CORE_LV" ] || [ -z "$CORE_CV" ]; then
|
|||
;;
|
||||
*)
|
||||
esac
|
||||
sleep 5
|
||||
sleep 3
|
||||
SLOG_CLEAN
|
||||
exit 0
|
||||
fi
|
||||
|
@ -162,7 +162,7 @@ if [ "$CORE_CV" != "$CORE_LV" ] || [ -z "$CORE_CV" ]; then
|
|||
;;
|
||||
*)
|
||||
esac
|
||||
sleep 5
|
||||
sleep 3
|
||||
SLOG_CLEAN
|
||||
fi
|
||||
else
|
||||
|
@ -177,16 +177,16 @@ if [ "$CORE_CV" != "$CORE_LV" ] || [ -z "$CORE_CV" ]; then
|
|||
*)
|
||||
rm -rf /tmp/clash >/dev/null 2>&1
|
||||
esac
|
||||
sleep 10
|
||||
sleep 3
|
||||
SLOG_CLEAN
|
||||
fi
|
||||
else
|
||||
LOG_OUT "No Compiled Version Selected, Please Select In Global Settings And Try Again!"
|
||||
sleep 10
|
||||
sleep 3
|
||||
SLOG_CLEAN
|
||||
fi
|
||||
else
|
||||
LOG_OUT "【"$CORE_TYPE"】Core Has Not Been Updated, Stop Continuing Operation!"
|
||||
sleep 5
|
||||
sleep 3
|
||||
SLOG_CLEAN
|
||||
fi
|
||||
|
|
|
@ -13,7 +13,11 @@ urlencode() {
|
|||
}
|
||||
|
||||
RULE_FILE_NAME="$1"
|
||||
if [ -z "$(grep "$RULE_FILE_NAME" /usr/share/openclash/res/rule_providers.list 2>/dev/null)" ]; then
|
||||
if [ "$1" == "netflix_domains" ]; then
|
||||
DOWNLOAD_PATH="https://cdn.jsdelivr.net/gh/vernesong/OpenClash@master/luci-app-openclash/root/usr/share/openclash/res/Netflix_Domains.list"
|
||||
RULE_FILE_DIR="/usr/share/openclash/res/Netflix_Domains.list"
|
||||
RULE_TYPE="netflix"
|
||||
elif [ -z "$(grep "$RULE_FILE_NAME" /usr/share/openclash/res/rule_providers.list 2>/dev/null)" ]; then
|
||||
DOWNLOAD_PATH=$(grep -F "$RULE_FILE_NAME" /usr/share/openclash/res/game_rules.list |awk -F ',' '{print $2}' 2>/dev/null)
|
||||
RULE_FILE_DIR="/etc/openclash/game_rules/$RULE_FILE_NAME"
|
||||
RULE_TYPE="game"
|
||||
|
@ -30,9 +34,12 @@ urlencode() {
|
|||
fi
|
||||
|
||||
TMP_RULE_DIR="/tmp/$RULE_FILE_NAME"
|
||||
DOWNLOAD_PATH=$(urlencode "$DOWNLOAD_PATH")
|
||||
TMP_RULE_DIR_TMP="/tmp/$RULE_FILE_NAME.tmp"
|
||||
[ "$RULE_TYPE" != "netflix" ] && DOWNLOAD_PATH=$(urlencode "$DOWNLOAD_PATH")
|
||||
|
||||
if [ "$RULE_TYPE" = "game" ]; then
|
||||
if [ "$RULE_TYPE" = "netflix" ]; then
|
||||
curl -sL --connect-timeout 5 --retry 2 "$DOWNLOAD_PATH" -o "$TMP_RULE_DIR" >/dev/null 2>&1
|
||||
elif [ "$RULE_TYPE" = "game" ]; then
|
||||
if pidof clash >/dev/null; then
|
||||
curl -sL --connect-timeout 5 --retry 2 https://raw.githubusercontent.com/FQrabbit/SSTap-Rule/master/rules/"$DOWNLOAD_PATH" -o "$TMP_RULE_DIR" >/dev/null 2>&1
|
||||
fi
|
||||
|
@ -49,15 +56,26 @@ urlencode() {
|
|||
fi
|
||||
|
||||
if [ "$?" -eq "0" ] && [ -s "$TMP_RULE_DIR" ] && [ -z "$(grep "404: Not Found" "$TMP_RULE_DIR")" ]; then
|
||||
cmp -s "$TMP_RULE_DIR" "$RULE_FILE_DIR"
|
||||
if [ "$RULE_TYPE" = "game" ]; then
|
||||
cat "$TMP_RULE_DIR" |sed '/^#/d' 2>/dev/null |sed '/^ *$/d' 2>/dev/null |awk '{print " - "$0}' > "$TMP_RULE_DIR_TMP" 2>/dev/null
|
||||
sed -i '1i\payload:' "$TMP_RULE_DIR_TMP" 2>/dev/null
|
||||
cmp -s "$TMP_RULE_DIR_TMP" "$RULE_FILE_DIR"
|
||||
else
|
||||
cmp -s "$TMP_RULE_DIR" "$RULE_FILE_DIR"
|
||||
fi
|
||||
if [ "$?" -ne "0" ]; then
|
||||
mv "$TMP_RULE_DIR" "$RULE_FILE_DIR" >/dev/null 2>&1\
|
||||
&& rm -rf "$TMP_RULE_DIR" >/dev/null 2>&1
|
||||
if [ "$RULE_TYPE" = "game" ]; then
|
||||
mv "$TMP_RULE_DIR_TMP" "$RULE_FILE_DIR" >/dev/null 2>&1
|
||||
else
|
||||
mv "$TMP_RULE_DIR" "$RULE_FILE_DIR" >/dev/null 2>&1
|
||||
fi
|
||||
rm -rf "$TMP_RULE_DIR" >/dev/null 2>&1
|
||||
LOG_OUT "Rule File【$RULE_FILE_NAME】Download Successful!" && SLOG_CLEAN
|
||||
return 1
|
||||
else
|
||||
LOG_OUT "Rule File【$RULE_FILE_NAME】No Change, Do Nothing!" && SLOG_CLEAN
|
||||
rm -rf "$TMP_RULE_DIR" >/dev/null 2>&1
|
||||
rm -rf "$TMP_RULE_DIR_TMP" >/dev/null 2>&1
|
||||
return 2
|
||||
fi
|
||||
else
|
||||
|
|
|
@ -41,15 +41,15 @@
|
|||
LOG_OUT "Geoip Database Has Been Updated, Starting To Replace The Old Version..."
|
||||
mv /tmp/Country.mmdb "$geoip_path" >/dev/null 2>&1
|
||||
LOG_OUT "Geoip Database Update Successful!"
|
||||
sleep 5
|
||||
sleep 3
|
||||
[ "$(unify_ps_prevent)" -eq 0 ] && /etc/init.d/openclash restart >/dev/null 2>&1 &
|
||||
else
|
||||
LOG_OUT "Updated Geoip Database No Change, Do Nothing..."
|
||||
sleep 5
|
||||
sleep 3
|
||||
fi
|
||||
else
|
||||
LOG_OUT "Geoip Database Update Error, Please Try Again Later..."
|
||||
sleep 5
|
||||
sleep 3
|
||||
fi
|
||||
rm -rf /tmp/Country.mmdb >/dev/null 2>&1
|
||||
SLOG_CLEAN
|
||||
|
|
|
@ -120,11 +120,11 @@
|
|||
ifrestart=1
|
||||
else
|
||||
LOG_OUT "Updated Other Rules【$rule_name】No Change, Do Nothing!"
|
||||
sleep 5
|
||||
sleep 3
|
||||
fi
|
||||
else
|
||||
LOG_OUT "Other Rules【$rule_name】Update Error, Please Try Again Later..."
|
||||
sleep 5
|
||||
sleep 3
|
||||
fi
|
||||
}
|
||||
|
||||
|
@ -135,7 +135,7 @@
|
|||
|
||||
if [ "$RUlE_SOURCE" = "0" ]; then
|
||||
LOG_OUT "Other Rules Not Enable, Update Stop!"
|
||||
sleep 5
|
||||
sleep 3
|
||||
else
|
||||
OTHER_RULE_FILE="/tmp/other_rule.yaml"
|
||||
CONFIG_FILE=$(uci get openclash.config.config_path 2>/dev/null)
|
||||
|
@ -156,7 +156,7 @@
|
|||
config_foreach yml_other_rules_dl "other_rules" "$CONFIG_NAME"
|
||||
if [ -z "$rule_name" ]; then
|
||||
LOG_OUT "Get Other Rules Settings Faild, Update Stop!"
|
||||
sleep 5
|
||||
sleep 3
|
||||
fi
|
||||
if [ "$ifrestart" -eq 1 ] && [ "$(unify_ps_prevent)" -eq 0 ]; then
|
||||
/etc/init.d/openclash restart >/dev/null 2>&1 &
|
||||
|
|
|
@ -40,7 +40,7 @@ if [ "$(expr "$OP_LV" \> "$OP_CV")" -eq 1 ] && [ -f "$LAST_OPVER" ]; then
|
|||
opkg install /tmp/openclash.ipk --noaction >>$LOG_FILE
|
||||
if [ "$?" -ne "0" ]; then
|
||||
LOG_OUT "【OpenClash - v$LAST_VER】Pre Update Test Failed, The File is Saved in /tmp/opencrash.ipk, Please Try to Update Manually!"
|
||||
sleep 10
|
||||
sleep 3
|
||||
SLOG_CLEAN
|
||||
del_lock
|
||||
exit 0
|
||||
|
@ -80,7 +80,7 @@ if [ "$?" -eq "0" ]; then
|
|||
/etc/init.d/openclash restart 2>/dev/null
|
||||
else
|
||||
LOG_OUT "OpenClash Update Failed, The File is Saved in /tmp/openclash.ipk, Please Try to Update Manually!"
|
||||
sleep 10
|
||||
sleep 3
|
||||
SLOG_CLEAN
|
||||
fi
|
||||
EOF
|
||||
|
@ -91,7 +91,7 @@ EOF
|
|||
else
|
||||
LOG_OUT "【OpenClash - v$LAST_VER】Download Failed, Please Check The Network or Try Again Later!"
|
||||
rm -rf /tmp/openclash.ipk >/dev/null 2>&1
|
||||
sleep 5
|
||||
sleep 3
|
||||
SLOG_CLEAN
|
||||
if [ "$(uci get openclash.config.config_reload 2>/dev/null)" -eq 0 ]; then
|
||||
uci set openclash.config.config_reload=1
|
||||
|
@ -102,11 +102,11 @@ EOF
|
|||
else
|
||||
if [ ! -f "$LAST_OPVER" ]; then
|
||||
LOG_OUT "Failed to Get Version Information, Please Try Again Later..."
|
||||
sleep 5
|
||||
sleep 3
|
||||
SLOG_CLEAN
|
||||
else
|
||||
LOG_OUT "OpenClash Has not Been Updated, Stop Continuing!"
|
||||
sleep 5
|
||||
sleep 3
|
||||
SLOG_CLEAN
|
||||
fi
|
||||
if [ "$(uci get openclash.config.config_reload 2>/dev/null)" -eq 0 ]; then
|
||||
|
|
|
@ -9,19 +9,24 @@ PROXY_ROUTE_TABLE="0x162"
|
|||
enable_redirect_dns=$(uci -q get openclash.config.enable_redirect_dns)
|
||||
dns_port=$(uci -q get openclash.config.dns_port)
|
||||
disable_masq_cache=$(uci -q get openclash.config.disable_masq_cache)
|
||||
cfg_update_interval=$(uci -q get openclash.config.config_update_interval)
|
||||
cfg_update_interval=$(uci -q get openclash.config.config_update_interval || echo 60)
|
||||
log_size=$(uci -q get openclash.config.log_size || echo 1024)
|
||||
core_type=$(uci -q get openclash.config.core_type)
|
||||
netflix_domains_prefetch_interval=$(uci -q get openclash.config.netflix_domains_prefetch_interval || echo 60)
|
||||
NETFLIX_DOMAINS_LIST="/usr/share/openclash/res/Netflix_Domains.list"
|
||||
_koolshare=$(cat /usr/lib/os-release 2>/dev/null |grep OPENWRT_RELEASE 2>/dev/null |grep -i koolshare 2>/dev/null)
|
||||
CRASH_NUM=0
|
||||
CFG_UPDATE_INT=0
|
||||
CFG_UPDATE_INT=1
|
||||
NETFLIX_DOMAINS_PREFETCH=1
|
||||
sleep 60
|
||||
|
||||
while :;
|
||||
do
|
||||
cfg_update=$(uci -q get openclash.config.auto_update)
|
||||
cfg_update_mode=$(uci -q get openclash.config.config_auto_update_mode)
|
||||
cfg_update_interval_now=$(uci -q get openclash.config.config_update_interval)
|
||||
cfg_update_interval_now=$(uci -q get openclash.config.config_update_interval || echo 60)
|
||||
netflix_domains_prefetch=$(uci -q get openclash.config.netflix_domains_prefetch || echo 0)
|
||||
netflix_domains_prefetch_interval_now=$(uci -q get openclash.config.netflix_domains_prefetch_interval || echo 60)
|
||||
enable=$(uci -q get openclash.config.enable)
|
||||
|
||||
if [ "$enable" -eq 1 ]; then
|
||||
|
@ -110,12 +115,6 @@ fi
|
|||
|
||||
## 配置文件循环更新
|
||||
if [ "$cfg_update" -eq 1 ] && [ "$cfg_update_mode" -eq 1 ]; then
|
||||
if [ -z "$cfg_update_interval_now" ]; then
|
||||
cfg_update_interval_now=60
|
||||
fi
|
||||
if [ -z "$cfg_update_interval" ]; then
|
||||
cfg_update_interval=60
|
||||
fi
|
||||
[ "$cfg_update_interval" -ne "$cfg_update_interval_now" ] && CFG_UPDATE_INT=0 && cfg_update_interval="$cfg_update_interval_now"
|
||||
if [ "$CFG_UPDATE_INT" -ne 0 ]; then
|
||||
[ "$(expr "$CFG_UPDATE_INT" % "$cfg_update_interval_now")" -eq 0 ] && /usr/share/openclash/openclash.sh
|
||||
|
@ -123,8 +122,24 @@ fi
|
|||
CFG_UPDATE_INT=$(expr "$CFG_UPDATE_INT" + 1)
|
||||
fi
|
||||
|
||||
##dler checkin
|
||||
/usr/share/openclash/openclash_dler_checkin.lua
|
||||
##Dler Cloud Checkin
|
||||
/usr/share/openclash/openclash_dler_checkin.lua >/dev/null 2>&1
|
||||
|
||||
##NETFLIX_DNS_PREFETCH
|
||||
if [ "$netflix_domains_prefetch" -eq 1 ]; then
|
||||
[ "$netflix_domains_prefetch_interval" -ne "$netflix_domains_prefetch_interval_now" ] && NETFLIX_DOMAINS_PREFETCH=0 && netflix_domains_prefetch_interval="$netflix_domains_prefetch_interval_now"
|
||||
if [ "$NETFLIX_DOMAINS_PREFETCH" -ne 0 ]; then
|
||||
if [ "$(expr "$NETFLIX_DOMAINS_PREFETCH" % "$netflix_domains_prefetch_interval_now")" -eq 0 ]; then
|
||||
LOG_OUT "Tip: Start Prefetch Netflix Domains..."
|
||||
cat "$NETFLIX_DOMAINS_LIST" |while read -r line
|
||||
do
|
||||
[ -n "$line" ] && nslookup $line >/dev/null 2>&1
|
||||
done
|
||||
LOG_OUT "Tip: Netflix Domains Prefetch Finished..."
|
||||
fi
|
||||
fi
|
||||
NETFLIX_DOMAINS_PREFETCH=$(expr "$NETFLIX_DOMAINS_PREFETCH" + 1)
|
||||
fi
|
||||
|
||||
SLOG_CLEAN
|
||||
sleep 60
|
||||
|
|
|
@ -0,0 +1,519 @@
|
|||
ipv4-c001-hkg001-hgc-isp.1.oca.nflxvideo.net
|
||||
ipv4-c003-hkg001-hgc-isp.1.oca.nflxvideo.net
|
||||
ipv4-c004-hkg001-hgc-isp.1.oca.nflxvideo.net
|
||||
ipv4-c001-hkg002-hgc-isp.1.oca.nflxvideo.net
|
||||
ipv4-c002-hkg002-hgc-isp.1.oca.nflxvideo.net
|
||||
ipv4-c001-hkg001-cmhk-isp.1.oca.nflxvideo.net
|
||||
ipv4-c002-hkg001-cmhk-isp.1.oca.nflxvideo.net
|
||||
ipv4-c002-hkg001-hkbn-isp.1.oca.nflxvideo.net
|
||||
ipv4-c003-hkg001-hkbn-isp.1.oca.nflxvideo.net
|
||||
ipv4-c004-hkg001-hkbn-isp.1.oca.nflxvideo.net
|
||||
ipv4-c005-hkg001-hkbn-isp.1.oca.nflxvideo.net
|
||||
ipv4-c001-hkg002-hkbn-isp.1.oca.nflxvideo.net
|
||||
ipv4-c002-hkg002-hkbn-isp.1.oca.nflxvideo.net
|
||||
ipv4-c003-hkg002-hkbn-isp.1.oca.nflxvideo.net
|
||||
ipv4-c004-hkg002-hkbn-isp.1.oca.nflxvideo.net
|
||||
ipv4-c001-hkg001-pccw-isp.1.oca.nflxvideo.net
|
||||
ipv4-c002-hkg001-pccw-isp.1.oca.nflxvideo.net
|
||||
ipv4-c003-hkg001-pccw-isp.1.oca.nflxvideo.net
|
||||
ipv4-c004-hkg001-pccw-isp.1.oca.nflxvideo.net
|
||||
ipv4-c002-hkg002-pccw-isp.1.oca.nflxvideo.net
|
||||
ipv4-c003-hkg002-pccw-isp.1.oca.nflxvideo.net
|
||||
ipv4-c004-hkg002-pccw-isp.1.oca.nflxvideo.net
|
||||
ipv4-c005-hkg002-pccw-isp.1.oca.nflxvideo.net
|
||||
ipv4-c001-hkg003-pccw-isp.1.oca.nflxvideo.net
|
||||
ipv4-c002-hkg003-pccw-isp.1.oca.nflxvideo.net
|
||||
ipv4-c004-hkg003-pccw-isp.1.oca.nflxvideo.net
|
||||
ipv4-c010-hkg001-ix.1.oca.nflxvideo.net
|
||||
ipv6-c010-hkg001-ix.1.oca.nflxvideo.net
|
||||
ipv6-c010-hkg001-ix.1.oca.nflxvideo.net
|
||||
ipv4-c020-hkg001-ix.1.oca.nflxvideo.net
|
||||
ipv6-c020-hkg001-ix.1.oca.nflxvideo.net
|
||||
ipv6-c020-hkg001-ix.1.oca.nflxvideo.net
|
||||
ipv4-c030-hkg001-ix.1.oca.nflxvideo.net
|
||||
ipv6-c030-hkg001-ix.1.oca.nflxvideo.net
|
||||
ipv6-c030-hkg001-ix.1.oca.nflxvideo.net
|
||||
ipv4-c040-hkg001-ix.1.oca.nflxvideo.net
|
||||
ipv6-c040-hkg001-ix.1.oca.nflxvideo.net
|
||||
ipv6-c040-hkg001-ix.1.oca.nflxvideo.net
|
||||
ipv4-c050-hkg001-ix.1.oca.nflxvideo.net
|
||||
ipv4-c001-hkg001-ix.1.oca.nflxvideo.net
|
||||
ipv6-c001-hkg001-ix.1.oca.nflxvideo.net
|
||||
ipv6-c001-hkg001-ix.1.oca.nflxvideo.net
|
||||
ipv4-c011-hkg001-ix.1.oca.nflxvideo.net
|
||||
ipv6-c011-hkg001-ix.1.oca.nflxvideo.net
|
||||
ipv6-c011-hkg001-ix.1.oca.nflxvideo.net
|
||||
ipv4-c021-hkg001-ix.1.oca.nflxvideo.net
|
||||
ipv6-c021-hkg001-ix.1.oca.nflxvideo.net
|
||||
ipv6-c021-hkg001-ix.1.oca.nflxvideo.net
|
||||
ipv4-c031-hkg001-ix.1.oca.nflxvideo.net
|
||||
ipv6-c031-hkg001-ix.1.oca.nflxvideo.net
|
||||
ipv6-c031-hkg001-ix.1.oca.nflxvideo.net
|
||||
ipv4-c041-hkg001-ix.1.oca.nflxvideo.net
|
||||
ipv6-c041-hkg001-ix.1.oca.nflxvideo.net
|
||||
ipv6-c041-hkg001-ix.1.oca.nflxvideo.net
|
||||
ipv4-c051-hkg001-ix.1.oca.nflxvideo.net
|
||||
ipv4-c002-hkg001-ix.1.oca.nflxvideo.net
|
||||
ipv6-c002-hkg001-ix.1.oca.nflxvideo.net
|
||||
ipv6-c002-hkg001-ix.1.oca.nflxvideo.net
|
||||
ipv4-c012-hkg001-ix.1.oca.nflxvideo.net
|
||||
ipv6-c012-hkg001-ix.1.oca.nflxvideo.net
|
||||
ipv6-c012-hkg001-ix.1.oca.nflxvideo.net
|
||||
ipv4-c022-hkg001-ix.1.oca.nflxvideo.net
|
||||
ipv6-c022-hkg001-ix.1.oca.nflxvideo.net
|
||||
ipv6-c022-hkg001-ix.1.oca.nflxvideo.net
|
||||
ipv4-c032-hkg001-ix.1.oca.nflxvideo.net
|
||||
ipv6-c032-hkg001-ix.1.oca.nflxvideo.net
|
||||
ipv6-c032-hkg001-ix.1.oca.nflxvideo.net
|
||||
ipv4-c042-hkg001-ix.1.oca.nflxvideo.net
|
||||
ipv6-c042-hkg001-ix.1.oca.nflxvideo.net
|
||||
ipv6-c042-hkg001-ix.1.oca.nflxvideo.net
|
||||
ipv4-c052-hkg001-ix.1.oca.nflxvideo.net
|
||||
ipv4-c003-hkg001-ix.1.oca.nflxvideo.net
|
||||
ipv6-c003-hkg001-ix.1.oca.nflxvideo.net
|
||||
ipv4-c013-hkg001-ix.1.oca.nflxvideo.net
|
||||
ipv6-c013-hkg001-ix.1.oca.nflxvideo.net
|
||||
ipv6-c013-hkg001-ix.1.oca.nflxvideo.net
|
||||
ipv4-c023-hkg001-ix.1.oca.nflxvideo.net
|
||||
ipv6-c023-hkg001-ix.1.oca.nflxvideo.net
|
||||
ipv6-c023-hkg001-ix.1.oca.nflxvideo.net
|
||||
ipv4-c033-hkg001-ix.1.oca.nflxvideo.net
|
||||
ipv6-c033-hkg001-ix.1.oca.nflxvideo.net
|
||||
ipv6-c033-hkg001-ix.1.oca.nflxvideo.net
|
||||
ipv4-c043-hkg001-ix.1.oca.nflxvideo.net
|
||||
ipv6-c043-hkg001-ix.1.oca.nflxvideo.net
|
||||
ipv6-c043-hkg001-ix.1.oca.nflxvideo.net
|
||||
ipv4-c053-hkg001-ix.1.oca.nflxvideo.net
|
||||
ipv4-c004-hkg001-ix.1.oca.nflxvideo.net
|
||||
ipv6-c004-hkg001-ix.1.oca.nflxvideo.net
|
||||
ipv6-c004-hkg001-ix.1.oca.nflxvideo.net
|
||||
ipv4-c014-hkg001-ix.1.oca.nflxvideo.net
|
||||
ipv6-c014-hkg001-ix.1.oca.nflxvideo.net
|
||||
ipv6-c014-hkg001-ix.1.oca.nflxvideo.net
|
||||
ipv4-c024-hkg001-ix.1.oca.nflxvideo.net
|
||||
ipv6-c024-hkg001-ix.1.oca.nflxvideo.net
|
||||
ipv6-c024-hkg001-ix.1.oca.nflxvideo.net
|
||||
ipv4-c034-hkg001-ix.1.oca.nflxvideo.net
|
||||
ipv6-c034-hkg001-ix.1.oca.nflxvideo.net
|
||||
ipv6-c034-hkg001-ix.1.oca.nflxvideo.net
|
||||
ipv4-c044-hkg001-ix.1.oca.nflxvideo.net
|
||||
ipv6-c044-hkg001-ix.1.oca.nflxvideo.net
|
||||
ipv6-c044-hkg001-ix.1.oca.nflxvideo.net
|
||||
ipv4-c054-hkg001-ix.1.oca.nflxvideo.net
|
||||
ipv4-c005-hkg001-ix.1.oca.nflxvideo.net
|
||||
ipv6-c005-hkg001-ix.1.oca.nflxvideo.net
|
||||
ipv6-c005-hkg001-ix.1.oca.nflxvideo.net
|
||||
ipv4-c015-hkg001-ix.1.oca.nflxvideo.net
|
||||
ipv6-c015-hkg001-ix.1.oca.nflxvideo.net
|
||||
ipv6-c015-hkg001-ix.1.oca.nflxvideo.net
|
||||
ipv4-c025-hkg001-ix.1.oca.nflxvideo.net
|
||||
ipv6-c025-hkg001-ix.1.oca.nflxvideo.net
|
||||
ipv6-c025-hkg001-ix.1.oca.nflxvideo.net
|
||||
ipv4-c035-hkg001-ix.1.oca.nflxvideo.net
|
||||
ipv6-c035-hkg001-ix.1.oca.nflxvideo.net
|
||||
ipv6-c035-hkg001-ix.1.oca.nflxvideo.net
|
||||
ipv4-c045-hkg001-ix.1.oca.nflxvideo.net
|
||||
ipv4-c055-hkg001-ix.1.oca.nflxvideo.net
|
||||
ipv4-c006-hkg001-ix.1.oca.nflxvideo.net
|
||||
ipv6-c006-hkg001-ix.1.oca.nflxvideo.net
|
||||
ipv6-c006-hkg001-ix.1.oca.nflxvideo.net
|
||||
ipv4-c016-hkg001-ix.1.oca.nflxvideo.net
|
||||
ipv6-c016-hkg001-ix.1.oca.nflxvideo.net
|
||||
ipv6-c016-hkg001-ix.1.oca.nflxvideo.net
|
||||
ipv4-c026-hkg001-ix.1.oca.nflxvideo.net
|
||||
ipv6-c026-hkg001-ix.1.oca.nflxvideo.net
|
||||
ipv6-c026-hkg001-ix.1.oca.nflxvideo.net
|
||||
ipv4-c036-hkg001-ix.1.oca.nflxvideo.net
|
||||
ipv6-c036-hkg001-ix.1.oca.nflxvideo.net
|
||||
ipv6-c036-hkg001-ix.1.oca.nflxvideo.net
|
||||
ipv4-c046-hkg001-ix.1.oca.nflxvideo.net
|
||||
ipv4-c007-hkg001-ix.1.oca.nflxvideo.net
|
||||
ipv6-c007-hkg001-ix.1.oca.nflxvideo.net
|
||||
ipv6-c007-hkg001-ix.1.oca.nflxvideo.net
|
||||
ipv4-c017-hkg001-ix.1.oca.nflxvideo.net
|
||||
ipv6-c017-hkg001-ix.1.oca.nflxvideo.net
|
||||
ipv6-c017-hkg001-ix.1.oca.nflxvideo.net
|
||||
ipv4-c027-hkg001-ix.1.oca.nflxvideo.net
|
||||
ipv6-c027-hkg001-ix.1.oca.nflxvideo.net
|
||||
ipv6-c027-hkg001-ix.1.oca.nflxvideo.net
|
||||
ipv4-c037-hkg001-ix.1.oca.nflxvideo.net
|
||||
ipv6-c037-hkg001-ix.1.oca.nflxvideo.net
|
||||
ipv6-c037-hkg001-ix.1.oca.nflxvideo.net
|
||||
ipv4-c008-hkg001-ix.1.oca.nflxvideo.net
|
||||
ipv6-c008-hkg001-ix.1.oca.nflxvideo.net
|
||||
ipv6-c008-hkg001-ix.1.oca.nflxvideo.net
|
||||
ipv4-c018-hkg001-ix.1.oca.nflxvideo.net
|
||||
ipv6-c018-hkg001-ix.1.oca.nflxvideo.net
|
||||
ipv6-c018-hkg001-ix.1.oca.nflxvideo.net
|
||||
ipv4-c028-hkg001-ix.1.oca.nflxvideo.net
|
||||
ipv6-c028-hkg001-ix.1.oca.nflxvideo.net
|
||||
ipv6-c028-hkg001-ix.1.oca.nflxvideo.net
|
||||
ipv4-c038-hkg001-ix.1.oca.nflxvideo.net
|
||||
ipv6-c038-hkg001-ix.1.oca.nflxvideo.net
|
||||
ipv6-c038-hkg001-ix.1.oca.nflxvideo.net
|
||||
ipv4-c009-hkg001-ix.1.oca.nflxvideo.net
|
||||
ipv6-c009-hkg001-ix.1.oca.nflxvideo.net
|
||||
ipv4-c019-hkg001-ix.1.oca.nflxvideo.net
|
||||
ipv6-c019-hkg001-ix.1.oca.nflxvideo.net
|
||||
ipv6-c019-hkg001-ix.1.oca.nflxvideo.net
|
||||
ipv4-c029-hkg001-ix.1.oca.nflxvideo.net
|
||||
ipv6-c029-hkg001-ix.1.oca.nflxvideo.net
|
||||
ipv6-c029-hkg001-ix.1.oca.nflxvideo.net
|
||||
ipv4-c039-hkg001-ix.1.oca.nflxvideo.net
|
||||
ipv6-c039-hkg001-ix.1.oca.nflxvideo.net
|
||||
ipv6-c039-hkg001-ix.1.oca.nflxvideo.net
|
||||
ipv4-c049-hkg001-ix.1.oca.nflxvideo.net
|
||||
ipv4-c001-sin001-starhub-isp.1.oca.nflxvideo.net
|
||||
ipv6-c001-sin001-starhub-isp.1.oca.nflxvideo.net
|
||||
ipv6-c001-sin001-starhub-isp.1.oca.nflxvideo.net
|
||||
ipv4-c002-sin001-starhub-isp.1.oca.nflxvideo.net
|
||||
ipv6-c002-sin001-starhub-isp.1.oca.nflxvideo.net
|
||||
ipv6-c002-sin001-starhub-isp.1.oca.nflxvideo.net
|
||||
ipv4-c003-sin001-starhub-isp.1.oca.nflxvideo.net
|
||||
ipv6-c003-sin001-starhub-isp.1.oca.nflxvideo.net
|
||||
ipv4-c004-sin001-starhub-isp.1.oca.nflxvideo.net
|
||||
ipv6-c004-sin001-starhub-isp.1.oca.nflxvideo.net
|
||||
ipv6-c004-sin001-starhub-isp.1.oca.nflxvideo.net
|
||||
ipv4-c005-sin001-starhub-isp.1.oca.nflxvideo.net
|
||||
ipv6-c005-sin001-starhub-isp.1.oca.nflxvideo.net
|
||||
ipv6-c005-sin001-starhub-isp.1.oca.nflxvideo.net
|
||||
ipv4-c006-sin001-starhub-isp.1.oca.nflxvideo.net
|
||||
ipv6-c006-sin001-starhub-isp.1.oca.nflxvideo.net
|
||||
ipv6-c006-sin001-starhub-isp.1.oca.nflxvideo.net
|
||||
ipv4-c010-sin001-ix.1.oca.nflxvideo.net
|
||||
ipv6-c010-sin001-ix.1.oca.nflxvideo.net
|
||||
ipv6-c010-sin001-ix.1.oca.nflxvideo.net
|
||||
ipv4-c020-sin001-ix.1.oca.nflxvideo.net
|
||||
ipv4-c030-sin001-ix.1.oca.nflxvideo.net
|
||||
ipv6-c030-sin001-ix.1.oca.nflxvideo.net
|
||||
ipv4-c040-sin001-ix.1.oca.nflxvideo.net
|
||||
ipv6-c040-sin001-ix.1.oca.nflxvideo.net
|
||||
ipv6-c040-sin001-ix.1.oca.nflxvideo.net
|
||||
ipv4-c001-sin001-ix.1.oca.nflxvideo.net
|
||||
ipv4-c011-sin001-ix.1.oca.nflxvideo.net
|
||||
ipv6-c011-sin001-ix.1.oca.nflxvideo.net
|
||||
ipv6-c011-sin001-ix.1.oca.nflxvideo.net
|
||||
ipv4-c021-sin001-ix.1.oca.nflxvideo.net
|
||||
ipv4-c031-sin001-ix.1.oca.nflxvideo.net
|
||||
ipv6-c031-sin001-ix.1.oca.nflxvideo.net
|
||||
ipv6-c031-sin001-ix.1.oca.nflxvideo.net
|
||||
ipv4-c041-sin001-ix.1.oca.nflxvideo.net
|
||||
ipv6-c041-sin001-ix.1.oca.nflxvideo.net
|
||||
ipv6-c041-sin001-ix.1.oca.nflxvideo.net
|
||||
ipv4-c002-sin001-ix.1.oca.nflxvideo.net
|
||||
ipv6-c002-sin001-ix.1.oca.nflxvideo.net
|
||||
ipv6-c002-sin001-ix.1.oca.nflxvideo.net
|
||||
ipv4-c012-sin001-ix.1.oca.nflxvideo.net
|
||||
ipv6-c012-sin001-ix.1.oca.nflxvideo.net
|
||||
ipv6-c012-sin001-ix.1.oca.nflxvideo.net
|
||||
ipv4-c032-sin001-ix.1.oca.nflxvideo.net
|
||||
ipv6-c032-sin001-ix.1.oca.nflxvideo.net
|
||||
ipv6-c032-sin001-ix.1.oca.nflxvideo.net
|
||||
ipv4-c042-sin001-ix.1.oca.nflxvideo.net
|
||||
ipv6-c042-sin001-ix.1.oca.nflxvideo.net
|
||||
ipv6-c042-sin001-ix.1.oca.nflxvideo.net
|
||||
ipv4-c003-sin001-ix.1.oca.nflxvideo.net
|
||||
ipv4-c013-sin001-ix.1.oca.nflxvideo.net
|
||||
ipv6-c013-sin001-ix.1.oca.nflxvideo.net
|
||||
ipv6-c013-sin001-ix.1.oca.nflxvideo.net
|
||||
ipv4-c033-sin001-ix.1.oca.nflxvideo.net
|
||||
ipv4-c043-sin001-ix.1.oca.nflxvideo.net
|
||||
ipv6-c043-sin001-ix.1.oca.nflxvideo.net
|
||||
ipv6-c043-sin001-ix.1.oca.nflxvideo.net
|
||||
ipv6-c004-sin001-ix.1.oca.nflxvideo.net
|
||||
ipv6-c004-sin001-ix.1.oca.nflxvideo.net
|
||||
ipv4-c014-sin001-ix.1.oca.nflxvideo.net
|
||||
ipv6-c014-sin001-ix.1.oca.nflxvideo.net
|
||||
ipv6-c014-sin001-ix.1.oca.nflxvideo.net
|
||||
ipv4-c034-sin001-ix.1.oca.nflxvideo.net
|
||||
ipv6-c034-sin001-ix.1.oca.nflxvideo.net
|
||||
ipv6-c034-sin001-ix.1.oca.nflxvideo.net
|
||||
ipv4-c044-sin001-ix.1.oca.nflxvideo.net
|
||||
ipv6-c044-sin001-ix.1.oca.nflxvideo.net
|
||||
ipv6-c044-sin001-ix.1.oca.nflxvideo.net
|
||||
ipv4-c005-sin001-ix.1.oca.nflxvideo.net
|
||||
ipv6-c005-sin001-ix.1.oca.nflxvideo.net
|
||||
ipv6-c005-sin001-ix.1.oca.nflxvideo.net
|
||||
ipv4-c015-sin001-ix.1.oca.nflxvideo.net
|
||||
ipv6-c015-sin001-ix.1.oca.nflxvideo.net
|
||||
ipv6-c015-sin001-ix.1.oca.nflxvideo.net
|
||||
ipv4-c025-sin001-ix.1.oca.nflxvideo.net
|
||||
ipv6-c025-sin001-ix.1.oca.nflxvideo.net
|
||||
ipv6-c025-sin001-ix.1.oca.nflxvideo.net
|
||||
ipv4-c035-sin001-ix.1.oca.nflxvideo.net
|
||||
ipv6-c035-sin001-ix.1.oca.nflxvideo.net
|
||||
ipv6-c035-sin001-ix.1.oca.nflxvideo.net
|
||||
ipv4-c045-sin001-ix.1.oca.nflxvideo.net
|
||||
ipv6-c045-sin001-ix.1.oca.nflxvideo.net
|
||||
ipv6-c045-sin001-ix.1.oca.nflxvideo.net
|
||||
ipv4-c006-sin001-ix.1.oca.nflxvideo.net
|
||||
ipv4-c016-sin001-ix.1.oca.nflxvideo.net
|
||||
ipv4-c026-sin001-ix.1.oca.nflxvideo.net
|
||||
ipv6-c026-sin001-ix.1.oca.nflxvideo.net
|
||||
ipv6-c026-sin001-ix.1.oca.nflxvideo.net
|
||||
ipv4-c036-sin001-ix.1.oca.nflxvideo.net
|
||||
ipv6-c036-sin001-ix.1.oca.nflxvideo.net
|
||||
ipv6-c036-sin001-ix.1.oca.nflxvideo.net
|
||||
ipv4-c046-sin001-ix.1.oca.nflxvideo.net
|
||||
ipv6-c046-sin001-ix.1.oca.nflxvideo.net
|
||||
ipv6-c046-sin001-ix.1.oca.nflxvideo.net
|
||||
ipv4-c007-sin001-ix.1.oca.nflxvideo.net
|
||||
ipv6-c007-sin001-ix.1.oca.nflxvideo.net
|
||||
ipv6-c007-sin001-ix.1.oca.nflxvideo.net
|
||||
ipv4-c017-sin001-ix.1.oca.nflxvideo.net
|
||||
ipv6-c017-sin001-ix.1.oca.nflxvideo.net
|
||||
ipv6-c017-sin001-ix.1.oca.nflxvideo.net
|
||||
ipv4-c027-sin001-ix.1.oca.nflxvideo.net
|
||||
ipv6-c027-sin001-ix.1.oca.nflxvideo.net
|
||||
ipv6-c027-sin001-ix.1.oca.nflxvideo.net
|
||||
ipv4-c037-sin001-ix.1.oca.nflxvideo.net
|
||||
ipv6-c037-sin001-ix.1.oca.nflxvideo.net
|
||||
ipv6-c037-sin001-ix.1.oca.nflxvideo.net
|
||||
ipv4-c047-sin001-ix.1.oca.nflxvideo.net
|
||||
ipv6-c047-sin001-ix.1.oca.nflxvideo.net
|
||||
ipv6-c047-sin001-ix.1.oca.nflxvideo.net
|
||||
ipv4-c008-sin001-ix.1.oca.nflxvideo.net
|
||||
ipv6-c008-sin001-ix.1.oca.nflxvideo.net
|
||||
ipv6-c008-sin001-ix.1.oca.nflxvideo.net
|
||||
ipv4-c018-sin001-ix.1.oca.nflxvideo.net
|
||||
ipv4-c028-sin001-ix.1.oca.nflxvideo.net
|
||||
ipv6-c028-sin001-ix.1.oca.nflxvideo.net
|
||||
ipv6-c028-sin001-ix.1.oca.nflxvideo.net
|
||||
ipv4-c038-sin001-ix.1.oca.nflxvideo.net
|
||||
ipv6-c038-sin001-ix.1.oca.nflxvideo.net
|
||||
ipv6-c038-sin001-ix.1.oca.nflxvideo.net
|
||||
ipv4-c048-sin001-ix.1.oca.nflxvideo.net
|
||||
ipv6-c048-sin001-ix.1.oca.nflxvideo.net
|
||||
ipv6-c048-sin001-ix.1.oca.nflxvideo.net
|
||||
ipv4-c009-sin001-ix.1.oca.nflxvideo.net
|
||||
ipv6-c009-sin001-ix.1.oca.nflxvideo.net
|
||||
ipv6-c009-sin001-ix.1.oca.nflxvideo.net
|
||||
ipv4-c019-sin001-ix.1.oca.nflxvideo.net
|
||||
ipv6-c019-sin001-ix.1.oca.nflxvideo.net
|
||||
ipv6-c019-sin001-ix.1.oca.nflxvideo.net
|
||||
ipv4-c029-sin001-ix.1.oca.nflxvideo.net
|
||||
ipv6-c029-sin001-ix.1.oca.nflxvideo.net
|
||||
ipv4-c039-sin001-ix.1.oca.nflxvideo.net
|
||||
ipv6-c039-sin001-ix.1.oca.nflxvideo.net
|
||||
ipv6-c039-sin001-ix.1.oca.nflxvideo.net
|
||||
ipv4-c049-sin001-ix.1.oca.nflxvideo.net
|
||||
ipv6-c049-sin001-ix.1.oca.nflxvideo.net
|
||||
ipv6-c049-sin001-ix.1.oca.nflxvideo.net
|
||||
ipv4-c001-xsp001-m1-isp.1.oca.nflxvideo.net
|
||||
ipv4-c002-xsp001-m1-isp.1.oca.nflxvideo.net
|
||||
ipv4-c003-xsp001-m1-isp.1.oca.nflxvideo.net
|
||||
ipv4-c002-xsp002-m1-isp.1.oca.nflxvideo.net
|
||||
ipv4-c003-xsp002-m1-isp.1.oca.nflxvideo.net
|
||||
ipv4-c001-xsp002-starhub-isp.1.oca.nflxvideo.net
|
||||
ipv6-c001-xsp002-starhub-isp.1.oca.nflxvideo.net
|
||||
ipv6-c001-xsp002-starhub-isp.1.oca.nflxvideo.net
|
||||
ipv4-c003-xsp002-starhub-isp.1.oca.nflxvideo.net
|
||||
ipv6-c003-xsp002-starhub-isp.1.oca.nflxvideo.net
|
||||
ipv6-c003-xsp002-starhub-isp.1.oca.nflxvideo.net
|
||||
ipv4-c004-xsp002-starhub-isp.1.oca.nflxvideo.net
|
||||
ipv6-c004-xsp002-starhub-isp.1.oca.nflxvideo.net
|
||||
ipv6-c004-xsp002-starhub-isp.1.oca.nflxvideo.net
|
||||
ipv4-c005-xsp002-starhub-isp.1.oca.nflxvideo.net
|
||||
ipv6-c005-xsp002-starhub-isp.1.oca.nflxvideo.net
|
||||
ipv6-c005-xsp002-starhub-isp.1.oca.nflxvideo.net
|
||||
ipv4-c006-xsp002-starhub-isp.1.oca.nflxvideo.net
|
||||
ipv6-c006-xsp002-starhub-isp.1.oca.nflxvideo.net
|
||||
ipv6-c006-xsp002-starhub-isp.1.oca.nflxvideo.net
|
||||
ipv4-c007-xsp002-starhub-isp.1.oca.nflxvideo.net
|
||||
ipv4-c002-xsp003-starhub-isp.1.oca.nflxvideo.net
|
||||
ipv6-c002-xsp003-starhub-isp.1.oca.nflxvideo.net
|
||||
ipv6-c002-xsp003-starhub-isp.1.oca.nflxvideo.net
|
||||
ipv4-c004-xsp003-starhub-isp.1.oca.nflxvideo.net
|
||||
ipv6-c004-xsp003-starhub-isp.1.oca.nflxvideo.net
|
||||
ipv6-c004-xsp003-starhub-isp.1.oca.nflxvideo.net
|
||||
ipv4-c005-xsp003-starhub-isp.1.oca.nflxvideo.net
|
||||
ipv4-c006-xsp003-starhub-isp.1.oca.nflxvideo.net
|
||||
ipv6-c006-xsp003-starhub-isp.1.oca.nflxvideo.net
|
||||
ipv6-c006-xsp003-starhub-isp.1.oca.nflxvideo.net
|
||||
ipv4-c007-xsp003-starhub-isp.1.oca.nflxvideo.net
|
||||
ipv4-c008-xsp003-starhub-isp.1.oca.nflxvideo.net
|
||||
ipv6-c008-xsp003-starhub-isp.1.oca.nflxvideo.net
|
||||
ipv6-c008-xsp003-starhub-isp.1.oca.nflxvideo.net
|
||||
ipv4-c100-fra002-ix.1.oca.nflxvideo.net
|
||||
ipv4-c010-fra002-ix.1.oca.nflxvideo.net
|
||||
ipv4-c110-fra002-ix.1.oca.nflxvideo.net
|
||||
ipv4-c020-fra002-ix.1.oca.nflxvideo.net
|
||||
ipv4-c120-fra002-ix.1.oca.nflxvideo.net
|
||||
ipv4-c030-fra002-ix.1.oca.nflxvideo.net
|
||||
ipv4-c130-fra002-ix.1.oca.nflxvideo.net
|
||||
ipv4-c040-fra002-ix.1.oca.nflxvideo.net
|
||||
ipv4-c050-fra002-ix.1.oca.nflxvideo.net
|
||||
ipv4-c060-fra002-ix.1.oca.nflxvideo.net
|
||||
ipv4-c070-fra002-ix.1.oca.nflxvideo.net
|
||||
ipv4-c080-fra002-ix.1.oca.nflxvideo.net
|
||||
ipv4-c090-fra002-ix.1.oca.nflxvideo.net
|
||||
ipv4-c001-fra002-ix.1.oca.nflxvideo.net
|
||||
ipv4-c101-fra002-ix.1.oca.nflxvideo.net
|
||||
ipv4-c011-fra002-ix.1.oca.nflxvideo.net
|
||||
ipv4-c111-fra002-ix.1.oca.nflxvideo.net
|
||||
ipv4-c021-fra002-ix.1.oca.nflxvideo.net
|
||||
ipv4-c121-fra002-ix.1.oca.nflxvideo.net
|
||||
ipv4-c031-fra002-ix.1.oca.nflxvideo.net
|
||||
ipv4-c131-fra002-ix.1.oca.nflxvideo.net
|
||||
ipv4-c041-fra002-ix.1.oca.nflxvideo.net
|
||||
ipv4-c051-fra002-ix.1.oca.nflxvideo.net
|
||||
ipv4-c061-fra002-ix.1.oca.nflxvideo.net
|
||||
ipv4-c071-fra002-ix.1.oca.nflxvideo.net
|
||||
ipv4-c081-fra002-ix.1.oca.nflxvideo.net
|
||||
ipv4-c091-fra002-ix.1.oca.nflxvideo.net
|
||||
ipv4-c002-fra002-ix.1.oca.nflxvideo.net
|
||||
ipv4-c102-fra002-ix.1.oca.nflxvideo.net
|
||||
ipv4-c012-fra002-ix.1.oca.nflxvideo.net
|
||||
ipv4-c112-fra002-ix.1.oca.nflxvideo.net
|
||||
ipv4-c022-fra002-ix.1.oca.nflxvideo.net
|
||||
ipv4-c122-fra002-ix.1.oca.nflxvideo.net
|
||||
ipv4-c032-fra002-ix.1.oca.nflxvideo.net
|
||||
ipv4-c132-fra002-ix.1.oca.nflxvideo.net
|
||||
ipv4-c042-fra002-ix.1.oca.nflxvideo.net
|
||||
ipv4-c062-fra002-ix.1.oca.nflxvideo.net
|
||||
ipv4-c072-fra002-ix.1.oca.nflxvideo.net
|
||||
ipv4-c082-fra002-ix.1.oca.nflxvideo.net
|
||||
ipv4-c092-fra002-ix.1.oca.nflxvideo.net
|
||||
ipv4-c003-fra002-ix.1.oca.nflxvideo.net
|
||||
ipv4-c103-fra002-ix.1.oca.nflxvideo.net
|
||||
ipv4-c013-fra002-ix.1.oca.nflxvideo.net
|
||||
ipv4-c113-fra002-ix.1.oca.nflxvideo.net
|
||||
ipv4-c023-fra002-ix.1.oca.nflxvideo.net
|
||||
ipv4-c123-fra002-ix.1.oca.nflxvideo.net
|
||||
ipv4-c033-fra002-ix.1.oca.nflxvideo.net
|
||||
ipv4-c133-fra002-ix.1.oca.nflxvideo.net
|
||||
ipv4-c043-fra002-ix.1.oca.nflxvideo.net
|
||||
ipv4-c063-fra002-ix.1.oca.nflxvideo.net
|
||||
ipv4-c073-fra002-ix.1.oca.nflxvideo.net
|
||||
ipv4-c083-fra002-ix.1.oca.nflxvideo.net
|
||||
ipv4-c093-fra002-ix.1.oca.nflxvideo.net
|
||||
ipv4-c004-fra002-ix.1.oca.nflxvideo.net
|
||||
ipv4-c104-fra002-ix.1.oca.nflxvideo.net
|
||||
ipv4-c114-fra002-ix.1.oca.nflxvideo.net
|
||||
ipv4-c024-fra002-ix.1.oca.nflxvideo.net
|
||||
ipv4-c124-fra002-ix.1.oca.nflxvideo.net
|
||||
ipv4-c034-fra002-ix.1.oca.nflxvideo.net
|
||||
ipv4-c134-fra002-ix.1.oca.nflxvideo.net
|
||||
ipv4-c044-fra002-ix.1.oca.nflxvideo.net
|
||||
ipv4-c064-fra002-ix.1.oca.nflxvideo.net
|
||||
ipv4-c074-fra002-ix.1.oca.nflxvideo.net
|
||||
ipv4-c084-fra002-ix.1.oca.nflxvideo.net
|
||||
ipv4-c094-fra002-ix.1.oca.nflxvideo.net
|
||||
ipv4-c005-fra002-ix.1.oca.nflxvideo.net
|
||||
ipv4-c105-fra002-ix.1.oca.nflxvideo.net
|
||||
ipv4-c015-fra002-ix.1.oca.nflxvideo.net
|
||||
ipv4-c115-fra002-ix.1.oca.nflxvideo.net
|
||||
ipv4-c125-fra002-ix.1.oca.nflxvideo.net
|
||||
ipv4-c035-fra002-ix.1.oca.nflxvideo.net
|
||||
ipv4-c045-fra002-ix.1.oca.nflxvideo.net
|
||||
ipv4-c065-fra002-ix.1.oca.nflxvideo.net
|
||||
ipv4-c075-fra002-ix.1.oca.nflxvideo.net
|
||||
ipv4-c085-fra002-ix.1.oca.nflxvideo.net
|
||||
ipv4-c095-fra002-ix.1.oca.nflxvideo.net
|
||||
ipv4-c006-fra002-ix.1.oca.nflxvideo.net
|
||||
ipv4-c106-fra002-ix.1.oca.nflxvideo.net
|
||||
ipv4-c016-fra002-ix.1.oca.nflxvideo.net
|
||||
ipv4-c116-fra002-ix.1.oca.nflxvideo.net
|
||||
ipv4-c026-fra002-ix.1.oca.nflxvideo.net
|
||||
ipv4-c126-fra002-ix.1.oca.nflxvideo.net
|
||||
ipv4-c036-fra002-ix.1.oca.nflxvideo.net
|
||||
ipv4-c136-fra002-ix.1.oca.nflxvideo.net
|
||||
ipv4-c046-fra002-ix.1.oca.nflxvideo.net
|
||||
ipv4-c056-fra002-ix.1.oca.nflxvideo.net
|
||||
ipv4-c066-fra002-ix.1.oca.nflxvideo.net
|
||||
ipv4-c076-fra002-ix.1.oca.nflxvideo.net
|
||||
ipv4-c086-fra002-ix.1.oca.nflxvideo.net
|
||||
ipv4-c096-fra002-ix.1.oca.nflxvideo.net
|
||||
ipv4-c007-fra002-ix.1.oca.nflxvideo.net
|
||||
ipv4-c107-fra002-ix.1.oca.nflxvideo.net
|
||||
ipv4-c017-fra002-ix.1.oca.nflxvideo.net
|
||||
ipv4-c117-fra002-ix.1.oca.nflxvideo.net
|
||||
ipv4-c027-fra002-ix.1.oca.nflxvideo.net
|
||||
ipv4-c127-fra002-ix.1.oca.nflxvideo.net
|
||||
ipv4-c037-fra002-ix.1.oca.nflxvideo.net
|
||||
ipv4-c047-fra002-ix.1.oca.nflxvideo.net
|
||||
ipv4-c057-fra002-ix.1.oca.nflxvideo.net
|
||||
ipv4-c067-fra002-ix.1.oca.nflxvideo.net
|
||||
ipv4-c077-fra002-ix.1.oca.nflxvideo.net
|
||||
ipv4-c087-fra002-ix.1.oca.nflxvideo.net
|
||||
ipv4-c097-fra002-ix.1.oca.nflxvideo.net
|
||||
ipv4-c008-fra002-ix.1.oca.nflxvideo.net
|
||||
ipv4-c108-fra002-ix.1.oca.nflxvideo.net
|
||||
ipv4-c018-fra002-ix.1.oca.nflxvideo.net
|
||||
ipv4-c118-fra002-ix.1.oca.nflxvideo.net
|
||||
ipv4-c028-fra002-ix.1.oca.nflxvideo.net
|
||||
ipv4-c128-fra002-ix.1.oca.nflxvideo.net
|
||||
ipv4-c038-fra002-ix.1.oca.nflxvideo.net
|
||||
ipv4-c048-fra002-ix.1.oca.nflxvideo.net
|
||||
ipv4-c058-fra002-ix.1.oca.nflxvideo.net
|
||||
ipv4-c068-fra002-ix.1.oca.nflxvideo.net
|
||||
ipv4-c078-fra002-ix.1.oca.nflxvideo.net
|
||||
ipv4-c088-fra002-ix.1.oca.nflxvideo.net
|
||||
ipv4-c098-fra002-ix.1.oca.nflxvideo.net
|
||||
ipv4-c009-fra002-ix.1.oca.nflxvideo.net
|
||||
ipv4-c109-fra002-ix.1.oca.nflxvideo.net
|
||||
ipv4-c019-fra002-ix.1.oca.nflxvideo.net
|
||||
ipv4-c119-fra002-ix.1.oca.nflxvideo.net
|
||||
ipv4-c029-fra002-ix.1.oca.nflxvideo.net
|
||||
ipv4-c129-fra002-ix.1.oca.nflxvideo.net
|
||||
ipv4-c039-fra002-ix.1.oca.nflxvideo.net
|
||||
ipv4-c049-fra002-ix.1.oca.nflxvideo.net
|
||||
ipv4-c059-fra002-ix.1.oca.nflxvideo.net
|
||||
ipv4-c069-fra002-ix.1.oca.nflxvideo.net
|
||||
ipv4-c079-fra002-ix.1.oca.nflxvideo.net
|
||||
ipv4-c089-fra002-ix.1.oca.nflxvideo.net
|
||||
ipv4-c099-fra002-ix.1.oca.nflxvideo.net
|
||||
ipv4-c010-fra002-dev-ix.1.oca.nflxvideo.net
|
||||
ipv4-c001-fra002-dev-ix.1.oca.nflxvideo.net
|
||||
ipv4-c011-fra002-dev-ix.1.oca.nflxvideo.net
|
||||
ipv4-c002-fra002-dev-ix.1.oca.nflxvideo.net
|
||||
ipv6-c002-fra002-dev-ix.1.oca.nflxvideo.net
|
||||
ipv6-c002-fra002-dev-ix.1.oca.nflxvideo.net
|
||||
ipv4-c012-fra002-dev-ix.1.oca.nflxvideo.net
|
||||
ipv6-c003-fra002-dev-ix.1.oca.nflxvideo.net
|
||||
ipv6-c003-fra002-dev-ix.1.oca.nflxvideo.net
|
||||
ipv4-c004-fra002-dev-ix.1.oca.nflxvideo.net
|
||||
ipv6-c004-fra002-dev-ix.1.oca.nflxvideo.net
|
||||
ipv6-c004-fra002-dev-ix.1.oca.nflxvideo.net
|
||||
ipv4-c005-fra002-dev-ix.1.oca.nflxvideo.net
|
||||
ipv4-c006-fra002-dev-ix.1.oca.nflxvideo.net
|
||||
ipv4-c007-fra002-dev-ix.1.oca.nflxvideo.net
|
||||
ipv4-c008-fra002-dev-ix.1.oca.nflxvideo.net
|
||||
ipv4-c009-fra002-dev-ix.1.oca.nflxvideo.net
|
||||
ipv4-c003-mfm001-ctm-isp.1.oca.nflxvideo.net
|
||||
ipv4-c001-tsa001-chieftelecom-isp.1.oca.nflxvideo.net
|
||||
ipv4-c001-tsa001-cht-isp.1.oca.nflxvideo.net
|
||||
ipv4-c002-tsa001-cht-isp.1.oca.nflxvideo.net
|
||||
ipv4-c003-tsa001-cht-isp.1.oca.nflxvideo.net
|
||||
ipv4-c004-tsa001-cht-isp.1.oca.nflxvideo.net
|
||||
ipv4-c005-tsa001-cht-isp.1.oca.nflxvideo.net
|
||||
ipv4-c006-tsa001-cht-isp.1.oca.nflxvideo.net
|
||||
ipv4-c007-tsa001-cht-isp.1.oca.nflxvideo.net
|
||||
ipv4-c008-tsa001-cht-isp.1.oca.nflxvideo.net
|
||||
ipv4-c002-cjj001-lguplus-isp.1.oca.nflxvideo.net
|
||||
ipv4-c006-cjj001-lguplus-isp.1.oca.nflxvideo.net
|
||||
ipv4-c001-hlp001-im2-isp.1.oca.nflxvideo.net
|
||||
ipv4-c001-hlp001-myrepublicid-isp.1.oca.nflxvideo.net
|
||||
ipv4-c002-hlp001-myrepublicid-isp.1.oca.nflxvideo.net
|
||||
ipv4-c001-hlp001-cbn-isp.1.oca.nflxvideo.net
|
||||
ipv4-c002-hlp001-cbn-isp.1.oca.nflxvideo.net
|
||||
ipv4-c001-hlp002-linknet-isp.1.oca.nflxvideo.net
|
||||
ipv4-c002-hlp002-linknet-isp.1.oca.nflxvideo.net
|
||||
ipv4-c001-hlp003-linknet-isp.1.oca.nflxvideo.net
|
||||
ipv4-c002-hlp003-linknet-isp.1.oca.nflxvideo.net
|
||||
ipv4-c001-hlp001-mncplay-isp.1.oca.nflxvideo.net
|
||||
ipv4-c002-hlp001-mncplay-isp.1.oca.nflxvideo.net
|
||||
ipv4-c001-bdo001-starnetid-isp.1.oca.nflxvideo.net
|
||||
ipv4-c002-bdo001-starnetid-isp.1.oca.nflxvideo.net
|
||||
ipv4-c001-cgk001-moratel-isp.1.oca.nflxvideo.net
|
||||
ipv4-c002-cgk001-moratel-isp.1.oca.nflxvideo.net
|
||||
ipv4-c001-cgk001-linknet-isp.1.oca.nflxvideo.net
|
||||
ipv4-c002-cgk001-linknet-isp.1.oca.nflxvideo.net
|
||||
ipv4-c003-cgk001-linknet-isp.1.oca.nflxvideo.net
|
||||
ipv4-c001-cgk002-linknet-isp.1.oca.nflxvideo.net
|
||||
ipv4-c002-cgk002-linknet-isp.1.oca.nflxvideo.net
|
||||
ipv4-c003-cgk002-linknet-isp.1.oca.nflxvideo.net
|
||||
ipv4-c003-cgk002-biznet-isp.1.oca.nflxvideo.net
|
||||
ipv4-c004-cgk002-biznet-isp.1.oca.nflxvideo.net
|
||||
ipv4-c001-cxp001-biznet-isp.1.oca.nflxvideo.net
|
||||
ipv4-c001-sub001-biznet-isp.1.oca.nflxvideo.net
|
|
@ -125,6 +125,11 @@ if not Value.key?('profile') then
|
|||
else
|
||||
Value['profile']['store-selected']=true
|
||||
end;
|
||||
if ${22} != 1 then
|
||||
Value['profile']['store-fakeip']=false
|
||||
else
|
||||
Value['profile']['store-fakeip']=true
|
||||
end;
|
||||
rescue Exception => e
|
||||
puts '${LOGTIME} Error: Set General Error,【' + e.message + '】'
|
||||
end
|
||||
|
|
|
@ -275,7 +275,7 @@ if [ "$create_config" = "0" ] || [ "$servers_if_update" = "1" ] || [ ! -z "$if_g
|
|||
if [ $? -ne 0 ]; then
|
||||
LOG_OUT "Error: Config File【$CONFIG_NAME】Unable To Parse, Please Choose One-key Function To Create Config File..."
|
||||
uci commit openclash
|
||||
sleep 5
|
||||
sleep 3
|
||||
SLOG_CLEAN
|
||||
del_lock
|
||||
exit 0
|
||||
|
|
|
@ -3174,7 +3174,9 @@
|
|||
|
||||
if (/\bcm-fat-cursor\b/.test(cm.getWrapperElement().className)) {
|
||||
var charPos = charCoords(cm, head, "div", null, null);
|
||||
cursor.style.width = Math.max(0, charPos.right - charPos.left) + "px";
|
||||
if (charPos.right - charPos.left > 0) {
|
||||
cursor.style.width = (charPos.right - charPos.left) + "px";
|
||||
}
|
||||
}
|
||||
|
||||
if (pos.other) {
|
||||
|
@ -3349,10 +3351,14 @@
|
|||
function updateHeightsInViewport(cm) {
|
||||
var display = cm.display;
|
||||
var prevBottom = display.lineDiv.offsetTop;
|
||||
var viewTop = Math.max(0, display.scroller.getBoundingClientRect().top);
|
||||
var oldHeight = display.lineDiv.getBoundingClientRect().top;
|
||||
var mustScroll = 0;
|
||||
for (var i = 0; i < display.view.length; i++) {
|
||||
var cur = display.view[i], wrapping = cm.options.lineWrapping;
|
||||
var height = (void 0), width = 0;
|
||||
if (cur.hidden) { continue }
|
||||
oldHeight += cur.line.height;
|
||||
if (ie && ie_version < 8) {
|
||||
var bot = cur.node.offsetTop + cur.node.offsetHeight;
|
||||
height = bot - prevBottom;
|
||||
|
@ -3367,6 +3373,7 @@
|
|||
}
|
||||
var diff = cur.line.height - height;
|
||||
if (diff > .005 || diff < -.005) {
|
||||
if (oldHeight < viewTop) { mustScroll -= diff; }
|
||||
updateLineHeight(cur.line, height);
|
||||
updateWidgetHeight(cur.line);
|
||||
if (cur.rest) { for (var j = 0; j < cur.rest.length; j++)
|
||||
|
@ -3381,6 +3388,7 @@
|
|||
}
|
||||
}
|
||||
}
|
||||
if (Math.abs(mustScroll) > 2) { display.scroller.scrollTop += mustScroll; }
|
||||
}
|
||||
|
||||
// Read and store the height of line widgets associated with the
|
||||
|
@ -4492,6 +4500,12 @@
|
|||
|
||||
function onScrollWheel(cm, e) {
|
||||
var delta = wheelEventDelta(e), dx = delta.x, dy = delta.y;
|
||||
var pixelsPerUnit = wheelPixelsPerUnit;
|
||||
if (event.deltaMode === 0) {
|
||||
dx = e.deltaX;
|
||||
dy = e.deltaY;
|
||||
pixelsPerUnit = 1;
|
||||
}
|
||||
|
||||
var display = cm.display, scroll = display.scroller;
|
||||
// Quit if there's nothing to scroll here
|
||||
|
@ -4520,10 +4534,10 @@
|
|||
// estimated pixels/delta value, we just handle horizontal
|
||||
// scrolling entirely here. It'll be slightly off from native, but
|
||||
// better than glitching out.
|
||||
if (dx && !gecko && !presto && wheelPixelsPerUnit != null) {
|
||||
if (dx && !gecko && !presto && pixelsPerUnit != null) {
|
||||
if (dy && canScrollY)
|
||||
{ updateScrollTop(cm, Math.max(0, scroll.scrollTop + dy * wheelPixelsPerUnit)); }
|
||||
setScrollLeft(cm, Math.max(0, scroll.scrollLeft + dx * wheelPixelsPerUnit));
|
||||
{ updateScrollTop(cm, Math.max(0, scroll.scrollTop + dy * pixelsPerUnit)); }
|
||||
setScrollLeft(cm, Math.max(0, scroll.scrollLeft + dx * pixelsPerUnit));
|
||||
// Only prevent default scrolling if vertical scrolling is
|
||||
// actually possible. Otherwise, it causes vertical scroll
|
||||
// jitter on OSX trackpads when deltaX is small and deltaY
|
||||
|
@ -4536,15 +4550,15 @@
|
|||
|
||||
// 'Project' the visible viewport to cover the area that is being
|
||||
// scrolled into view (if we know enough to estimate it).
|
||||
if (dy && wheelPixelsPerUnit != null) {
|
||||
var pixels = dy * wheelPixelsPerUnit;
|
||||
if (dy && pixelsPerUnit != null) {
|
||||
var pixels = dy * pixelsPerUnit;
|
||||
var top = cm.doc.scrollTop, bot = top + display.wrapper.clientHeight;
|
||||
if (pixels < 0) { top = Math.max(0, top + pixels - 50); }
|
||||
else { bot = Math.min(cm.doc.height, bot + pixels + 50); }
|
||||
updateDisplaySimple(cm, {top: top, bottom: bot});
|
||||
}
|
||||
|
||||
if (wheelSamples < 20) {
|
||||
if (wheelSamples < 20 && e.deltaMode !== 0) {
|
||||
if (display.wheelStartX == null) {
|
||||
display.wheelStartX = scroll.scrollLeft; display.wheelStartY = scroll.scrollTop;
|
||||
display.wheelDX = dx; display.wheelDY = dy;
|
||||
|
@ -8985,9 +8999,11 @@
|
|||
ContentEditableInput.prototype.supportsTouch = function () { return true };
|
||||
|
||||
ContentEditableInput.prototype.receivedFocus = function () {
|
||||
var this$1 = this;
|
||||
|
||||
var input = this;
|
||||
if (this.selectionInEditor())
|
||||
{ this.pollSelection(); }
|
||||
{ setTimeout(function () { return this$1.pollSelection(); }, 20); }
|
||||
else
|
||||
{ runInOp(this.cm, function () { return input.cm.curOp.selectionChanged = true; }); }
|
||||
|
||||
|
@ -9816,7 +9832,7 @@
|
|||
|
||||
addLegacyProps(CodeMirror);
|
||||
|
||||
CodeMirror.version = "5.62.3";
|
||||
CodeMirror.version = "5.63.1";
|
||||
|
||||
return CodeMirror;
|
||||
|
||||
|
|
|
@ -125,7 +125,7 @@ function gen_outbound(node, tag, proxy_table)
|
|||
tlsSettings = (node.stream_security == "tls") and {
|
||||
serverName = node.tls_serverName,
|
||||
allowInsecure = (node.tls_allowInsecure == "1") and true or false,
|
||||
fingerprint = (node.fingerprint and node.fingerprint ~= "disable") and node.fingerprint or nil
|
||||
fingerprint = (node.type == "Xray" and node.fingerprint and node.fingerprint ~= "disable") and node.fingerprint or nil
|
||||
} or nil,
|
||||
tcpSettings = (node.transport == "tcp" and node.protocol ~= "socks") and {
|
||||
header = {
|
||||
|
@ -152,11 +152,15 @@ function gen_outbound(node, tag, proxy_table)
|
|||
wsSettings = (node.transport == "ws") and {
|
||||
path = node.ws_path or "",
|
||||
headers = (node.ws_host ~= nil) and
|
||||
{Host = node.ws_host} or nil
|
||||
{Host = node.ws_host} or nil,
|
||||
maxEarlyData = tonumber(node.ws_maxEarlyData) or nil
|
||||
} or nil,
|
||||
httpSettings = (node.transport == "h2") and {
|
||||
path = node.h2_path,
|
||||
host = node.h2_host,
|
||||
read_idle_timeout = tonumber(node.h2_read_idle_timeout) or nil,
|
||||
health_check_timeout = tonumber(node.h2_health_check_timeout) or nil
|
||||
} or nil,
|
||||
httpSettings = (node.transport == "h2") and
|
||||
{path = node.h2_path, host = node.h2_host} or
|
||||
nil,
|
||||
dsSettings = (node.transport == "ds") and
|
||||
{path = node.ds_path} or nil,
|
||||
quicSettings = (node.transport == "quic") and {
|
||||
|
@ -166,7 +170,10 @@ function gen_outbound(node, tag, proxy_table)
|
|||
} or nil,
|
||||
grpcSettings = (node.transport == "grpc") and {
|
||||
serviceName = node.grpc_serviceName,
|
||||
multiMode = (node.grpc_mode == "multi") and true or false
|
||||
multiMode = (node.grpc_mode == "multi") and true or nil,
|
||||
idle_timeout = tonumber(node.grpc_idle_timeout) or nil,
|
||||
health_check_timeout = tonumber(node.grpc_health_check_timeout) or nil,
|
||||
permit_without_stream = (node.grpc_permit_without_stream == "1") and true or nil
|
||||
} or nil
|
||||
} or nil,
|
||||
settings = {
|
||||
|
@ -451,7 +458,7 @@ if node_section then
|
|||
|
||||
routing = {
|
||||
domainStrategy = node.domainStrategy or "AsIs",
|
||||
domainMatcher = "hybrid",
|
||||
domainMatcher = node.domainMatcher or "hybrid",
|
||||
rules = rules
|
||||
}
|
||||
elseif node.protocol == "_balancing" then
|
||||
|
@ -465,7 +472,7 @@ if node_section then
|
|||
end
|
||||
routing = {
|
||||
domainStrategy = node.domainStrategy or "AsIs",
|
||||
domainMatcher = "hybrid",
|
||||
domainMatcher = node.domainMatcher or "hybrid",
|
||||
balancers = {{tag = "balancer", selector = nodes}},
|
||||
rules = {
|
||||
{type = "field", network = "tcp,udp", balancerTag = "balancer"}
|
||||
|
|
|
@ -188,6 +188,13 @@ domainStrategy.description = "<br /><ul><li>" .. translate("'AsIs': Only use dom
|
|||
domainStrategy:depends("protocol", "_balancing")
|
||||
domainStrategy:depends("protocol", "_shunt")
|
||||
|
||||
domainMatcher = s:option(ListValue, "domainMatcher", translate("Domain matcher"))
|
||||
domainMatcher:value("hybrid")
|
||||
domainMatcher:value("linear")
|
||||
domainMatcher:depends("protocol", "_balancing")
|
||||
domainMatcher:depends("protocol", "_shunt")
|
||||
|
||||
|
||||
-- Brook协议
|
||||
brook_protocol = s:option(ListValue, "brook_protocol", translate("Protocol"))
|
||||
brook_protocol:value("client", translate("Brook"))
|
||||
|
@ -690,6 +697,19 @@ ws_path:depends("ss_transport", "ws")
|
|||
ws_path:depends("trojan_transport", "ws")
|
||||
ws_path:depends({ type = "Brook", brook_protocol = "wsclient" })
|
||||
|
||||
ws_enableEarlyData = s:option(Flag, "ws_enableEarlyData", translate("Enable early data"))
|
||||
ws_enableEarlyData:depends("transport", "ws")
|
||||
|
||||
ws_maxEarlyData = s:option(Value, "ws_maxEarlyData", translate("Early data length"))
|
||||
ws_maxEarlyData.default = "1024"
|
||||
ws_maxEarlyData:depends("ws_enableEarlyData", true)
|
||||
function ws_maxEarlyData.cfgvalue(self, section)
|
||||
return m:get(section, "ws_maxEarlyData")
|
||||
end
|
||||
function ws_maxEarlyData.write(self, section, value)
|
||||
m:set(section, "ws_maxEarlyData", value)
|
||||
end
|
||||
|
||||
-- [[ HTTP/2部分 ]]--
|
||||
h2_host = s:option(Value, "h2_host", translate("HTTP/2 Host"))
|
||||
h2_host:depends("transport", "h2")
|
||||
|
@ -699,6 +719,17 @@ h2_path = s:option(Value, "h2_path", translate("HTTP/2 Path"))
|
|||
h2_path:depends("transport", "h2")
|
||||
h2_path:depends("ss_transport", "h2")
|
||||
|
||||
h2_health_check = s:option(Flag, "h2_health_check", translate("Health check"))
|
||||
h2_health_check:depends({ type = "Xray", transport = "h2"})
|
||||
|
||||
h2_read_idle_timeout = s:option(Value, "h2_read_idle_timeout", translate("Idle timeout"))
|
||||
h2_read_idle_timeout.default = "10"
|
||||
h2_read_idle_timeout:depends("h2_health_check", true)
|
||||
|
||||
h2_health_check_timeout = s:option(Value, "h2_health_check_timeout", translate("Health check timeout"))
|
||||
h2_health_check_timeout.default = "15"
|
||||
h2_health_check_timeout:depends("h2_health_check", true)
|
||||
|
||||
-- [[ DomainSocket部分 ]]--
|
||||
ds_path = s:option(Value, "ds_path", "Path", translate("A legal file path. This file must not exist before running."))
|
||||
ds_path:depends("transport", "ds")
|
||||
|
@ -724,7 +755,22 @@ grpc_serviceName:depends("transport", "grpc")
|
|||
grpc_mode = s:option(ListValue, "grpc_mode", "gRPC " .. translate("Transfer mode"))
|
||||
grpc_mode:value("gun")
|
||||
grpc_mode:value("multi")
|
||||
grpc_mode:depends("transport", "grpc")
|
||||
grpc_mode:depends({ type = "Xray", transport = "grpc"})
|
||||
|
||||
grpc_health_check = s:option(Flag, "grpc_health_check", translate("Health check"))
|
||||
grpc_health_check:depends({ type = "Xray", transport = "grpc"})
|
||||
|
||||
grpc_idle_timeout = s:option(Value, "grpc_idle_timeout", translate("Idle timeout"))
|
||||
grpc_idle_timeout.default = "10"
|
||||
grpc_idle_timeout:depends("grpc_health_check", true)
|
||||
|
||||
grpc_health_check_timeout = s:option(Value, "grpc_health_check_timeout", translate("Health check timeout"))
|
||||
grpc_health_check_timeout.default = "20"
|
||||
grpc_health_check_timeout:depends("grpc_health_check", true)
|
||||
|
||||
grpc_permit_without_stream = s:option(Flag, "grpc_permit_without_stream", translate("Permit without stream"))
|
||||
grpc_permit_without_stream.default = "0"
|
||||
grpc_permit_without_stream:depends("grpc_health_check", true)
|
||||
|
||||
-- [[ Trojan-Go Shadowsocks2 ]] --
|
||||
ss_aead = s:option(Flag, "ss_aead", translate("Shadowsocks secondary encryption"))
|
||||
|
@ -741,11 +787,11 @@ ss_aead_pwd.password = true
|
|||
ss_aead_pwd:depends("ss_aead", "1")
|
||||
|
||||
-- [[ Trojan-Go Mux ]]--
|
||||
mux = s:option(Flag, "smux", translate("smux"))
|
||||
mux = s:option(Flag, "smux", translate("Smux"))
|
||||
mux:depends("type", "Trojan-Go")
|
||||
|
||||
-- [[ Mux ]]--
|
||||
mux = s:option(Flag, "mux", translate("mux"))
|
||||
mux = s:option(Flag, "mux", translate("Mux"))
|
||||
mux:depends({ type = "V2ray", protocol = "vmess" })
|
||||
mux:depends({ type = "V2ray", protocol = "vless", xtls = false })
|
||||
mux:depends({ type = "V2ray", protocol = "http" })
|
||||
|
@ -759,12 +805,12 @@ mux:depends({ type = "Xray", protocol = "socks" })
|
|||
mux:depends({ type = "Xray", protocol = "shadowsocks" })
|
||||
mux:depends({ type = "Xray", protocol = "trojan" })
|
||||
|
||||
mux_concurrency = s:option(Value, "mux_concurrency", translate("mux concurrency"))
|
||||
mux_concurrency = s:option(Value, "mux_concurrency", translate("Mux concurrency"))
|
||||
mux_concurrency.default = 8
|
||||
mux_concurrency:depends("mux", true)
|
||||
mux_concurrency:depends("smux", true)
|
||||
|
||||
smux_idle_timeout = s:option(Value, "smux_idle_timeout", translate("mux idle timeout"))
|
||||
smux_idle_timeout = s:option(Value, "smux_idle_timeout", translate("Mux idle timeout"))
|
||||
smux_idle_timeout.default = 60
|
||||
smux_idle_timeout:depends("smux", true)
|
||||
|
||||
|
|
|
@ -457,6 +457,9 @@ msgstr "当使用时,本机将首先连接到此节点,然后再使用此节
|
|||
msgid "Domain Strategy"
|
||||
msgstr "域名解析策略"
|
||||
|
||||
msgid "Domain matcher"
|
||||
msgstr "域名匹配算法"
|
||||
|
||||
msgid "'AsIs': Only use domain for routing. Default value."
|
||||
msgstr "AsIs:只使用域名进行路由选择。默认值。"
|
||||
|
||||
|
@ -1323,3 +1326,27 @@ msgstr "客户端文件不适合当前设备。"
|
|||
|
||||
msgid "Can't move new file to path: %s"
|
||||
msgstr "无法移动新文件到:%s"
|
||||
|
||||
msgid "Mux concurrency"
|
||||
msgstr "最大并发连接数"
|
||||
|
||||
msgid "Mux idle timeout"
|
||||
msgstr "最大闲置时间"
|
||||
|
||||
msgid "Enable early data"
|
||||
msgstr "启用前置数据"
|
||||
|
||||
msgid "Early data length"
|
||||
msgstr "前置数据最大长度"
|
||||
|
||||
msgid "Health check"
|
||||
msgstr "健康检查"
|
||||
|
||||
msgid "Idle timeout"
|
||||
msgstr "闲置时间"
|
||||
|
||||
msgid "Health check timeout"
|
||||
msgstr "检查超时时间"
|
||||
|
||||
msgid "Permit without stream"
|
||||
msgstr "无子连接时的健康检查"
|
||||
|
|
|
@ -29,7 +29,7 @@ ifeq ($(ARCH),powerpc64)
|
|||
endif
|
||||
|
||||
PKG_NAME:=verysync
|
||||
PKG_VERSION:=v2.8.2
|
||||
PKG_VERSION:=v2.10.5
|
||||
PKG_RELEASE:=1
|
||||
PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(PKG_VERSION)
|
||||
PKG_SOURCE:=$(PKG_NAME)-linux-$(PKG_ARCH_VERYSYNC)-$(PKG_VERSION).tar.gz
|
||||
|
|
Loading…
Reference in New Issue