luci-app-passwall: sync with upstream source

This commit is contained in:
CN_SZTL 2020-03-12 02:07:21 +08:00
parent 412660a746
commit e7dff51c1c
No known key found for this signature in database
GPG Key ID: 6850B6345C862176
11 changed files with 212 additions and 411 deletions

View File

@ -7,8 +7,8 @@ include $(TOPDIR)/rules.mk
PKG_NAME:=luci-app-passwall
PKG_VERSION:=3.6
PKG_RELEASE:=20
PKG_DATE:=20200308
PKG_RELEASE:=21
PKG_DATE:=20200311
PKG_BUILD_DIR := $(BUILD_DIR)/$(PKG_NAME)-$(PKG_VERSION)

View File

@ -88,6 +88,8 @@ function update_luci(url, save)
}
end
api.exec("/bin/opkg", {"remove", "luci-app-passwall"})
local opkg_args = {"--force-downgrade", "--force-reinstall"}
if save ~= "true" then opkg_args[#opkg_args + 1] = "--force-maintainer" end

View File

@ -198,7 +198,7 @@ o:value("returnhome", translate("Return Home"))
---- Localhost Proxy Mode
o = s:option(ListValue, "localhost_proxy_mode",
translate("Localhost") .. translate("Proxy Mode"))
translate("Router Localhost") .. translate("Proxy Mode"))
-- o.description = translate("The server client can also use this rule to scientifically surf the Internet.")
o:value("default", translate("Default"))
o:value("gfwlist", translate("GFW List"))

View File

@ -250,6 +250,9 @@ msgstr "回国模式"
msgid "Localhost"
msgstr "本机"
msgid "Router Localhost"
msgstr "路由器自身"
msgid "Danger"
msgstr "危险"

View File

@ -46,9 +46,9 @@ config global_rules
option chnlist_update '1'
option chnroute_update '1'
option gfwlist_update '1'
option gfwlist_version '2020-02-27'
option chnroute_version '2020-02-27'
option chnlist_version '2020-02-27'
option gfwlist_version '2020-03-10'
option chnroute_version '2020-03-10'
option chnlist_version '2020-03-10'
config global_app
option v2ray_file '/usr/bin/v2ray/'

View File

@ -203,17 +203,17 @@ load_config() {
if [ -n "$UP_CHINA_DNS1" ]; then
UP_CHINA_DNS=$UP_CHINA_DNS1
else
UP_CHINA_DNS="223.5.5.5"
UP_CHINA_DNS="119.29.29.29"
fi
local UP_CHINA_DNS2=$(cat $RESOLVFILE 2>/dev/null | grep -E -o "[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+" | grep -v 0.0.0.0 | grep -v 127.0.0.1 | sed -n '2P')
[ -n "$UP_CHINA_DNS1" -a -n "$UP_CHINA_DNS2" ] && UP_CHINA_DNS="$UP_CHINA_DNS1,$UP_CHINA_DNS2"
else
UP_CHINA_DNS1=$(echo $UP_CHINA_DNS | awk -F ',' '{print $1}')
UP_CHINA_DNS1=$(echo $UP_CHINA_DNS | sed "s/:/#/g" | awk -F ',' '{print $1}')
if [ -n "$UP_CHINA_DNS1" ]; then
UP_CHINA_DNS2=$(echo $UP_CHINA_DNS | awk -F ',' '{print $2}')
UP_CHINA_DNS2=$(echo $UP_CHINA_DNS | sed "s/:/#/g" | awk -F ',' '{print $2}')
[ -n "$UP_CHINA_DNS2" ] && UP_CHINA_DNS="${UP_CHINA_DNS1},${UP_CHINA_DNS2}"
else
UP_CHINA_DNS="223.5.5.5"
UP_CHINA_DNS="114.114.114.114"
fi
fi
PROXY_IPV6=$(config_t_get global_forwarding proxy_ipv6 0)
@ -277,10 +277,10 @@ gen_start_config() {
# 判断节点服务器地址是否包含汉字~
local tmp=$(echo -n $server_host | awk '{print gensub(/[!-~]/,"","g",$0)}')
[ -n "$tmp" ] && {
echolog "$redir_type节点,非法的服务器地址,无法启动!"
echolog "${redir_type}_${5}节点,非法的服务器地址,无法启动!"
return 1
}
[ "$bind" == "0.0.0.0" ] && echolog "$redir_type节点$remarks,节点:${server_host}:${port},监听端口:$local_port"
[ "$bind" == "0.0.0.0" ] && echolog "${redir_type}_${5}节点$remarks,节点:${server_host}:${port},监听端口:$local_port"
}
if [ "$redir_type" == "SOCKS5" ]; then
@ -550,7 +550,7 @@ stop_crontab() {
sed -i "/$CONFIG/d" /etc/crontabs/root >/dev/null 2>&1 &
ps | grep "$APP_PATH/test.sh" | grep -v "grep" | awk '{print $1}' | xargs kill -9 >/dev/null 2>&1 &
/etc/init.d/cron restart
echolog "清除定时执行命令。"
#echolog "清除定时执行命令。"
}
start_dns() {
@ -573,16 +573,23 @@ start_dns() {
;;
pdnsd)
use_tcp_node_resolve_dns=1
gen_pdnsd_config $DNS_PORT 10240
gen_pdnsd_config $DNS_PORT 4096
DNS_FORWARD=$(echo $DNS_FORWARD | sed 's/,/ /g')
ln_start_bin $(find_bin pdnsd) pdnsd "--daemon -c $pdnsd_dir/pdnsd.conf -d"
echolog "DNSpdnsd..."
;;
chinadns-ng)
other_port=$(expr $DNS_PORT + 1)
cat $RULES_PATH/gfwlist.conf | sort | uniq | sed -e '/127.0.0.1/d' | sed 's/ipset=\/.//g' | sed 's/\/gfwlist//g' > $TMP_PATH/gfwlist.txt
[ -f "$TMP_PATH/gfwlist.txt" ] && local gfwlist_param="-g $TMP_PATH/gfwlist.txt"
[ -f "$APP_PATH/chnlist" ] && local chnlist_param="-m $APP_PATH/chnlist"
[ -f "$RULES_PATH/gfwlist.conf" ] && cat $RULES_PATH/gfwlist.conf | sort | uniq | sed -e '/127.0.0.1/d' | sed 's/ipset=\/.//g' | sed 's/\/gfwlist//g' > $TMP_PATH/gfwlist.txt
[ -f "$TMP_PATH/gfwlist.txt" ] && {
[ -f "$RULES_PATH/blacklist_host" -a -s "$RULES_PATH/blacklist_host" ] && cat $RULES_PATH/blacklist_host >> $TMP_PATH/gfwlist.txt
local gfwlist_param="-g $TMP_PATH/gfwlist.txt"
}
[ -f "$RULES_PATH/chnlist" ] && cp -a $RULES_PATH/chnlist $TMP_PATH/chnlist
[ -f "$TMP_PATH/chnlist" ] && {
[ -f "$RULES_PATH/whitelist_host" -a -s "$RULES_PATH/whitelist_host" ] && cat $RULES_PATH/whitelist_host >> $TMP_PATH/chnlist
local chnlist_param="-m $TMP_PATH/chnlist -M"
}
up_trust_chinadns_ng_dns=$(config_t_get global up_trust_chinadns_ng_dns "pdnsd")
if [ "$up_trust_chinadns_ng_dns" == "pdnsd" ]; then
@ -619,15 +626,16 @@ start_dns() {
add_dnsmasq() {
mkdir -p $TMP_DNSMASQ_PATH $DNSMASQ_PATH /var/dnsmasq.d
cat $RULES_PATH/whitelist_host | sed -e "/^$/d" | sed "s/^/ipset=&\/./g" | sed "s/$/\/&whitelist/g" | sort | awk '{if ($0!=line) print;line=$0}' > $TMP_DNSMASQ_PATH/whitelist_host.conf
local adblock=$(config_t_get global_rules adblock 0)
[ "$adblock" == "1" ] && {
[ -f "$RULES_PATH/adblock.conf" -a -s "$RULES_PATH/adblock.conf" ] && ln -s $RULES_PATH/adblock.conf $TMP_DNSMASQ_PATH/adblock.conf
}
[ "$DNS_MODE" != "nonuse" ] && {
[ -f "$RULES_PATH/blacklist_host" -a -s "$RULES_PATH/blacklist_host" ] && cat $RULES_PATH/blacklist_host | sed -e "/^$/d" | awk '{print "server=/."$1"/127.0.0.1#'$DNS_PORT'\nipset=/."$1"/blacklist"}' > $TMP_DNSMASQ_PATH/blacklist_host.conf
local dns2="$UP_CHINA_DNS2"
[ -z "$dns2" ] && dns2="114.114.114.114"
[ -f "$RULES_PATH/whitelist_host" -a -s "$RULES_PATH/whitelist_host" ] && cat $RULES_PATH/whitelist_host | sed -e "/^$/d" | sort | awk '{print "server=/."$1"/'$UP_CHINA_DNS1'\nserver=/."$1"/'$dns2'\nipset=/."$1"/whitelist"}' > $TMP_DNSMASQ_PATH/whitelist_host.conf
[ -f "$RULES_PATH/blacklist_host" -a -s "$RULES_PATH/blacklist_host" ] && cat $RULES_PATH/blacklist_host | sed -e "/^$/d" | sort | awk '{print "server=/."$1"/127.0.0.1#'$DNS_PORT'\nipset=/."$1"/blacklist"}' > $TMP_DNSMASQ_PATH/blacklist_host.conf
[ -f "$RULES_PATH/gfwlist.conf" -a -s "$RULES_PATH/gfwlist.conf" ] && ln -s $RULES_PATH/gfwlist.conf $TMP_DNSMASQ_PATH/gfwlist.conf
subscribe_proxy=$(config_t_get global_subscribe subscribe_proxy 0)
@ -644,11 +652,11 @@ add_dnsmasq() {
local url=$(u_get $i url)
[ -n "$url" -a "$url" != "" ] && {
if [ -n "$(echo -n "$url" | grep "//")" ]; then
echo -n "$url" | awk -F'/' '{print $3}' | sed "s/^/server=&\/./g" | sed "s/$/\/127.0.0.1#$DNS_PORT/g" >>$TMP_DNSMASQ_PATH/subscribe.conf
echo -n "$url" | awk -F'/' '{print $3}' | sed "s/^/ipset=&\/./g" | sed "s/$/\/blacklist/g" >>$TMP_DNSMASQ_PATH/subscribe.conf
echo -n "$url" | awk -F '/' '{print $3}' | sed "s/^/server=&\/./g" | sed "s/$/\/127.0.0.1#$DNS_PORT/g" >>$TMP_DNSMASQ_PATH/subscribe.conf
echo -n "$url" | awk -F '/' '{print $3}' | sed "s/^/ipset=&\/./g" | sed "s/$/\/blacklist/g" >>$TMP_DNSMASQ_PATH/subscribe.conf
else
echo -n "$url" | awk -F'/' '{print $1}' | sed "s/^/server=&\/./g" | sed "s/$/\/127.0.0.1#$DNS_PORT/g" >>$TMP_DNSMASQ_PATH/subscribe.conf
echo -n "$url" | awk -F'/' '{print $1}' | sed "s/^/ipset=&\/./g" | sed "s/$/\/blacklist/g" >>$TMP_DNSMASQ_PATH/subscribe.conf
echo -n "$url" | awk -F '/' '{print $1}' | sed "s/^/server=&\/./g" | sed "s/$/\/127.0.0.1#$DNS_PORT/g" >>$TMP_DNSMASQ_PATH/subscribe.conf
echo -n "$url" | awk -F '/' '{print $1}' | sed "s/^/ipset=&\/./g" | sed "s/$/\/blacklist/g" >>$TMP_DNSMASQ_PATH/subscribe.conf
fi
}
done
@ -660,13 +668,13 @@ add_dnsmasq() {
server="server=127.0.0.1#$DNS_PORT"
[ "$DNS_MODE" != "chinadns-ng" ] && {
[ -n "$UP_CHINA_DNS1" ] && server="server=$UP_CHINA_DNS1"
[ -n "$UP_CHINA_DNS2" ] && server="${server}\n${UP_CHINA_DNS2}"
server="${server}\nno-resolv"
[ -n "$UP_CHINA_DNS2" ] && server="${server}\nserver=${UP_CHINA_DNS2}"
}
cat <<-EOF > /var/dnsmasq.d/dnsmasq-$CONFIG.conf
$(echo -e $server)
all-servers
no-poll
no-resolv
EOF
}
@ -922,10 +930,11 @@ stop() {
ps -w | grep -v "grep" | grep $CONFIG/test.sh | awk '{print $1}' | xargs kill -9 >/dev/null 2>&1 &
ps -w | grep -v "grep" | grep $CONFIG/monitor.sh | awk '{print $1}' | xargs kill -9 >/dev/null 2>&1 &
ps -w | grep -v "grep" | grep -E "$TMP_PATH" | awk '{print $1}' | xargs kill -9 >/dev/null 2>&1 &
ps -w | grep -v "grep" | grep "sleep 1m" | awk '{print $1}' | xargs kill -9 >/dev/null 2>&1 &
rm -rf $TMP_DNSMASQ_PATH $TMP_PATH
stop_dnsmasq
stop_crontab
echolog "关闭相关程序,清理相关文件和缓存完成。"
echolog "清空并关闭相关程序和缓存完成。"
}
case $1 in

View File

@ -46,9 +46,9 @@ config global_rules
option chnlist_update '1'
option chnroute_update '1'
option gfwlist_update '1'
option gfwlist_version '2020-02-27'
option chnroute_version '2020-02-27'
option chnlist_version '2020-02-27'
option gfwlist_version '2020-03-10'
option chnroute_version '2020-03-10'
option chnlist_version '2020-03-10'
config global_app
option v2ray_file '/usr/bin/v2ray/'

View File

@ -131,10 +131,10 @@ load_acl() {
[ -n "$proxy_mode" ] && {
if [ -n "$ip" ] || [ -n "$mac" ]; then
if [ -n "$ip" -a -n "$mac" ]; then
echolog "访问控制IP$ipMAC$mac代理模式:$(get_action_chain_name $proxy_mode)"
echolog "访问控制IP$ipMAC$mac使用TCP_${tcp_node}节点UDP_${udp_node}节点,$(get_action_chain_name $proxy_mode)"
else
[ -n "$ip" ] && echolog "访问控制IP$ip代理模式:$(get_action_chain_name $proxy_mode)"
[ -n "$mac" ] && echolog "访问控制MAC$mac代理模式:$(get_action_chain_name $proxy_mode)"
[ -n "$ip" ] && echolog "访问控制IP$ip使用TCP_${tcp_node}节点UDP_${udp_node}节点,$(get_action_chain_name $proxy_mode)"
[ -n "$mac" ] && echolog "访问控制MAC$mac使用TCP_${tcp_node}节点UDP_${udp_node}节点,$(get_action_chain_name $proxy_mode)"
fi
if [ "$proxy_mode" == "disable" ]; then
@ -169,53 +169,12 @@ load_acl() {
}
filter_vpsip() {
local count=$(uci show $CONFIG | grep "@nodes" | sed -n '$p' | cut -d '[' -f 2 | cut -d ']' -f 1)
[ -n "$count" -a "$count" -ge 0 ] && {
u_get() {
local ret=$(uci -q get $CONFIG.@nodes[$1].$2)
echo ${ret:=$3}
}
echolog "开始过滤所有节点到白名单"
for i in $(seq 0 $count); do
local use_ipv6=$(u_get $i use_ipv6 0)
local network_type="ipv4"
[ "$use_ipv6" == "1" ] && network_type="ipv6"
local server=$(u_get $i address)
[ -n "$server" ] && {
# 判断节点服务器地址是否URL并去掉~
server=$(echo $server | sed 's/^\(http:\/\/\|https:\/\/\)//g' | awk -F '/' '{print $1}')
# 判断节点服务器地址是否包含汉字,跳过~
local tmp=$(echo -n $server | awk '{print gensub(/[!-~]/,"","g",$0)}')
[ -z "$tmp" ] && {
[ "$network_type" == "ipv4" ] && {
isip=$(echo $server | grep -E "([0-9]{1,3}[\.]){3}[0-9]{1,3}")
if [ -n "$isip" ]; then
# 判断节点的服务器地址是否是DNS
[ -n "$(echo $DNS_FORWARD | grep -w $isip)" ] && continue
ipset -! add $IPSET_VPSIPLIST $isip >/dev/null 2>&1 &
else
# 跳过不合法的域名
server=$(echo $server | grep -E '.*\..*$' | grep '[a-zA-Z]$')
[ -z "$server" ] && continue
# 判断节点的服务器地址是否包含在GFWLIST比如某机场的 www.google.com 导致不走google代理.....
local tmp=$server
local suffix=$(echo ${server##*.})
local top_host=$(echo ${server%.*} | awk -F '.' '{print $NF}')
[ "$suffix" == "$top_host" ] && continue
[ -n "$suffix" -a -n "$top_host" ] && tmp="$top_host.$suffix"
[ "tmp" == "google.com" ] && continue
#is_gfwlist=$(cat $TMP_DNSMASQ_PATH/gfwlist.conf | grep -c "$tmp")
#[ "$is_gfwlist" == 0 ] && {
has=$([ -f "$TMP_DNSMASQ_PATH/vpsiplist_host.conf" ] && cat $TMP_DNSMASQ_PATH/vpsiplist_host.conf | grep "$server")
[ -z "$has" ] && echo "$server" | sed -e "/^$/d" | sed "s/^/ipset=&\//g" | sed "s/$/\/&vpsiplist/g" | sort | awk '{if ($0!=line) print;line=$0}' >> $TMP_DNSMASQ_PATH/vpsiplist_host.conf
#}
fi
}
}
}
done
echolog "过滤所有节点完成"
}
echolog "开始过滤所有IPV4节点到白名单"
uci show $CONFIG | grep "@nodes" | grep "address" | cut -d "'" -f 2 | grep -E "([0-9]{1,3}[\.]){3}[0-9]{1,3}" | sed -e "/^$/d" | sed -e "s/^/add $IPSET_VPSIPLIST &/g" | awk '{print $0} END{print "COMMIT"}' | ipset -! -R
local dns2="$UP_CHINA_DNS2"
[ -z "$dns2" ] && dns2="114.114.114.114"
uci show $CONFIG | grep "@nodes" | grep "address" | cut -d "'" -f 2 | sed 's/^\(https:\/\/\|http:\/\/\)//g' | awk -F '/' '{print $1}' | grep -E '.*\..*$' | grep '[a-zA-Z]$' | sort | uniq | awk '{print "server=/."$1"/'$UP_CHINA_DNS1'\nserver=/."$1"/'$dns2'\nipset=/."$1"/'$IPSET_VPSIPLIST'"}' > $TMP_DNSMASQ_PATH/vpsiplist_host.conf
echolog "过滤所有IPV4节点完成"
}
filter_node() {
@ -269,7 +228,6 @@ dns_hijack() {
add_firewall_rule() {
echolog "开始加载防火墙规则..."
echolog "默认代理模式:$(get_action_chain_name $PROXY_MODE)"
ipset -! create $IPSET_LANIPLIST nethash
ipset -! create $IPSET_VPSIPLIST nethash
ipset -! create $IPSET_GFW nethash
@ -431,24 +389,20 @@ add_firewall_rule() {
[ "$use_tcp_node_resolve_dns" == 1 -a -n "$DNS_FORWARD" ] && {
for dns in $DNS_FORWARD
do
local dns_ip=$(echo $dns | awk -F "#" '{print $1}')
local dns_port=$(echo $dns | awk -F "#" '{print $2}')
local dns_ip=$(echo $dns | sed "s/:/#/g" | awk -F "#" '{print $1}')
local dns_port=$(echo $dns | sed "s/:/#/g" | awk -F "#" '{print $2}')
[ -z "$dns_port" ] && dns_port=53
local ADD_INDEX=4
local INDEX=$($ipt_n -L PSW --line-numbers | grep "$IPSET_WHITELIST" | sed -n '$p' | awk '{print $1}')
[ -n "$INDEX" ] && ADD_INDEX=$(expr $INDEX + 1)
local ADD_INDEX=2
$ipt_n -I PSW_OUTPUT $ADD_INDEX -p tcp -d $dns_ip --dport $dns_port -j REDIRECT --to-ports $TCP_REDIR_PORT1
done
}
[ "$TCP_NO_REDIR_PORTS" != "disable" ] && $ipt_n -A PSW_OUTPUT -p tcp -m multiport --dport $TCP_NO_REDIR_PORTS -j RETURN
$ipt_n -A PSW_OUTPUT -p tcp $(factor $TCP_REDIR_PORTS "-m multiport --dport") -j $(get_action_chain $LOCALHOST_PROXY_MODE)1
fi
# 重定所有流量到透明代理端口
# $ipt_n -A PSW -p tcp -m ttl --ttl-eq $ttl -j REDIRECT --to $local_port
}
# 重定所有流量到透明代理端口
# $ipt_n -A PSW -p tcp -m ttl --ttl-eq $ttl -j REDIRECT --to $local_port
echolog "IPv4 防火墙TCP转发规则加载完成"
if [ "$PROXY_IPV6" == "1" ]; then
[ -n "$lan_ifname" ] && {
lan_ipv6=$(ip address show $lan_ifname | grep -w "inet6" | awk '{print $2}') #当前LAN IPv6段
@ -469,7 +423,6 @@ add_firewall_rule() {
$ip6t_n -A PSW_GLO$k -p tcp -j REDIRECT --to $TCP_REDIR_PORT
$ip6t_n -A PSW -j PSW_GLO$k
#$ip6t_n -I OUTPUT -p tcp -j PSW
echolog "IPv6防火墙规则加载完成"
}
}
fi
@ -478,19 +431,14 @@ add_firewall_rule() {
$ipt_n -A PSW -j PSW_ACL
PRE_INDEX=1
KP_INDEX=$($ipt_n -L PREROUTING --line-numbers | grep "KOOLPROXY" | sed -n '$p' | awk '{print $1}')
ADBYBY_INDEX=$($ipt_n -L PREROUTING --line-numbers | grep "ADBYBY" | sed -n '$p' | awk '{print $1}')
if [ -n "$KP_INDEX" -a -z "$ADBYBY_INDEX" ]; then
PRE_INDEX=$(expr $KP_INDEX + 1)
elif [ -z "$KP_INDEX" -a -n "$ADBYBY_INDEX" ]; then
if [ -n "$ADBYBY_INDEX" ]; then
PRE_INDEX=$(expr $ADBYBY_INDEX + 1)
elif [ -z "$KP_INDEX" -a -z "$ADBYBY_INDEX" ]; then
else
PR_INDEX=$($ipt_n -L PREROUTING --line-numbers | grep "prerouting_rule" | sed -n '$p' | awk '{print $1}')
[ -n "$PR_INDEX" ] && PRE_INDEX=$(expr $PR_INDEX + 1)
fi
$ipt_n -I PREROUTING $PRE_INDEX -j PSW
else
echolog "主节点未选择无法转发TCP"
fi
if [ "$UDP_NODE_NUM" -ge 1 ]; then
@ -510,7 +458,7 @@ add_firewall_rule() {
$ipt_m -A PSW_GFW$k -p udp $(dst $IPSET_BLACKLIST) -j TPROXY --tproxy-mark 0x1/0x1 --on-port $local_port
$ipt_m -A PSW_GFW$k -p udp $(dst $IPSET_GFW) -j TPROXY --tproxy-mark 0x1/0x1 --on-port $local_port
# 大陆白名单模式
# 大陆白名单模式(游戏模式)
$ipt_m -A PSW_CHN$k -p udp $(dst $IPSET_BLACKLIST) -j TPROXY --tproxy-mark 0x1/0x1 --on-port $local_port
$ipt_m -A PSW_CHN$k -p udp $(dst $IPSET_CHN !) -j TPROXY --tproxy-mark 0x1/0x1 --on-port $local_port
@ -528,12 +476,10 @@ add_firewall_rule() {
[ "$use_udp_node_resolve_dns" == 1 -a -n "$DNS_FORWARD" ] && {
for dns in $DNS_FORWARD
do
local dns_ip=$(echo $dns | awk -F "#" '{print $1}')
local dns_port=$(echo $dns | awk -F "#" '{print $2}')
local dns_ip=$(echo $dns | sed "s/:/#/g" | awk -F "#" '{print $1}')
local dns_port=$(echo $dns | sed "s/:/#/g" | awk -F "#" '{print $2}')
[ -z "$dns_port" ] && dns_port=53
local ADD_INDEX=4
local INDEX=$($ipt_m -L PSW --line-numbers | grep "$IPSET_WHITELIST" | sed -n '$p' | awk '{print $1}')
[ -n "$INDEX" ] && ADD_INDEX=$(expr $INDEX + 1)
local ADD_INDEX=2
$ipt_m -I PSW $ADD_INDEX -p udp -d $dns_ip --dport $dns_port -j TPROXY --tproxy-mark 0x1/0x1 --on-port $local_port
$ipt_m -I PSW_OUTPUT $ADD_INDEX -p udp -d $dns_ip --dport $dns_port -j MARK --set-mark 1
done
@ -545,14 +491,10 @@ add_firewall_rule() {
[ "$LOCALHOST_PROXY_MODE" == "gfwlist" ] && $ipt_m -A PSW_OUTPUT -p udp -m multiport --dport $UDP_REDIR_PORTS $(dst $IPSET_GFW) -j MARK --set-mark 1
[ "$LOCALHOST_PROXY_MODE" == "chnroute" ] && $ipt_m -A PSW_OUTPUT -p udp -m multiport --dport $UDP_REDIR_PORTS -m set ! --match-set $IPSET_CHN dst -j MARK --set-mark 1
}
echolog "IPv4 防火墙UDP转发规则加载完成"
fi
done
$ipt_m -A PSW -j PSW_ACL
$ipt_m -A PREROUTING -j PSW
else
echolog "UDP节点未选择无法转发UDP"
fi
# 加载ACLS
@ -583,10 +525,12 @@ add_firewall_rule() {
filter_vpsip
dns_hijack "force"
echolog "默认代理模式:$(get_action_chain_name $PROXY_MODE)"
echolog "防火墙规则加载完成!"
}
del_firewall_rule() {
echolog "删除所有防火墙规则..."
ipv6_output_ss_exist=$($ip6t_n -L OUTPUT 2>/dev/null | grep -c "PSW")
[ -n "$ipv6_output_ss_exist" ] && {
until [ "$ipv6_output_ss_exist" = 0 ]; do
@ -618,7 +562,7 @@ del_firewall_rule() {
$ip6t_n -F PSW_ACL 2>/dev/null && $ip6t_n -X PSW_ACL 2>/dev/null
$ip6t_n -F PSW_OUTPUT 2>/dev/null && $ip6t_n -X PSW_OUTPUT 2>/dev/null
local max_num=5
local max_num=3
for i in $(seq 1 $max_num); do
local k=$i
$ipt_n -F PSW_GLO$k 2>/dev/null && $ipt_n -X PSW_GLO$k 2>/dev/null
@ -646,8 +590,9 @@ del_firewall_rule() {
ipset -F $IPSET_VPSIPLIST >/dev/null 2>&1 && ipset -X $IPSET_VPSIPLIST >/dev/null 2>&1 &
#ipset -F $IPSET_GFW >/dev/null 2>&1 && ipset -X $IPSET_GFW >/dev/null 2>&1 &
#ipset -F $IPSET_CHN >/dev/null 2>&1 && ipset -X $IPSET_CHN >/dev/null 2>&1 &
#ipset -F $IPSET_BLACKLIST >/dev/null 2>&1 && ipset -X $IPSET_BLACKLIST >/dev/null 2>&1 &
#ipset -F $IPSET_WHITELIST >/dev/null 2>&1 && ipset -X $IPSET_WHITELIST >/dev/null 2>&1 &
ipset -F $IPSET_BLACKLIST >/dev/null 2>&1 && ipset -X $IPSET_BLACKLIST >/dev/null 2>&1 &
ipset -F $IPSET_WHITELIST >/dev/null 2>&1 && ipset -X $IPSET_WHITELIST >/dev/null 2>&1 &
#echolog "删除相关防火墙规则完成。"
}
flush_ipset() {

View File

@ -70,11 +70,12 @@
1.192.0.0/13
1.202.0.0/15
1.204.0.0/14
2.20.54.23
8.128.0.0/10
8.209.36.0/22
8.209.40.0/21
8.209.48.0/20
8.209.128.0/17
8.209.192.0/18
8.210.0.0/15
8.212.0.0/14
8.216.0.0/13
@ -97,6 +98,7 @@
14.196.0.0/15
14.204.0.0/15
14.208.0.0/12
20.81.0.0/24
20.134.160.0/20
20.139.160.0/20
20.249.255.0/24
@ -938,7 +940,6 @@
61.236.0.0/15
61.240.0.0/14
62.234.0.0/16
64.85.27.0/24
68.79.0.0/18
69.230.192.0/18
69.231.128.0/18
@ -951,8 +952,11 @@
72.163.240.0/23
72.163.248.0/22
81.68.0.0/14
81.161.63.0/24
82.156.0.0/15
87.254.207.0/24
91.223.53.0/24
91.239.190.0/24
93.183.14.0/24
93.183.18.0/24
94.191.0.0/17
@ -1922,7 +1926,8 @@
103.114.68.0/22
103.114.100.0/22
103.114.148.0/22
103.114.156.0/22
103.114.156.0/23
103.114.159.0/24
103.114.212.0/22
103.114.236.0/22
103.114.240.0/22
@ -1955,7 +1960,7 @@
103.119.156.0/22
103.119.180.0/22
103.119.200.0/22
103.119.226.0/23
103.119.224.0/22
103.120.52.0/22
103.120.72.0/22
103.120.76.0/24
@ -2051,7 +2056,6 @@
103.139.212.0/23
103.140.14.0/23
103.140.46.0/23
103.140.70.0/23
103.140.140.0/23
103.140.144.0/23
103.140.192.0/23
@ -2082,7 +2086,6 @@
103.143.132.0/22
103.143.174.0/23
103.143.228.0/23
103.144.40.0/23
103.144.66.0/23
103.144.70.0/23
103.144.72.0/23
@ -2091,7 +2094,6 @@
103.145.40.0/22
103.145.73.0/24
103.145.80.0/23
103.145.86.0/23
103.145.90.0/23
103.145.92.0/22
103.145.98.0/23
@ -2099,14 +2101,15 @@
103.145.188.0/23
103.146.6.0/23
103.146.72.0/23
103.146.88.0/22
103.146.90.0/23
103.146.126.0/23
103.146.138.0/23
103.146.230.0/23
103.146.236.0/23
103.146.252.0/23
103.147.12.0/23
103.147.124.0/23
103.147.198.0/23
103.147.206.0/23
103.148.174.0/23
103.192.0.0/19
103.192.48.0/21
103.192.56.0/22
@ -2916,7 +2919,21 @@
115.148.0.0/14
115.152.0.0/13
115.166.64.0/19
115.168.0.0/13
115.168.0.0/16
115.169.0.0/23
115.169.3.0/24
115.169.6.0/24
115.169.9.0/24
115.169.14.0/23
115.169.16.0/20
115.169.39.0/24
115.169.42.0/23
115.169.44.0/22
115.169.48.0/20
115.169.64.0/18
115.169.128.0/17
115.170.0.0/15
115.172.0.0/14
115.180.0.0/14
115.187.0.0/20
115.190.0.0/15
@ -3498,7 +3515,7 @@
124.68.244.0/23
124.68.254.0/23
124.69.0.0/16
124.70.0.0/22
124.70.0.0/15
124.72.0.0/13
124.88.0.0/13
124.108.8.0/21
@ -3573,6 +3590,7 @@
129.211.0.0/16
129.223.254.0/24
129.227.99.0/24
130.36.146.0/23
130.214.218.0/23
131.228.96.0/24
131.253.12.0/29
@ -3597,6 +3615,7 @@
139.5.244.0/22
139.9.0.0/16
139.129.0.0/16
139.138.238.0/28
139.148.0.0/16
139.155.0.0/16
139.159.0.0/19
@ -3739,8 +3758,6 @@
150.242.248.0/22
150.255.0.0/16
152.32.178.0/23
152.32.249.0/24
152.32.255.0/24
152.104.128.0/17
152.136.0.0/16
153.0.0.0/16
@ -3852,6 +3869,7 @@
171.104.0.0/13
171.112.0.0/12
171.208.0.0/12
172.60.2.0/24
172.81.192.0/18
173.39.200.0/23
175.0.0.0/12
@ -4000,7 +4018,6 @@
183.192.0.0/10
185.109.236.0/24
185.216.118.0/24
185.224.116.0/22
188.131.128.0/17
192.11.23.0/24
192.11.26.0/24
@ -4024,6 +4041,7 @@
192.144.128.0/17
192.163.11.0/24
192.232.97.0/24
193.9.22.0/24
193.17.120.0/22
193.20.64.0/22
193.112.0.0/16
@ -4155,7 +4173,6 @@
202.27.12.0/24
202.27.14.0/24
202.27.136.0/23
202.30.124.0/24
202.36.226.0/24
202.38.0.0/22
202.38.8.0/21
@ -4699,7 +4716,8 @@
203.15.156.0/22
203.15.174.0/24
203.15.227.0/24
203.15.232.0/21
203.15.232.0/22
203.15.238.0/23
203.15.240.0/23
203.15.246.0/24
203.16.10.0/24
@ -4800,7 +4818,6 @@
203.20.122.0/24
203.20.126.0/23
203.20.135.0/24
203.20.138.0/23
203.20.140.0/22
203.20.150.0/24
203.20.230.0/24
@ -5674,8 +5691,8 @@
220.242.173.0/24
220.242.197.0/24
220.242.205.0/24
220.242.206.0/23
220.242.214.0/23
220.242.207.0/24
220.242.215.0/24
220.242.216.0/21
220.242.224.0/19
220.243.0.0/17

View File

@ -1,2 +1,3 @@
apple.com
microsoft.com
microsoft.com
dyndns.com