update-10.13

This commit is contained in:
github-actions[bot] 2021-10-13 09:03:39 +08:00
parent 54209fe518
commit 49e5709a89
32 changed files with 2049 additions and 3790 deletions

View File

@ -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}'")

View File

@ -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]

View File

@ -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"

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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%>

View File

@ -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%>

View File

@ -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解析记录到文件提升内核启动后的反应速度和稳定性"

View File

@ -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'

View File

@ -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

View File

@ -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

View File

@ -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'

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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 &

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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;

View File

@ -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"}

View File

@ -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)

View File

@ -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 "无子连接时的健康检查"

View File

@ -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