✨ Sync 2026-05-20 00:34:17

This commit is contained in:
github-actions[bot] committed 2026-05-20 00:34:17 +08:00
1 parent ecf5c92802
commit 227d6517f6
10 files changed
+135 -126

No files matched your search

+1 -1
View File
@@ -8,7 +8,7 @@ include $(TOPDIR)/rules.mk
PKG_NAME:=luci-app-passwall PKG_NAME:=luci-app-passwall
PKG_VERSION:=26.5.11 PKG_VERSION:=26.5.11
PKG_RELEASE:=128 PKG_RELEASE:=129
PKG_PO_VERSION:=$(PKG_VERSION) PKG_PO_VERSION:=$(PKG_VERSION)
PKG_CONFIG_DEPENDS:= \ PKG_CONFIG_DEPENDS:= \
@@ -194,8 +194,8 @@ if not is_file_nonzero(file_vpslist) then
end end
if is_file_nonzero(file_vpslist) then if is_file_nonzero(file_vpslist) then
local sets = { local sets = {
setflag .. "passwall_vps", setflag .. "psw_vps",
setflag .. "passwall_vps6" setflag .. "psw_vps6"
} }
tmp_lines = { tmp_lines = {
"group vpslist", "group vpslist",
@@ -240,8 +240,8 @@ if USE_DIRECT_LIST == "1" and not fs.access(file_direct_host) then
end end
if USE_DIRECT_LIST == "1" and is_file_nonzero(file_direct_host) then if USE_DIRECT_LIST == "1" and is_file_nonzero(file_direct_host) then
local sets = { local sets = {
setflag .. "passwall_white", setflag .. "psw_white",
setflag .. "passwall_white6" setflag .. "psw_white6"
} }
tmp_lines = { tmp_lines = {
"group directlist", "group directlist",
@@ -286,13 +286,13 @@ if USE_PROXY_LIST == "1" and not fs.access(file_proxy_host) then
end end
if USE_PROXY_LIST == "1" and is_file_nonzero(file_proxy_host) then if USE_PROXY_LIST == "1" and is_file_nonzero(file_proxy_host) then
local sets = { local sets = {
setflag .. "passwall_black", setflag .. "psw_black",
setflag .. "passwall_black6" setflag .. "psw_black6"
} }
if FLAG ~= "default" then if FLAG ~= "default" then
sets = { sets = {
setflag .. "passwall_" .. FLAG .. "_black", setflag .. "psw_" .. FLAG .. "_black",
setflag .. "passwall_" .. FLAG .. "_black6" setflag .. "psw_" .. FLAG .. "_black6"
} }
end end
tmp_lines = { tmp_lines = {
@@ -310,13 +310,13 @@ end
--GFW列表 --GFW列表
if GFWLIST == "1" and is_file_nonzero(RULES_PATH .. "/gfwlist") then if GFWLIST == "1" and is_file_nonzero(RULES_PATH .. "/gfwlist") then
local sets = { local sets = {
setflag .. "passwall_gfw", setflag .. "psw_gfw",
setflag .. "passwall_gfw6" setflag .. "psw_gfw6"
} }
if FLAG ~= "default" then if FLAG ~= "default" then
sets = { sets = {
setflag .. "passwall_" .. FLAG .. "_gfw", setflag .. "psw_" .. FLAG .. "_gfw",
setflag .. "passwall_" .. FLAG .. "_gfw6" setflag .. "psw_" .. FLAG .. "_gfw6"
} }
end end
tmp_lines = { tmp_lines = {
@@ -333,8 +333,8 @@ if CHNLIST ~= "0" and is_file_nonzero(RULES_PATH .. "/chnlist") then
if CHNLIST == "direct" then if CHNLIST == "direct" then
tmp_lines = { tmp_lines = {
"chnlist-file " .. RULES_PATH .. "/chnlist", "chnlist-file " .. RULES_PATH .. "/chnlist",
"ipset-name4 " .. setflag .. "passwall_chn", "ipset-name4 " .. setflag .. "psw_chn",
"ipset-name6 " .. setflag .. "passwall_chn6", "ipset-name6 " .. setflag .. "psw_chn6",
"add-tagchn-ip", "add-tagchn-ip",
"chnlist-first" "chnlist-first"
} }
@@ -345,8 +345,8 @@ if CHNLIST ~= "0" and is_file_nonzero(RULES_PATH .. "/chnlist") then
--回中国模式 --回中国模式
if CHNLIST == "proxy" then if CHNLIST == "proxy" then
local sets = { local sets = {
setflag .. "passwall_chn", setflag .. "psw_chn",
setflag .. "passwall_chn6" setflag .. "psw_chn6"
} }
tmp_lines = { tmp_lines = {
"group chn_proxy", "group chn_proxy",
@@ -445,13 +445,13 @@ if IS_SHUNT_NODE then
end end
local sets = { local sets = {
setflag .. "passwall_shunt", setflag .. "psw_shunt",
setflag .. "passwall_shunt6" setflag .. "psw_shunt6"
} }
if FLAG ~= "default" then if FLAG ~= "default" then
sets = { sets = {
setflag .. "passwall_" .. FLAG .. "_shunt", setflag .. "psw_" .. FLAG .. "_shunt",
setflag .. "passwall_" .. FLAG .. "_shunt6" setflag .. "psw_" .. FLAG .. "_shunt6"
} }
end end
@@ -372,8 +372,8 @@ function add_rule(var)
fwd_dns = nil fwd_dns = nil
else else
local sets = { local sets = {
setflag_4 .. "passwall_vps", setflag_4 .. "psw_vps",
setflag_6 .. "passwall_vps6" setflag_6 .. "psw_vps6"
} }
local function process_address(address) local function process_address(address)
address = (address or ""):lower() address = (address or ""):lower()
@@ -406,8 +406,8 @@ function add_rule(var)
end end
if fwd_dns then if fwd_dns then
local sets = { local sets = {
setflag_4 .. "passwall_white", setflag_4 .. "psw_white",
setflag_6 .. "passwall_white6" setflag_6 .. "psw_white6"
} }
--始终用国内DNS解析直连(白名单)列表 --始终用国内DNS解析直连(白名单)列表
for line in io.lines("/usr/share/passwall/rules/direct_host") do for line in io.lines("/usr/share/passwall/rules/direct_host") do
@@ -431,11 +431,11 @@ function add_rule(var)
fwd_dns = nil fwd_dns = nil
end end
if fwd_dns then if fwd_dns then
local set_name = "passwall_black" local set_name = "psw_black"
local set6_name = "passwall_black6" local set6_name = "psw_black6"
if FLAG ~= "default" then if FLAG ~= "default" then
set_name = "passwall_" .. FLAG .. "_black" set_name = "psw_" .. FLAG .. "_black"
set6_name = "passwall_" .. FLAG .. "_black6" set6_name = "psw_" .. FLAG .. "_black6"
end end
local sets = { local sets = {
setflag_4 .. set_name setflag_4 .. set_name
@@ -471,11 +471,11 @@ function add_rule(var)
fwd_dns = nil fwd_dns = nil
end end
if fwd_dns then if fwd_dns then
local set_name = "passwall_gfw" local set_name = "psw_gfw"
local set6_name = "passwall_gfw6" local set6_name = "psw_gfw6"
if FLAG ~= "default" then if FLAG ~= "default" then
set_name = "passwall_" .. FLAG .. "_gfw" set_name = "psw_" .. FLAG .. "_gfw"
set6_name = "passwall_" .. FLAG .. "_gfw6" set6_name = "psw_" .. FLAG .. "_gfw6"
end end
local sets = { local sets = {
setflag_4 .. set_name setflag_4 .. set_name
@@ -519,13 +519,13 @@ function add_rule(var)
end end
if fwd_dns then if fwd_dns then
local sets = { local sets = {
setflag_4 .. "passwall_chn", setflag_4 .. "psw_chn",
setflag_6 .. "passwall_chn6" setflag_6 .. "psw_chn6"
} }
if CHN_LIST == "proxy" then if CHN_LIST == "proxy" then
if NO_PROXY_IPV6 == "1" then if NO_PROXY_IPV6 == "1" then
sets = { sets = {
setflag_4 .. "passwall_chn" setflag_4 .. "psw_chn"
} }
end end
if REMOTE_FAKEDNS == "1" then if REMOTE_FAKEDNS == "1" then
@@ -569,24 +569,24 @@ function add_rule(var)
if _node_id == "_direct" then if _node_id == "_direct" then
fwd_dns = LOCAL_DNS fwd_dns = LOCAL_DNS
if USE_DIRECT_LIST == "1" then if USE_DIRECT_LIST == "1" then
table.insert(sets, setflag_4 .. "passwall_white") table.insert(sets, setflag_4 .. "psw_white")
table.insert(sets, setflag_6 .. "passwall_white6") table.insert(sets, setflag_6 .. "psw_white6")
else else
local set_name = "passwall_shunt" local set_name = "psw_shunt"
local set6_name = "passwall_shunt6" local set6_name = "psw_shunt6"
if FLAG ~= "default" then if FLAG ~= "default" then
set_name = "passwall_" .. FLAG .. "_shunt" set_name = "psw_" .. FLAG .. "_shunt"
set6_name = "passwall_" .. FLAG .. "_shunt6" set6_name = "psw_" .. FLAG .. "_shunt6"
end end
table.insert(sets, setflag_4 .. set_name) table.insert(sets, setflag_4 .. set_name)
table.insert(sets, setflag_6 .. set6_name) table.insert(sets, setflag_6 .. set6_name)
end end
else else
local set_name = "passwall_shunt" local set_name = "psw_shunt"
local set6_name = "passwall_shunt6" local set6_name = "psw_shunt6"
if FLAG ~= "default" then if FLAG ~= "default" then
set_name = "passwall_" .. FLAG .. "_shunt" set_name = "psw_" .. FLAG .. "_shunt"
set6_name = "passwall_" .. FLAG .. "_shunt6" set6_name = "psw_" .. FLAG .. "_shunt6"
end end
fwd_dns = TUN_DNS fwd_dns = TUN_DNS
table.insert(sets, setflag_4 .. set_name) table.insert(sets, setflag_4 .. set_name)
@@ -358,8 +358,8 @@ if is_file_nonzero(file_vpslist) then
string.format("domain-set -name %s -file %s", domain_set_name, file_vpslist) string.format("domain-set -name %s -file %s", domain_set_name, file_vpslist)
} }
local sets = { local sets = {
"#4:" .. setflag .. "passwall_vps", "#4:" .. setflag .. "psw_vps",
"#6:" .. setflag .. "passwall_vps6" "#6:" .. setflag .. "psw_vps6"
} }
local domain_rules_str = string.format('domain-rules /domain-set:%s/ %s', domain_set_name, LOCAL_GROUP and "-nameserver " .. LOCAL_GROUP or "") local domain_rules_str = string.format('domain-rules /domain-set:%s/ %s', domain_set_name, LOCAL_GROUP and "-nameserver " .. LOCAL_GROUP or "")
domain_rules_str = domain_rules_str .. " " .. set_type .. " " .. table.concat(sets, ",") domain_rules_str = domain_rules_str .. " " .. set_type .. " " .. table.concat(sets, ",")
@@ -406,8 +406,8 @@ if USE_DIRECT_LIST == "1" and is_file_nonzero(file_direct_host) then
string.format("domain-set -name %s -file %s", domain_set_name, file_direct_host) string.format("domain-set -name %s -file %s", domain_set_name, file_direct_host)
} }
local sets = { local sets = {
"#4:" .. setflag .. "passwall_white", "#4:" .. setflag .. "psw_white",
"#6:" .. setflag .. "passwall_white6" "#6:" .. setflag .. "psw_white6"
} }
local domain_rules_str = string.format('domain-rules /domain-set:%s/ %s', domain_set_name, LOCAL_GROUP and "-nameserver " .. LOCAL_GROUP or "") local domain_rules_str = string.format('domain-rules /domain-set:%s/ %s', domain_set_name, LOCAL_GROUP and "-nameserver " .. LOCAL_GROUP or "")
domain_rules_str = domain_rules_str .. " " .. set_type .. " " .. table.concat(sets, ",") domain_rules_str = domain_rules_str .. " " .. set_type .. " " .. table.concat(sets, ",")
@@ -457,14 +457,14 @@ if USE_PROXY_LIST == "1" and is_file_nonzero(file_proxy_host) then
domain_rules_str = domain_rules_str .. " -speed-check-mode none" domain_rules_str = domain_rules_str .. " -speed-check-mode none"
domain_rules_str = domain_rules_str .. " -no-serve-expired" domain_rules_str = domain_rules_str .. " -no-serve-expired"
local sets = { local sets = {
"#4:" .. setflag .. "passwall_black" "#4:" .. setflag .. "psw_black"
} }
if NO_PROXY_IPV6 == "1" then if NO_PROXY_IPV6 == "1" then
domain_rules_str = domain_rules_str .. " -address #6" domain_rules_str = domain_rules_str .. " -address #6"
domain_rules_str = REMOTE_FAKEDNS ~= "1" and (domain_rules_str .. " " .. set_type .. " " .. table.concat(sets, ",")) or domain_rules_str domain_rules_str = REMOTE_FAKEDNS ~= "1" and (domain_rules_str .. " " .. set_type .. " " .. table.concat(sets, ",")) or domain_rules_str
else else
domain_rules_str = domain_rules_str .. " -address -6" domain_rules_str = domain_rules_str .. " -address -6"
table.insert(sets, "#6:" .. setflag .. "passwall_black6") table.insert(sets, "#6:" .. setflag .. "psw_black6")
domain_rules_str = REMOTE_FAKEDNS ~= "1" and (domain_rules_str .. " -d no " .. set_type .. " " .. table.concat(sets, ",")) or domain_rules_str domain_rules_str = REMOTE_FAKEDNS ~= "1" and (domain_rules_str .. " -d no " .. set_type .. " " .. table.concat(sets, ",")) or domain_rules_str
end end
table.insert(tmp_lines, domain_rules_str) table.insert(tmp_lines, domain_rules_str)
@@ -482,14 +482,14 @@ if USE_GFW_LIST == "1" and is_file_nonzero(RULES_PATH .. "/gfwlist") then
domain_rules_str = domain_rules_str .. " -speed-check-mode none" domain_rules_str = domain_rules_str .. " -speed-check-mode none"
domain_rules_str = domain_rules_str .. " -no-serve-expired" domain_rules_str = domain_rules_str .. " -no-serve-expired"
local sets = { local sets = {
"#4:" .. setflag .. "passwall_gfw" "#4:" .. setflag .. "psw_gfw"
} }
if NO_PROXY_IPV6 == "1" then if NO_PROXY_IPV6 == "1" then
domain_rules_str = domain_rules_str .. " -address #6" domain_rules_str = domain_rules_str .. " -address #6"
domain_rules_str = REMOTE_FAKEDNS ~= "1" and (domain_rules_str .. " " .. set_type .. " " .. table.concat(sets, ",")) or domain_rules_str domain_rules_str = REMOTE_FAKEDNS ~= "1" and (domain_rules_str .. " " .. set_type .. " " .. table.concat(sets, ",")) or domain_rules_str
else else
domain_rules_str = domain_rules_str .. " -address -6" domain_rules_str = domain_rules_str .. " -address -6"
table.insert(sets, "#6:" .. setflag .. "passwall_gfw6") table.insert(sets, "#6:" .. setflag .. "psw_gfw6")
domain_rules_str = REMOTE_FAKEDNS ~= "1" and (domain_rules_str .. " -d no " .. set_type .. " " .. table.concat(sets, ",")) or domain_rules_str domain_rules_str = REMOTE_FAKEDNS ~= "1" and (domain_rules_str .. " -d no " .. set_type .. " " .. table.concat(sets, ",")) or domain_rules_str
end end
table.insert(tmp_lines, domain_rules_str) table.insert(tmp_lines, domain_rules_str)
@@ -506,8 +506,8 @@ if CHN_LIST ~= "0" and is_file_nonzero(RULES_PATH .. "/chnlist") then
if CHN_LIST == "direct" then if CHN_LIST == "direct" then
local sets = { local sets = {
"#4:" .. setflag .. "passwall_chn", "#4:" .. setflag .. "psw_chn",
"#6:" .. setflag .. "passwall_chn6" "#6:" .. setflag .. "psw_chn6"
} }
local domain_rules_str = string.format('domain-rules /domain-set:%s/ %s', domain_set_name, LOCAL_GROUP and "-nameserver " .. LOCAL_GROUP or "") local domain_rules_str = string.format('domain-rules /domain-set:%s/ %s', domain_set_name, LOCAL_GROUP and "-nameserver " .. LOCAL_GROUP or "")
domain_rules_str = domain_rules_str .. " " .. set_type .. " " .. table.concat(sets, ",") domain_rules_str = domain_rules_str .. " " .. set_type .. " " .. table.concat(sets, ",")
@@ -523,14 +523,14 @@ if CHN_LIST ~= "0" and is_file_nonzero(RULES_PATH .. "/chnlist") then
domain_rules_str = domain_rules_str .. " -speed-check-mode none" domain_rules_str = domain_rules_str .. " -speed-check-mode none"
domain_rules_str = domain_rules_str .. " -no-serve-expired" domain_rules_str = domain_rules_str .. " -no-serve-expired"
local sets = { local sets = {
"#4:" .. setflag .. "passwall_chn" "#4:" .. setflag .. "psw_chn"
} }
if NO_PROXY_IPV6 == "1" then if NO_PROXY_IPV6 == "1" then
domain_rules_str = domain_rules_str .. " -address #6" domain_rules_str = domain_rules_str .. " -address #6"
domain_rules_str = REMOTE_FAKEDNS ~= "1" and (domain_rules_str .. " " .. set_type .. " " .. table.concat(sets, ",")) or domain_rules_str domain_rules_str = REMOTE_FAKEDNS ~= "1" and (domain_rules_str .. " " .. set_type .. " " .. table.concat(sets, ",")) or domain_rules_str
else else
domain_rules_str = domain_rules_str .. " -address -6" domain_rules_str = domain_rules_str .. " -address -6"
table.insert(sets, "#6:" .. setflag .. "passwall_chn6") table.insert(sets, "#6:" .. setflag .. "psw_chn6")
domain_rules_str = REMOTE_FAKEDNS ~= "1" and (domain_rules_str .. " -d no " .. set_type .. " " .. table.concat(sets, ",")) or domain_rules_str domain_rules_str = REMOTE_FAKEDNS ~= "1" and (domain_rules_str .. " -d no " .. set_type .. " " .. table.concat(sets, ",")) or domain_rules_str
end end
table.insert(tmp_lines, domain_rules_str) table.insert(tmp_lines, domain_rules_str)
@@ -631,14 +631,14 @@ if IS_SHUNT_NODE then
local domain_rules_str = string.format('domain-rules /domain-set:%s/ %s', domain_set_name, LOCAL_GROUP and "-nameserver " .. LOCAL_GROUP or "") local domain_rules_str = string.format('domain-rules /domain-set:%s/ %s', domain_set_name, LOCAL_GROUP and "-nameserver " .. LOCAL_GROUP or "")
if USE_DIRECT_LIST == "1" then if USE_DIRECT_LIST == "1" then
local sets = { local sets = {
"#4:" .. setflag .. "passwall_white", "#4:" .. setflag .. "psw_white",
"#6:" .. setflag .. "passwall_white6" "#6:" .. setflag .. "psw_white6"
} }
domain_rules_str = domain_rules_str .. " " .. set_type .. " " .. table.concat(sets, ",") domain_rules_str = domain_rules_str .. " " .. set_type .. " " .. table.concat(sets, ",")
else else
local sets = { local sets = {
"#4:" .. setflag .. "passwall_shunt", "#4:" .. setflag .. "psw_shunt",
"#6:" .. setflag .. "passwall_shunt6" "#6:" .. setflag .. "psw_shunt6"
} }
domain_rules_str = domain_rules_str .. " " .. set_type .. " " .. table.concat(sets, ",") domain_rules_str = domain_rules_str .. " " .. set_type .. " " .. table.concat(sets, ",")
end end
@@ -656,7 +656,7 @@ if IS_SHUNT_NODE then
domain_rules_str = domain_rules_str .. " -speed-check-mode none" domain_rules_str = domain_rules_str .. " -speed-check-mode none"
domain_rules_str = domain_rules_str .. " -no-serve-expired" domain_rules_str = domain_rules_str .. " -no-serve-expired"
local sets = { local sets = {
"#4:" .. setflag .. "passwall_shunt" "#4:" .. setflag .. "psw_shunt"
} }
if NO_PROXY_IPV6 == "1" then if NO_PROXY_IPV6 == "1" then
domain_rules_str = domain_rules_str .. " -address #6" domain_rules_str = domain_rules_str .. " -address #6"
@@ -665,7 +665,7 @@ if IS_SHUNT_NODE then
or (domain_rules_str .. " " .. set_type .. " " .. table.concat(sets, ",")) or (domain_rules_str .. " " .. set_type .. " " .. table.concat(sets, ","))
else else
domain_rules_str = domain_rules_str .. " -address -6" domain_rules_str = domain_rules_str .. " -address -6"
table.insert(sets, "#6:" .. setflag .. "passwall_shunt6") table.insert(sets, "#6:" .. setflag .. "psw_shunt6")
domain_rules_str = (not only_global and REMOTE_FAKEDNS == "1") domain_rules_str = (not only_global and REMOTE_FAKEDNS == "1")
and domain_rules_str and domain_rules_str
or (domain_rules_str .. " -d no " .. set_type .. " " .. table.concat(sets, ",")) or (domain_rules_str .. " -d no " .. set_type .. " " .. table.concat(sets, ","))
@@ -3,27 +3,27 @@
DIR="$(cd "$(dirname "$0")" && pwd)" DIR="$(cd "$(dirname "$0")" && pwd)"
MY_PATH=$DIR/iptables.sh MY_PATH=$DIR/iptables.sh
UTILS_PATH=$DIR/utils.sh UTILS_PATH=$DIR/utils.sh
IPSET_LOCAL="passwall_local" IPSET_LOCAL="psw_local"
IPSET_WAN="passwall_wan" IPSET_WAN="psw_wan"
IPSET_LAN="passwall_lan" IPSET_LAN="psw_lan"
IPSET_VPS="passwall_vps" IPSET_VPS="psw_vps"
IPSET_SHUNT="passwall_shunt" IPSET_SHUNT="psw_shunt"
IPSET_GFW="passwall_gfw" IPSET_GFW="psw_gfw"
IPSET_CHN="passwall_chn" IPSET_CHN="psw_chn"
IPSET_BLACK="passwall_black" IPSET_BLACK="psw_black"
IPSET_WHITE="passwall_white" IPSET_WHITE="psw_white"
IPSET_BLOCK="passwall_block" IPSET_BLOCK="psw_block"
IPSET_LOCAL6="passwall_local6" IPSET_LOCAL6="psw_local6"
IPSET_WAN6="passwall_wan6" IPSET_WAN6="psw_wan6"
IPSET_LAN6="passwall_lan6" IPSET_LAN6="psw_lan6"
IPSET_VPS6="passwall_vps6" IPSET_VPS6="psw_vps6"
IPSET_SHUNT6="passwall_shunt6" IPSET_SHUNT6="psw_shunt6"
IPSET_GFW6="passwall_gfw6" IPSET_GFW6="psw_gfw6"
IPSET_CHN6="passwall_chn6" IPSET_CHN6="psw_chn6"
IPSET_BLACK6="passwall_black6" IPSET_BLACK6="psw_black6"
IPSET_WHITE6="passwall_white6" IPSET_WHITE6="psw_white6"
IPSET_BLOCK6="passwall_block6" IPSET_BLOCK6="psw_block6"
USE_SHUNT_TCP=0 USE_SHUNT_TCP=0
USE_SHUNT_UDP=0 USE_SHUNT_UDP=0
@@ -365,24 +365,24 @@ load_acl() {
if ([ -n "$tcp_port" ] && [ -n "${tcp_proxy_mode}" ]) || ([ -n "$udp_port" ] && [ -n "${udp_proxy_mode}" ]); then if ([ -n "$tcp_port" ] && [ -n "${tcp_proxy_mode}" ]) || ([ -n "$udp_port" ] && [ -n "${udp_proxy_mode}" ]); then
[ "${use_proxy_list}" = "1" ] && { [ "${use_proxy_list}" = "1" ] && {
[ "${use_global_config}" = "0" ] && { [ "${use_global_config}" = "0" ] && {
black_set_name="passwall_${sid}_black" black_set_name="psw_${sid}_black"
black6_set_name="passwall_${sid}_black6" black6_set_name="psw_${sid}_black6"
ipset -! create $black_set_name nethash maxelem 1048576 timeout 172800 ipset -! create $black_set_name nethash maxelem 1048576 timeout 172800
ipset -! create $black6_set_name nethash family inet6 maxelem 1048576 timeout 172800 ipset -! create $black6_set_name nethash family inet6 maxelem 1048576 timeout 172800
} }
} }
[ "${use_gfw_list}" = "1" ] && { [ "${use_gfw_list}" = "1" ] && {
[ "${use_global_config}" = "0" ] && { [ "${use_global_config}" = "0" ] && {
gfw_set_name="passwall_${sid}_gfw" gfw_set_name="psw_${sid}_gfw"
gfw6_set_name="passwall_${sid}_gfw6" gfw6_set_name="psw_${sid}_gfw6"
ipset -! create $gfw_set_name nethash maxelem 1048576 timeout 172800 ipset -! create $gfw_set_name nethash maxelem 1048576 timeout 172800
ipset -! create $gfw6_set_name nethash family inet6 maxelem 1048576 timeout 172800 ipset -! create $gfw6_set_name nethash family inet6 maxelem 1048576 timeout 172800
} }
} }
[ "${use_shunt_tcp}" = "1" -o "${use_shunt_udp}" = "1" ] && { [ "${use_shunt_tcp}" = "1" -o "${use_shunt_udp}" = "1" ] && {
[ "${use_global_config}" = "0" ] && { [ "${use_global_config}" = "0" ] && {
shunt_set_name="passwall_${sid}_shunt" shunt_set_name="psw_${sid}_shunt"
shunt6_set_name="passwall_${sid}_shunt6" shunt6_set_name="psw_${sid}_shunt6"
ipset -! create $shunt_set_name nethash maxelem 1048576 timeout 172800 ipset -! create $shunt_set_name nethash maxelem 1048576 timeout 172800
ipset -! create $shunt6_set_name nethash family inet6 maxelem 1048576 timeout 172800 ipset -! create $shunt6_set_name nethash family inet6 maxelem 1048576 timeout 172800
} }
@@ -1400,7 +1400,7 @@ del_firewall_rule() {
flush_ipset() { flush_ipset() {
echolog "清空 IPSet。" echolog "清空 IPSet。"
for _name in $(ipset list | grep "Name: " | grep "passwall_" | awk '{print $2}'); do for _name in $(ipset list | grep "Name: " | grep "psw_" | awk '{print $2}'); do
destroy_ipset ${_name} destroy_ipset ${_name}
done done
} }
@@ -4,27 +4,27 @@ DIR="$(cd "$(dirname "$0")" && pwd)"
MY_PATH=$DIR/nftables.sh MY_PATH=$DIR/nftables.sh
UTILS_PATH=$DIR/utils.sh UTILS_PATH=$DIR/utils.sh
NFTABLE_NAME="inet passwall" NFTABLE_NAME="inet passwall"
NFTSET_LOCAL="passwall_local" NFTSET_LOCAL="psw_local"
NFTSET_WAN="passwall_wan" NFTSET_WAN="psw_wan"
NFTSET_LAN="passwall_lan" NFTSET_LAN="psw_lan"
NFTSET_VPS="passwall_vps" NFTSET_VPS="psw_vps"
NFTSET_SHUNT="passwall_shunt" NFTSET_SHUNT="psw_shunt"
NFTSET_GFW="passwall_gfw" NFTSET_GFW="psw_gfw"
NFTSET_CHN="passwall_chn" NFTSET_CHN="psw_chn"
NFTSET_BLACK="passwall_black" NFTSET_BLACK="psw_black"
NFTSET_WHITE="passwall_white" NFTSET_WHITE="psw_white"
NFTSET_BLOCK="passwall_block" NFTSET_BLOCK="psw_block"
NFTSET_LOCAL6="passwall_local6" NFTSET_LOCAL6="psw_local6"
NFTSET_WAN6="passwall_wan6" NFTSET_WAN6="psw_wan6"
NFTSET_LAN6="passwall_lan6" NFTSET_LAN6="psw_lan6"
NFTSET_VPS6="passwall_vps6" NFTSET_VPS6="psw_vps6"
NFTSET_SHUNT6="passwall_shunt6" NFTSET_SHUNT6="psw_shunt6"
NFTSET_GFW6="passwall_gfw6" NFTSET_GFW6="psw_gfw6"
NFTSET_CHN6="passwall_chn6" NFTSET_CHN6="psw_chn6"
NFTSET_BLACK6="passwall_black6" NFTSET_BLACK6="psw_black6"
NFTSET_WHITE6="passwall_white6" NFTSET_WHITE6="psw_white6"
NFTSET_BLOCK6="passwall_block6" NFTSET_BLOCK6="psw_block6"
USE_SHUNT_TCP=0 USE_SHUNT_TCP=0
USE_SHUNT_UDP=0 USE_SHUNT_UDP=0
@@ -395,24 +395,24 @@ load_acl() {
if ([ -n "$tcp_port" ] && [ -n "${tcp_proxy_mode}" ]) || ([ -n "$udp_port" ] && [ -n "${udp_proxy_mode}" ]); then if ([ -n "$tcp_port" ] && [ -n "${tcp_proxy_mode}" ]) || ([ -n "$udp_port" ] && [ -n "${udp_proxy_mode}" ]); then
[ "${use_proxy_list}" = "1" ] && { [ "${use_proxy_list}" = "1" ] && {
[ "${use_global_config}" = "0" ] && { [ "${use_global_config}" = "0" ] && {
black_set_name="passwall_${sid}_black" black_set_name="psw_${sid}_black"
black6_set_name="passwall_${sid}_black6" black6_set_name="psw_${sid}_black6"
gen_nftset $black_set_name ipv4_addr "2d" 0 gen_nftset $black_set_name ipv4_addr "2d" 0
gen_nftset $black6_set_name ipv6_addr "2d" 0 gen_nftset $black6_set_name ipv6_addr "2d" 0
} }
} }
[ "${use_gfw_list}" = "1" ] && { [ "${use_gfw_list}" = "1" ] && {
[ "${use_global_config}" = "0" ] && { [ "${use_global_config}" = "0" ] && {
gfw_set_name="passwall_${sid}_gfw" gfw_set_name="psw_${sid}_gfw"
gfw6_set_name="passwall_${sid}_gfw6" gfw6_set_name="psw_${sid}_gfw6"
gen_nftset $gfw_set_name ipv4_addr "2d" 0 gen_nftset $gfw_set_name ipv4_addr "2d" 0
gen_nftset $gfw6_set_name ipv6_addr "2d" 0 gen_nftset $gfw6_set_name ipv6_addr "2d" 0
} }
} }
[ "${use_shunt_tcp}" = "1" -o "${use_shunt_udp}" = "1" ] && { [ "${use_shunt_tcp}" = "1" -o "${use_shunt_udp}" = "1" ] && {
[ "${use_global_config}" = "0" ] && { [ "${use_global_config}" = "0" ] && {
shunt_set_name="passwall_${sid}_shunt" shunt_set_name="psw_${sid}_shunt"
shunt6_set_name="passwall_${sid}_shunt6" shunt6_set_name="psw_${sid}_shunt6"
gen_nftset $shunt_set_name ipv4_addr "2d" 0 gen_nftset $shunt_set_name ipv4_addr "2d" 0
gen_nftset $shunt6_set_name ipv6_addr "2d" 0 gen_nftset $shunt6_set_name ipv6_addr "2d" 0
} }
@@ -1462,7 +1462,7 @@ del_firewall_rule() {
flush_nftset() { flush_nftset() {
echolog "清空 NFTSet。" echolog "清空 NFTSet。"
for _name in $(nft -a list sets | grep -E "passwall_" | awk -F 'set ' '{print $2}' | awk '{print $1}'); do for _name in $(nft -a list sets | grep -E "psw_" | awk -F 'set ' '{print $2}' | awk '{print $1}'); do
destroy_nftset ${_name} destroy_nftset ${_name}
done done
} }
@@ -506,9 +506,9 @@ local function fetch_rule(rule_name, rule_type, url, exclude_domain, max_retries
if old_md5 ~= new_md5 then if old_md5 ~= new_md5 then
if api.is_finded("fw4") and (rule_type == "ip4" or rule_type == "ip6") then if api.is_finded("fw4") and (rule_type == "ip4" or rule_type == "ip6") then
local nft_file = file_tmp .. ".nft" local nft_file = file_tmp .. ".nft"
local set_name = "passwall_" .. rule_name local set_name = "psw_" .. rule_name
if rule_name == "chnroute" then set_name = "passwall_chn" if rule_name == "chnroute" then set_name = "psw_chn"
elseif rule_name == "chnroute6" then set_name = "passwall_chn6" end elseif rule_name == "chnroute6" then set_name = "psw_chn6" end
local addr_type = (rule_type == "ip4") and "ipv4_addr" or "ipv6_addr" local addr_type = (rule_type == "ip4") and "ipv4_addr" or "ipv6_addr"
gen_cache(set_name, addr_type, file_tmp, nft_file) gen_cache(set_name, addr_type, file_tmp, nft_file)
+1 -1
View File
@@ -8,7 +8,7 @@ include $(TOPDIR)/rules.mk
PKG_NAME:=shadowsocksr-libev PKG_NAME:=shadowsocksr-libev
PKG_VERSION:=2.5.6 PKG_VERSION:=2.5.6
PKG_RELEASE:=1 PKG_RELEASE:=2
PKG_SOURCE_PROTO:=git PKG_SOURCE_PROTO:=git
PKG_SOURCE_URL:=https://github.com/shadowsocksrr/shadowsocksr-libev PKG_SOURCE_URL:=https://github.com/shadowsocksrr/shadowsocksr-libev
+11 -2
View File
@@ -175,7 +175,7 @@ stat_update_cb(EV_P_ ev_timer *watcher, int revents)
memset(&svaddr, 0, sizeof(struct sockaddr_un)); memset(&svaddr, 0, sizeof(struct sockaddr_un));
svaddr.sun_family = AF_UNIX; svaddr.sun_family = AF_UNIX;
strncpy(svaddr.sun_path, manager_address, sizeof(svaddr.sun_path) - 1); snprintf(svaddr.sun_path, sizeof(svaddr.sun_path), "%s", manager_address);
if (sendto(sfd, resp, strlen(resp) + 1, 0, (struct sockaddr *)&svaddr, if (sendto(sfd, resp, strlen(resp) + 1, 0, (struct sockaddr *)&svaddr,
sizeof(struct sockaddr_un)) != msgLen) { sizeof(struct sockaddr_un)) != msgLen) {
@@ -684,6 +684,11 @@ server_recv_cb(EV_P_ ev_io *w, int revents)
if(obfs_compatible == 1) if(obfs_compatible == 1)
{ {
char *back_buf = (char*)malloc(sizeof(buffer_t)); char *back_buf = (char*)malloc(sizeof(buffer_t));
if (back_buf == NULL) {
close_and_free_remote(EV_A_ remote);
close_and_free_server(EV_A_ server);
return;
}
memcpy(back_buf, buf, sizeof(buffer_t)); memcpy(back_buf, buf, sizeof(buffer_t));
buf->len = obfs_plugin->server_decode(server->obfs, &buf->array, buf->len, &buf->capacity, &needsendback); buf->len = obfs_plugin->server_decode(server->obfs, &buf->array, buf->len, &buf->capacity, &needsendback);
@@ -792,7 +797,11 @@ server_recv_cb(EV_P_ ev_io *w, int revents)
if (server->stage == STAGE_HANDSHAKE) { if (server->stage == STAGE_HANDSHAKE) {
size_t header_len = server->header_buf->len; size_t header_len = server->header_buf->len;
brealloc(server->header_buf, server->buf->len + header_len, BUF_SIZE); if (brealloc(server->header_buf, server->buf->len + header_len, BUF_SIZE) != 0) {
close_and_free_remote(EV_A_ remote);
close_and_free_server(EV_A_ server);
return;
}
memcpy(server->header_buf->array + header_len, memcpy(server->header_buf->array + header_len,
server->buf->array, server->buf->len); server->buf->array, server->buf->len);
server->header_buf->len = server->buf->len + header_len; server->header_buf->len = server->buf->len + header_len;
+2 -2
View File
@@ -5,8 +5,8 @@
include $(TOPDIR)/rules.mk include $(TOPDIR)/rules.mk
PKG_NAME:=tuic-client PKG_NAME:=tuic-client
PKG_VERSION:=1.8.2 PKG_VERSION:=1.8.3
PKG_RELEASE:=5 PKG_RELEASE:=6
PKG_LICENSE_FILES:=LICENSE PKG_LICENSE_FILES:=LICENSE
PKG_MAINTAINER:=Tianling Shen <cnsztl@immortalwrt.org> PKG_MAINTAINER:=Tianling Shen <cnsztl@immortalwrt.org>