update 2024-11-05 00:25:18
This commit is contained in:
parent
e10eef8862
commit
c9a45e6999
|
@ -208,9 +208,7 @@ $lang = $_GET['lang'] ?? 'en';
|
|||
}
|
||||
|
||||
#ping-result {
|
||||
font-size: 14px;
|
||||
margin-left: 15px;
|
||||
font-weight: 500;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
#d-ip {
|
||||
|
@ -249,7 +247,6 @@ $lang = $_GET['lang'] ?? 'en';
|
|||
display: none !important;
|
||||
}
|
||||
}
|
||||
|
||||
</style>
|
||||
<?php if (in_array($lang, ['zh-cn', 'en', 'auto'])): ?>
|
||||
<div id="status-bar-component" class="container-sm container-bg callout border">
|
||||
|
@ -263,7 +260,7 @@ $lang = $_GET['lang'] ?? 'en';
|
|||
<p id="d-ip" class="ip-address mb-0">Checking...</p>
|
||||
<p id="ipip" class="info small mb-0"></p>
|
||||
</div>
|
||||
<div class="col-4 d-flex justify-content-center">
|
||||
<div class="col text-center">
|
||||
<p id="ping-result" class="mb-0"></p>
|
||||
</div>
|
||||
<div class="col-auto ms-auto">
|
||||
|
@ -285,7 +282,7 @@ $lang = $_GET['lang'] ?? 'en';
|
|||
<img src="./assets/neko/img/site_icon1_04.png" id="youtube-gray" class="status-icon">
|
||||
</div>
|
||||
<div class="site-icon mx-1" onclick="pingHost('github', 'GitHub')">
|
||||
<img src="./assets/neko/img/site_icon_05.png" id="github-normal" class="status-icon" style="display: none;">
|
||||
<img src="./assets/neko/img/site_icon_05.png" id="github-normal" title="测试 GitHub 延迟" class="status-icon" style="display: none;">
|
||||
<img src="./assets/neko/img/site_icon1_05.png" id="github-gray" class="status-icon">
|
||||
</div>
|
||||
</div>
|
||||
|
@ -333,7 +330,7 @@ async function pingHost(site, siteName) {
|
|||
const resultElement = document.getElementById('ping-result');
|
||||
|
||||
try {
|
||||
resultElement.innerHTML = `<span style="font-size: 18px">正在测试 ${siteName} 的连接延迟...`;
|
||||
resultElement.innerHTML = `<span style="font-size: 22px">正在测试 ${siteName} 的连接延迟...`;
|
||||
resultElement.style.color = '#87CEFA';
|
||||
const startTime = performance.now();
|
||||
await fetch(url, {
|
||||
|
@ -342,7 +339,7 @@ async function pingHost(site, siteName) {
|
|||
});
|
||||
const endTime = performance.now();
|
||||
const pingTime = Math.round(endTime - startTime);
|
||||
resultElement.innerHTML = `<span style="font-size: 18px">${siteName} 连接延迟: ${pingTime}ms</span>`;
|
||||
resultElement.innerHTML = `<span style="font-size: 22px">${siteName} 连接延迟: ${pingTime}ms</span>`;
|
||||
if(pingTime <= 100) {
|
||||
resultElement.style.color = '#09B63F';
|
||||
} else if(pingTime <= 200) {
|
||||
|
@ -351,7 +348,7 @@ async function pingHost(site, siteName) {
|
|||
resultElement.style.color = '#ff6b6b';
|
||||
}
|
||||
} catch (error) {
|
||||
resultElement.innerHTML = `<span style="font-size: 18px">${siteName} 连接超时`;
|
||||
resultElement.innerHTML = `<span style="font-size: 22px">${siteName} 连接超时`;
|
||||
resultElement.style.color = '#ff6b6b';
|
||||
}
|
||||
}
|
||||
|
@ -417,7 +414,7 @@ let IP = {
|
|||
|
||||
const mergedData = {
|
||||
...ipsbResp.data,
|
||||
chinaIpInfo: chinaIpInfo
|
||||
// chinaIpInfo: chinaIpInfo
|
||||
};
|
||||
|
||||
IP.updateUI(mergedData, elID);
|
||||
|
@ -452,7 +449,7 @@ let IP = {
|
|||
let ipLocation = isChinaIP ?
|
||||
'<span style="color: #00FF00;">[国内 IP]</span> ' :
|
||||
'<span style="color: #FF0000;">[境外 IP]</span> ';
|
||||
firstLineInfo += ipLocation;
|
||||
// firstLineInfo += ipLocation;
|
||||
|
||||
if (data.chinaIpInfo) {
|
||||
firstLineInfo += `[${data.chinaIpInfo}]`;
|
||||
|
|
|
@ -174,6 +174,12 @@ define Package/$(PKG_NAME)/conffiles
|
|||
/www/luci-static/resources/qrcode.min.js
|
||||
endef
|
||||
|
||||
define Package/$(PKG_NAME)/postrm
|
||||
#!/bin/sh
|
||||
rm -f $${IPKG_INSTROOT}/usr/share/passwall/rules/*.nft
|
||||
exit 0
|
||||
endef
|
||||
|
||||
include $(TOPDIR)/feeds/luci/luci.mk
|
||||
|
||||
# call BuildPackage - OpenWrt buildroot signature
|
||||
|
|
|
@ -544,141 +544,18 @@ run_dns2socks() {
|
|||
|
||||
run_chinadns_ng() {
|
||||
local _flag _listen_port _dns_local _dns_trust _no_ipv6_trust _use_direct_list _use_proxy_list _gfwlist _chnlist _default_mode _default_tag
|
||||
local _extra_param=""
|
||||
eval_set_val $@
|
||||
|
||||
lua $APP_PATH/helper_chinadns_add.lua -FLAG $_flag -USE_DIRECT_LIST $_use_direct_list -USE_PROXY_LIST $_use_proxy_list
|
||||
|
||||
local _CONF_FILE=$TMP_ACL_PATH/$_flag/chinadns_ng.conf
|
||||
local _LOG_FILE=$TMP_ACL_PATH/$_flag/chinadns_ng.log
|
||||
_LOG_FILE="/dev/null"
|
||||
|
||||
cat <<-EOF > ${_CONF_FILE}
|
||||
verbose
|
||||
bind-addr 127.0.0.1
|
||||
bind-port ${_listen_port}
|
||||
china-dns ${_dns_local}
|
||||
trust-dns ${_dns_trust}
|
||||
filter-qtype 65
|
||||
EOF
|
||||
|
||||
# This function may be called multiple times, so add a condition here to avoid repeated execution.
|
||||
[ ! -f "${TMP_PATH}/vpslist" ] && {
|
||||
servers=$(uci show "${CONFIG}" | grep ".address=" | cut -d "'" -f 2 | grep -v "engage.cloudflareclient.com")
|
||||
hosts_foreach "servers" host_from_url | grep '[a-zA-Z]$' | sort -u > "${TMP_PATH}/vpslist"
|
||||
}
|
||||
[ -s "${TMP_PATH}/vpslist" ] && {
|
||||
local vpslist4_set="passwall_vpslist"
|
||||
local vpslist6_set="passwall_vpslist6"
|
||||
[ "$nftflag" = "1" ] && {
|
||||
vpslist4_set="inet@passwall@${vpslist4_set}"
|
||||
vpslist6_set="inet@passwall@${vpslist6_set}"
|
||||
}
|
||||
cat <<-EOF >> ${_CONF_FILE}
|
||||
group vpslist
|
||||
group-dnl ${TMP_PATH}/vpslist
|
||||
group-upstream ${_dns_local}
|
||||
group-ipset ${vpslist4_set},${vpslist6_set}
|
||||
EOF
|
||||
}
|
||||
|
||||
[ "${_use_direct_list}" = "1" ] && [ -s "${TMP_PATH}/direct_host" ] && {
|
||||
local whitelist4_set="passwall_whitelist"
|
||||
local whitelist6_set="passwall_whitelist6"
|
||||
[ "$nftflag" = "1" ] && {
|
||||
whitelist4_set="inet@passwall@${whitelist4_set}"
|
||||
whitelist6_set="inet@passwall@${whitelist6_set}"
|
||||
}
|
||||
cat <<-EOF >> ${_CONF_FILE}
|
||||
group directlist
|
||||
group-dnl ${TMP_PATH}/direct_host
|
||||
group-upstream ${_dns_local}
|
||||
group-ipset ${whitelist4_set},${whitelist6_set}
|
||||
EOF
|
||||
}
|
||||
|
||||
[ "${_use_proxy_list}" = "1" ] && [ -s "${TMP_PATH}/proxy_host" ] && {
|
||||
local blacklist4_set="passwall_blacklist"
|
||||
local blacklist6_set="passwall_blacklist6"
|
||||
[ "$nftflag" = "1" ] && {
|
||||
blacklist4_set="inet@passwall@${blacklist4_set}"
|
||||
blacklist6_set="inet@passwall@${blacklist6_set}"
|
||||
}
|
||||
cat <<-EOF >> ${_CONF_FILE}
|
||||
group proxylist
|
||||
group-dnl ${TMP_PATH}/proxy_host
|
||||
group-upstream ${_dns_trust}
|
||||
group-ipset ${blacklist4_set},${blacklist6_set}
|
||||
EOF
|
||||
[ "${_no_ipv6_trust}" = "1" ] && echo "no-ipv6 tag:proxylist" >> ${_CONF_FILE}
|
||||
}
|
||||
|
||||
[ "${_gfwlist}" = "1" ] && [ -s "${RULES_PATH}/gfwlist" ] && {
|
||||
local gfwlist4_set="passwall_gfwlist"
|
||||
local gfwlist6_set="passwall_gfwlist6"
|
||||
[ "$nftflag" = "1" ] && {
|
||||
gfwlist4_set="inet@passwall@${gfwlist4_set}"
|
||||
gfwlist6_set="inet@passwall@${gfwlist6_set}"
|
||||
}
|
||||
cat <<-EOF >> ${_CONF_FILE}
|
||||
gfwlist-file ${RULES_PATH}/gfwlist
|
||||
add-taggfw-ip ${gfwlist4_set},${gfwlist6_set}
|
||||
EOF
|
||||
[ "${_no_ipv6_trust}" = "1" ] && echo "no-ipv6 tag:gfw" >> ${_CONF_FILE}
|
||||
}
|
||||
|
||||
[ "${_chnlist}" != "0" ] && [ -s "${RULES_PATH}/chnlist" ] && {
|
||||
local chnroute4_set="passwall_chnroute"
|
||||
local chnroute6_set="passwall_chnroute6"
|
||||
[ "$nftflag" = "1" ] && {
|
||||
chnroute4_set="inet@passwall@${chnroute4_set}"
|
||||
chnroute6_set="inet@passwall@${chnroute6_set}"
|
||||
}
|
||||
|
||||
[ "${_chnlist}" = "direct" ] && {
|
||||
cat <<-EOF >> ${_CONF_FILE}
|
||||
chnlist-file ${RULES_PATH}/chnlist
|
||||
ipset-name4 ${chnroute4_set}
|
||||
ipset-name6 ${chnroute6_set}
|
||||
add-tagchn-ip
|
||||
chnlist-first
|
||||
EOF
|
||||
}
|
||||
|
||||
#回中国模式
|
||||
[ "${_chnlist}" = "proxy" ] && {
|
||||
cat <<-EOF >> ${_CONF_FILE}
|
||||
group chn_proxy
|
||||
group-dnl ${RULES_PATH}/chnlist
|
||||
group-upstream ${_dns_trust}
|
||||
group-ipset ${chnroute4_set},${chnroute6_set}
|
||||
EOF
|
||||
[ "${_no_ipv6_trust}" = "1" ] && echo "no-ipv6 tag:chn_proxy" >> ${_CONF_FILE}
|
||||
}
|
||||
}
|
||||
|
||||
#只使用gfwlist模式,GFW列表以外的域名及默认使用本地DNS
|
||||
[ "${_gfwlist}" = "1" ] && [ "${_chnlist}" = "0" ] && _default_tag="chn"
|
||||
#回中国模式,中国列表以外的域名及默认使用本地DNS
|
||||
[ "${_chnlist}" = "proxy" ] && _default_tag="chn"
|
||||
#全局模式,默认使用远程DNS
|
||||
[ "${_default_mode}" = "proxy" ] && [ "${_chnlist}" = "0" ] && [ "${_gfwlist}" = "0" ] && {
|
||||
_default_tag="gfw"
|
||||
[ "${_no_ipv6_trust}" = "1" ] && echo "no-ipv6" >> ${_CONF_FILE}
|
||||
}
|
||||
|
||||
# 是否接受直连 DNS 空响应
|
||||
[ "${_default_tag}" = "none_noip" ] && echo "noip-as-chnip" >> ${_CONF_FILE}
|
||||
|
||||
([ -z "${_default_tag}" ] || [ "${_default_tag}" = "smart" ] || [ "${_default_tag}" = "none_noip" ]) && _default_tag="none"
|
||||
echo "default-tag ${_default_tag}" >> ${_CONF_FILE}
|
||||
|
||||
echo "cache 4096" >> ${_CONF_FILE}
|
||||
echo "cache-stale 3600" >> ${_CONF_FILE}
|
||||
|
||||
[ "${_flag}" = "default" ] && [ "${_default_tag}" = "none" ] && {
|
||||
echo "verdict-cache 5000" >> ${_CONF_FILE}
|
||||
}
|
||||
_extra_param="-FLAG ${_flag} -LISTEN_PORT ${_listen_port} -DNS_LOCAL ${_dns_local} -DNS_TRUST ${_dns_trust}"
|
||||
_extra_param="${_extra_param} -USE_DIRECT_LIST ${_use_direct_list} -USE_PROXY_LIST ${_use_proxy_list} -GFWLIST ${_gfwlist} -CHNLIST ${_chnlist}"
|
||||
_extra_param="${_extra_param} -NO_IPV6_TRUST ${_no_ipv6_trust} -DEFAULT_MODE ${_default_mode} -DEFAULT_TAG ${_default_tag} -NFTFLAG ${nftflag}"
|
||||
|
||||
lua $APP_PATH/helper_chinadns_add.lua ${_extra_param} > ${_CONF_FILE}
|
||||
ln_run "$(first_type chinadns-ng)" chinadns-ng "${_LOG_FILE}" -C ${_CONF_FILE}
|
||||
}
|
||||
|
||||
|
|
|
@ -1,50 +1,206 @@
|
|||
require 'nixio'
|
||||
local sys = require "luci.sys"
|
||||
local api = require "luci.passwall.api"
|
||||
local appname = "passwall"
|
||||
|
||||
local var = api.get_args(arg)
|
||||
local FLAG = var["-FLAG"]
|
||||
local LISTEN_PORT = var["-LISTEN_PORT"]
|
||||
local DNS_LOCAL = var["-DNS_LOCAL"]
|
||||
local DNS_TRUST = var["-DNS_TRUST"]
|
||||
local USE_DIRECT_LIST = var["-USE_DIRECT_LIST"]
|
||||
local USE_PROXY_LIST = var["-USE_PROXY_LIST"]
|
||||
local GFWLIST = var["-GFWLIST"]
|
||||
local CHNLIST = var["-CHNLIST"]
|
||||
local NO_IPV6_TRUST = var["-NO_IPV6_TRUST"]
|
||||
local DEFAULT_MODE = var["-DEFAULT_MODE"]
|
||||
local DEFAULT_TAG = var["-DEFAULT_TAG"]
|
||||
local NFTFLAG = var["-NFTFLAG"]
|
||||
|
||||
local uci = api.uci
|
||||
local sys = api.sys
|
||||
local fs = api.fs
|
||||
local datatypes = api.datatypes
|
||||
|
||||
local TMP_PATH = "/tmp/etc/" .. appname
|
||||
local TMP_ACL_PATH = TMP_PATH .. "/acl"
|
||||
local RULES_PATH = "/usr/share/" .. appname .. "/rules"
|
||||
local config_lines = {}
|
||||
local tmp_lines = {}
|
||||
|
||||
if not nixio.fs.access(TMP_PATH) then
|
||||
nixio.fs.mkdir(TMP_PATH, 493)
|
||||
local function is_file_nonzero(path)
|
||||
if path and #path > 1 then
|
||||
if sys.exec('[ -s "%s" ] && echo -n 1' % path) == "1" then
|
||||
return true
|
||||
end
|
||||
end
|
||||
return nil
|
||||
end
|
||||
|
||||
local tmp_direct_host = TMP_PATH .. "/direct_host"
|
||||
if USE_DIRECT_LIST == "1" and not nixio.fs.access(tmp_direct_host) then
|
||||
local function merge_array(lines1, lines2)
|
||||
for i, line in ipairs(lines2) do
|
||||
table.insert(lines1, #lines1 + 1, line)
|
||||
end
|
||||
end
|
||||
|
||||
if not fs.access(TMP_ACL_PATH) then
|
||||
fs.mkdir(TMP_ACL_PATH, 493)
|
||||
end
|
||||
|
||||
local setflag= (NFTFLAG == "1") and "inet@passwall@" or ""
|
||||
|
||||
config_lines = {
|
||||
--"verbose",
|
||||
"bind-addr 127.0.0.1",
|
||||
"bind-port " .. LISTEN_PORT,
|
||||
"china-dns " .. DNS_LOCAL,
|
||||
"trust-dns " .. DNS_TRUST,
|
||||
"filter-qtype 65"
|
||||
}
|
||||
|
||||
--始终用国内DNS解析节点域名
|
||||
local file_vpslist = TMP_ACL_PATH .. "/vpslist"
|
||||
if not is_file_nonzero(file_vpslist) then
|
||||
local vpslist_out = io.open(file_vpslist, "w")
|
||||
uci:foreach(appname, "nodes", function(t)
|
||||
local address = t.address
|
||||
if address == "engage.cloudflareclient.com" then return end
|
||||
if datatypes.hostname(address) then
|
||||
vpslist_out:write(address .. "\n")
|
||||
end
|
||||
end)
|
||||
vpslist_out:close()
|
||||
end
|
||||
if is_file_nonzero(file_vpslist) then
|
||||
tmp_lines = {
|
||||
"group vpslist",
|
||||
"group-dnl " .. file_vpslist,
|
||||
"group-upstream " .. DNS_LOCAL,
|
||||
"group-ipset " .. setflag .. "passwall_vpslist," .. setflag .. "passwall_vpslist6"
|
||||
}
|
||||
merge_array(config_lines, tmp_lines)
|
||||
end
|
||||
|
||||
--直连(白名单)列表
|
||||
local file_direct_host = TMP_ACL_PATH .. "/direct_host"
|
||||
if USE_DIRECT_LIST == "1" and not fs.access(file_direct_host) then --对自定义列表进行清洗
|
||||
local direct_domain = {}
|
||||
for line in io.lines("/usr/share/passwall/rules/direct_host") do
|
||||
for line in io.lines(RULES_PATH .. "/direct_host") do
|
||||
line = api.get_std_domain(line)
|
||||
if line ~= "" and not line:find("#") then
|
||||
table.insert(direct_domain, line)
|
||||
end
|
||||
end
|
||||
if #direct_domain > 0 then
|
||||
local direct_out = io.open(tmp_direct_host, "a")
|
||||
local direct_out = io.open(file_direct_host, "w")
|
||||
for i = 1, #direct_domain do
|
||||
direct_out:write(direct_domain[i] .. "\n")
|
||||
end
|
||||
direct_out:close()
|
||||
end
|
||||
end
|
||||
if USE_DIRECT_LIST == "1" and is_file_nonzero(file_direct_host) then
|
||||
tmp_lines = {
|
||||
"group directlist",
|
||||
"group-dnl " .. file_direct_host,
|
||||
"group-upstream " .. DNS_LOCAL,
|
||||
"group-ipset " .. setflag .. "passwall_whitelist," .. setflag .. "passwall_whitelist6"
|
||||
}
|
||||
merge_array(config_lines, tmp_lines)
|
||||
end
|
||||
|
||||
local tmp_proxy_host = TMP_PATH .. "/proxy_host"
|
||||
if USE_PROXY_LIST == "1" and not nixio.fs.access(tmp_proxy_host) then
|
||||
--代理(黑名单)列表
|
||||
local file_proxy_host = TMP_ACL_PATH .. "/proxy_host"
|
||||
if USE_PROXY_LIST == "1" and not fs.access(file_proxy_host) then --对自定义列表进行清洗
|
||||
local proxy_domain = {}
|
||||
for line in io.lines("/usr/share/passwall/rules/proxy_host") do
|
||||
for line in io.lines(RULES_PATH .. "/proxy_host") do
|
||||
line = api.get_std_domain(line)
|
||||
if line ~= "" and not line:find("#") then
|
||||
table.insert(proxy_domain, line)
|
||||
end
|
||||
end
|
||||
if #proxy_domain > 0 then
|
||||
local proxy_out = io.open(tmp_proxy_host, "a")
|
||||
local proxy_out = io.open(file_proxy_host, "w")
|
||||
for i = 1, #proxy_domain do
|
||||
proxy_out:write(proxy_domain[i] .. "\n")
|
||||
end
|
||||
proxy_out:close()
|
||||
end
|
||||
end
|
||||
if USE_PROXY_LIST == "1" and is_file_nonzero(file_proxy_host) then
|
||||
tmp_lines = {
|
||||
"group proxylist",
|
||||
"group-dnl " .. file_proxy_host,
|
||||
"group-upstream " .. DNS_TRUST,
|
||||
"group-ipset " .. setflag .. "passwall_blacklist," .. setflag .. "passwall_blacklist6"
|
||||
}
|
||||
merge_array(config_lines, tmp_lines)
|
||||
if NO_IPV6_TRUST == "1" then table.insert(config_lines, "no-ipv6 tag:proxylist") end
|
||||
end
|
||||
|
||||
--GFW列表
|
||||
if GFWLIST == "1" and is_file_nonzero(RULES_PATH .. "/gfwlist") then
|
||||
tmp_lines = {
|
||||
"gfwlist-file " .. RULES_PATH .. "/gfwlist",
|
||||
"add-taggfw-ip " .. setflag .. "passwall_gfwlist," .. setflag .. "passwall_gfwlist6"
|
||||
}
|
||||
merge_array(config_lines, tmp_lines)
|
||||
if NO_IPV6_TRUST == "1" then table.insert(config_lines, "no-ipv6 tag:gfw") end
|
||||
end
|
||||
|
||||
--中国列表
|
||||
if CHNLIST ~= "0" and is_file_nonzero(RULES_PATH .. "/chnlist") then
|
||||
if CHNLIST == "direct" then
|
||||
tmp_lines = {
|
||||
"chnlist-file " .. RULES_PATH .. "/chnlist",
|
||||
"ipset-name4 " .. setflag .. "passwall_chnroute",
|
||||
"ipset-name6 " .. setflag .. "passwall_chnroute6",
|
||||
"add-tagchn-ip",
|
||||
"chnlist-first"
|
||||
}
|
||||
merge_array(config_lines, tmp_lines)
|
||||
end
|
||||
|
||||
--回中国模式
|
||||
if CHNLIST == "proxy" then
|
||||
tmp_lines = {
|
||||
"group chn_proxy",
|
||||
"group-dnl " .. RULES_PATH .. "/chnlist",
|
||||
"group-upstream " .. DNS_TRUST,
|
||||
"group-ipset " .. setflag .. "passwall_chnroute," .. setflag .. "passwall_chnroute6"
|
||||
}
|
||||
merge_array(config_lines, tmp_lines)
|
||||
if NO_IPV6_TRUST == "1" then table.insert(config_lines, "no-ipv6 tag:chn_proxy") end
|
||||
end
|
||||
end
|
||||
|
||||
--只使用gfwlist模式,GFW列表以外的域名及默认使用本地DNS
|
||||
if GFWLIST == "1" and CHNLIST == "0" then DEFAULT_TAG = "chn" end
|
||||
|
||||
--回中国模式,中国列表以外的域名及默认使用本地DNS
|
||||
if CHNLIST == "proxy" then DEFAULT_TAG = "chn" end
|
||||
|
||||
--全局模式,默认使用远程DNS
|
||||
if DEFAULT_MODE == "proxy" and CHNLIST == "0" and GFWLIST == "0" then
|
||||
DEFAULT_TAG = "gfw"
|
||||
if NO_IPV6_TRUST == "1" then table.insert(config_lines, "no-ipv6") end
|
||||
end
|
||||
|
||||
--是否接受直连 DNS 空响应
|
||||
if DEFAULT_TAG == "none_noip" then table.insert(config_lines, "noip-as-chnip") end
|
||||
|
||||
if DEFAULT_TAG == nil or DEFAULT_TAG == "smart" or DEFAULT_TAG == "none_noip" then DEFAULT_TAG = "none" end
|
||||
|
||||
table.insert(config_lines, "default-tag " .. DEFAULT_TAG)
|
||||
table.insert(config_lines, "cache 4096")
|
||||
table.insert(config_lines, "cache-stale 3600")
|
||||
|
||||
if DEFAULT_TAG == "none" then
|
||||
table.insert(config_lines, "verdict-cache 5000")
|
||||
end
|
||||
|
||||
--输出配置文件
|
||||
if #config_lines > 0 then
|
||||
for i = 1, #config_lines do
|
||||
print(config_lines[i])
|
||||
end
|
||||
end
|
||||
|
|
|
@ -103,7 +103,6 @@ ipset_r() {
|
|||
$IPT -A SS_SPEC_WAN_AC -m set --match-set china dst -j RETURN
|
||||
$IPT -A SS_SPEC_WAN_AC -m set --match-set gfwlist dst -j SS_SPEC_WAN_FW
|
||||
$IPT -A SS_SPEC_WAN_AC -m set --match-set gmlan src -m set ! --match-set china dst -j SS_SPEC_WAN_FW
|
||||
$IPT -A SS_SPEC_WAN_AC -j SS_SPEC_WAN_FW
|
||||
;;
|
||||
oversea)
|
||||
ipset -N oversea hash:net 2>/dev/null
|
||||
|
|
|
@ -324,7 +324,8 @@ if xray_fragment.fragment ~= "0" or (xray_fragment.noise ~= "0" and xray_noise.e
|
|||
},
|
||||
streamSettings = {
|
||||
sockopt = {
|
||||
tcpNoDelay = true
|
||||
tcpMptcp = (server.mptcp == "1") and true or false, -- MPTCP
|
||||
tcpNoDelay = (server.mptcp == "1") and true or false -- MPTCP
|
||||
}
|
||||
}
|
||||
})
|
||||
|
|
Loading…
Reference in New Issue