luci-app-ssr-plus: sync with upstream source
This commit is contained in:
parent
cb3ea8c7f5
commit
b20642d5d4
@ -30,10 +30,10 @@ switch_enable=0
|
||||
switch_server=$1
|
||||
CRON_FILE=/etc/crontabs/root
|
||||
threads=1
|
||||
run_mode="router"
|
||||
GLOBAL_SERVER="nil"
|
||||
NETFLIX_SERVER="nil"
|
||||
UDP_RELAY_SERVER="nil"
|
||||
run_mode="router"
|
||||
kcp_server=""
|
||||
|
||||
uci_get_by_name() {
|
||||
@ -663,7 +663,7 @@ start_rules() {
|
||||
tun | naiveproxy) local ARG_UDP="";;
|
||||
*) local ARG_UDP="-U";;
|
||||
esac
|
||||
local udp_server=$(uci_get_by_name $UDP_RELAY_SERVER server)
|
||||
local udp_server=$(get_host_ip $(uci_get_by_name $UDP_RELAY_SERVER server))
|
||||
local udp_local_port=1357
|
||||
fi
|
||||
fi
|
||||
@ -720,7 +720,7 @@ start_rules() {
|
||||
start() {
|
||||
[ -f "$LOCK_FILE" ] && exit 2
|
||||
touch "$LOCK_FILE"
|
||||
echo "-----------start-----------" >>/tmp/ssrplus.log
|
||||
echo "----------start------------" >>/tmp/ssrplus.log
|
||||
mkdir -p /tmp/dnsmasq.d /tmp/dnsmasq.ssr /var/run /var/etc
|
||||
cat <<-EOF >/tmp/dnsmasq.d/dnsmasq-ssr.conf
|
||||
conf-dir=/tmp/dnsmasq.ssr
|
||||
@ -732,12 +732,6 @@ start() {
|
||||
start_switch
|
||||
start_dns
|
||||
add_cron
|
||||
if [ "$run_mode" == "oversea" ]; then
|
||||
cp -rf /etc/ssr/oversea_list.conf /tmp/dnsmasq.ssr/
|
||||
else
|
||||
cp -rf /etc/ssr/gfw_list.conf /tmp/dnsmasq.ssr/
|
||||
cp -rf /etc/ssr/gfw_base.conf /tmp/dnsmasq.ssr/
|
||||
fi
|
||||
/usr/share/shadowsocksr/gfw2ipset.sh $switch_server
|
||||
else
|
||||
/usr/bin/ssr-rules -f
|
||||
@ -788,7 +782,7 @@ stop() {
|
||||
ps -w | grep -v "grep" | grep "sleep $(uci_get_by_type global switch_time)s" | awk '{print $1}' | xargs kill -9 >/dev/null 2>&1 &
|
||||
ps -w | grep -v "grep" | grep "sleep 30s" | awk '{print $1}' | xargs kill -9 >/dev/null 2>&1 &
|
||||
killall -q -9 ss-redir ss-local obfs-local ssr-redir ssr-local ssr-server v2ray v2ray-plugin trojan naive microsocks ipt2socks dns2socks redsocks2 pdnsd
|
||||
rm -f /var/lock/ssr-chinaipset.lock /var/lock/ssr-monitor.lock
|
||||
rm -f /var/lock/ssr-monitor.lock
|
||||
if [ -f "/tmp/dnsmasq.d/dnsmasq-ssr.conf" ]; then
|
||||
rm -rf /tmp/dnsmasq.d/dnsmasq-ssr.conf /tmp/dnsmasq.ssr /tmp/dnsmasq.oversea
|
||||
/etc/init.d/dnsmasq restart >/dev/null 2>&1
|
||||
|
||||
@ -2076,7 +2076,6 @@
|
||||
103.18.208.0/22
|
||||
103.18.212.0/22
|
||||
103.18.224.0/22
|
||||
103.19.0.0/22
|
||||
103.19.12.0/22
|
||||
103.19.40.0/22
|
||||
103.19.44.0/22
|
||||
@ -3395,7 +3394,6 @@
|
||||
103.93.28.0/22
|
||||
103.93.76.0/22
|
||||
103.93.84.0/22
|
||||
103.93.121.0/24
|
||||
103.93.152.0/22
|
||||
103.93.180.0/22
|
||||
103.93.204.0/22
|
||||
|
||||
@ -14376,6 +14376,8 @@ server=/park-now.com/127.0.0.1#5335
|
||||
ipset=/park-now.com/gfwlist
|
||||
server=/parkinfo.com/127.0.0.1#5335
|
||||
ipset=/parkinfo.com/gfwlist
|
||||
server=/parler.com/127.0.0.1#5335
|
||||
ipset=/parler.com/gfwlist
|
||||
server=/parse.com/127.0.0.1#5335
|
||||
ipset=/parse.com/gfwlist
|
||||
server=/parstream.com/127.0.0.1#5335
|
||||
@ -15442,6 +15444,40 @@ server=/realamericanstories.org/127.0.0.1#5335
|
||||
ipset=/realamericanstories.org/gfwlist
|
||||
server=/realamericanstories.tv/127.0.0.1#5335
|
||||
ipset=/realamericanstories.tv/gfwlist
|
||||
server=/realclear.com/127.0.0.1#5335
|
||||
ipset=/realclear.com/gfwlist
|
||||
server=/realclearbooks.com/127.0.0.1#5335
|
||||
ipset=/realclearbooks.com/gfwlist
|
||||
server=/realcleardefense.com/127.0.0.1#5335
|
||||
ipset=/realcleardefense.com/gfwlist
|
||||
server=/realcleareducation.com/127.0.0.1#5335
|
||||
ipset=/realcleareducation.com/gfwlist
|
||||
server=/realclearenergy.org/127.0.0.1#5335
|
||||
ipset=/realclearenergy.org/gfwlist
|
||||
server=/realclearfoundation.org/127.0.0.1#5335
|
||||
ipset=/realclearfoundation.org/gfwlist
|
||||
server=/realclearhealth.com/127.0.0.1#5335
|
||||
ipset=/realclearhealth.com/gfwlist
|
||||
server=/realclearhistory.com/127.0.0.1#5335
|
||||
ipset=/realclearhistory.com/gfwlist
|
||||
server=/realclearinvestigations.com/127.0.0.1#5335
|
||||
ipset=/realclearinvestigations.com/gfwlist
|
||||
server=/realclearlife.com/127.0.0.1#5335
|
||||
ipset=/realclearlife.com/gfwlist
|
||||
server=/realclearmarkets.com/127.0.0.1#5335
|
||||
ipset=/realclearmarkets.com/gfwlist
|
||||
server=/realclearpolicy.com/127.0.0.1#5335
|
||||
ipset=/realclearpolicy.com/gfwlist
|
||||
server=/realclearpolitics.com/127.0.0.1#5335
|
||||
ipset=/realclearpolitics.com/gfwlist
|
||||
server=/realclearpublicaffairs.com/127.0.0.1#5335
|
||||
ipset=/realclearpublicaffairs.com/gfwlist
|
||||
server=/realclearreligion.org/127.0.0.1#5335
|
||||
ipset=/realclearreligion.org/gfwlist
|
||||
server=/realclearscience.com/127.0.0.1#5335
|
||||
ipset=/realclearscience.com/gfwlist
|
||||
server=/realclearworld.com/127.0.0.1#5335
|
||||
ipset=/realclearworld.com/gfwlist
|
||||
server=/realitykings.com/127.0.0.1#5335
|
||||
ipset=/realitykings.com/gfwlist
|
||||
server=/realmilwaukeenow.com/127.0.0.1#5335
|
||||
@ -17082,6 +17118,8 @@ server=/thefind.com/127.0.0.1#5335
|
||||
ipset=/thefind.com/gfwlist
|
||||
server=/thefoxnation.com/127.0.0.1#5335
|
||||
ipset=/thefoxnation.com/gfwlist
|
||||
server=/thegatewaypundit.com/127.0.0.1#5335
|
||||
ipset=/thegatewaypundit.com/gfwlist
|
||||
server=/thegeorgiascene.com/127.0.0.1#5335
|
||||
ipset=/thegeorgiascene.com/gfwlist
|
||||
server=/thegooglestore.com/127.0.0.1#5335
|
||||
@ -19314,6 +19352,8 @@ server=/xn--kput3imi374g.xn--hxt814e/127.0.0.1#5335
|
||||
ipset=/xn--kput3imi374g.xn--hxt814e/gfwlist
|
||||
server=/xn--mts47c3w9b1qr.net/127.0.0.1#5335
|
||||
ipset=/xn--mts47c3w9b1qr.net/gfwlist
|
||||
server=/xn--ngstr-lra8j.com/127.0.0.1#5335
|
||||
ipset=/xn--ngstr-lra8j.com/gfwlist
|
||||
server=/xn--p8j9a0d9c9a.xn--q9jyb4c/127.0.0.1#5335
|
||||
ipset=/xn--p8j9a0d9c9a.xn--q9jyb4c/gfwlist
|
||||
server=/xn--q41am8x.com/127.0.0.1#5335
|
||||
|
||||
@ -81,19 +81,19 @@ flush_r() {
|
||||
}
|
||||
|
||||
ipset_r() {
|
||||
ipset -N gmlan hash:net 2>/dev/null
|
||||
for ip in $LAN_GM_IP; do ipset -! add gmlan $ip; done
|
||||
[ -f "$IGNORE_LIST" ] && /usr/share/shadowsocksr/chinaipset.sh $IGNORE_LIST
|
||||
$IPT -N SS_SPEC_WAN_AC
|
||||
$IPT -I SS_SPEC_WAN_AC -p tcp ! --dport 53 -d $server -j RETURN
|
||||
ipset -N gmlan hash:net 2>/dev/null
|
||||
for ip in $LAN_GM_IP; do ipset -! add gmlan $ip; done
|
||||
case "$RUNMODE" in
|
||||
router)
|
||||
set_china_ip
|
||||
ipset -! -R <<-EOF || return 1
|
||||
create ss_spec_wan_ac hash:net
|
||||
$(gen_iplist | sed -e "s/^/add ss_spec_wan_ac /")
|
||||
$(gen_spec_iplist | sed -e "s/^/add ss_spec_wan_ac /")
|
||||
EOF
|
||||
ipset -N gfwlist hash:net 2>/dev/null
|
||||
$IPT -A SS_SPEC_WAN_AC -m set --match-set ss_spec_wan_ac dst -j RETURN
|
||||
$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 -m set --match-set china dst -j RETURN
|
||||
$IPT -A SS_SPEC_WAN_AC -j SS_SPEC_WAN_FW
|
||||
;;
|
||||
@ -105,8 +105,8 @@ ipset_r() {
|
||||
;;
|
||||
oversea)
|
||||
ipset -N oversea hash:net 2>/dev/null
|
||||
ipset -N gmlan hash:net 2>/dev/null
|
||||
for ip in $LAN_GM_IP; do ipset -! add gmlan $ip; done
|
||||
$IPT -I SS_SPEC_WAN_AC -m set --match-set oversea dst -j SS_SPEC_WAN_FW
|
||||
$IPT -A SS_SPEC_WAN_AC -m set --match-set gmlan src -j SS_SPEC_WAN_FW
|
||||
$IPT -A SS_SPEC_WAN_AC -m set --match-set china dst -j SS_SPEC_WAN_FW
|
||||
;;
|
||||
all)
|
||||
@ -224,7 +224,8 @@ tp_rule() {
|
||||
$ipt -A SS_SPEC_TPROXY -p udp -d 192.168.0.0/16 -j RETURN
|
||||
$ipt -A SS_SPEC_TPROXY -p udp -d 224.0.0.0/4 -j RETURN
|
||||
$ipt -A SS_SPEC_TPROXY -p udp -d 240.0.0.0/4 -j RETURN
|
||||
$ipt -A SS_SPEC_TPROXY -p udp ! --dport 53 -d $server -j RETURN
|
||||
$ipt -A SS_SPEC_TPROXY -p udp ! --dport 53 -d $SERVER -j RETURN
|
||||
[ "$server" != "$SERVER" ] && ipset -! add whitelist $SERVER
|
||||
$ipt -A SS_SPEC_TPROXY -p udp -m set --match-set bplan src -j RETURN
|
||||
$ipt -A SS_SPEC_TPROXY -p udp $PROXY_PORTS -m set --match-set fplan src \
|
||||
-j TPROXY --on-port "$LOCAL_PORT" --tproxy-mark 0x01/0x01
|
||||
@ -263,32 +264,6 @@ get_wan_ip() {
|
||||
EOF
|
||||
}
|
||||
|
||||
gen_iplist() {
|
||||
cat <<-EOF
|
||||
0.0.0.0/8
|
||||
10.0.0.0/8
|
||||
100.64.0.0/10
|
||||
127.0.0.0/8
|
||||
169.254.0.0/16
|
||||
172.16.0.0/12
|
||||
192.0.0.0/24
|
||||
192.0.2.0/24
|
||||
192.88.99.0/24
|
||||
192.168.0.0/16
|
||||
198.18.0.0/15
|
||||
198.51.100.0/24
|
||||
203.0.113.0/24
|
||||
224.0.0.0/4
|
||||
240.0.0.0/4
|
||||
255.255.255.255
|
||||
$(get_wan_ip)
|
||||
EOF
|
||||
}
|
||||
|
||||
set_china_ip() {
|
||||
[ -f "$IGNORE_LIST" ] && /usr/share/shadowsocksr/chinaipset.sh $IGNORE_LIST
|
||||
}
|
||||
|
||||
gen_spec_iplist() {
|
||||
cat <<-EOF
|
||||
0.0.0.0/8
|
||||
@ -430,5 +405,6 @@ fi
|
||||
esac
|
||||
|
||||
flush_r && fw_rule && ipset_r && ac_rule && tp_rule && gen_include
|
||||
[ "$?" == 0 ] || loger 3 "Start failed!"
|
||||
exit $?
|
||||
RET=$?
|
||||
[ "$RET" = 0 ] || loger 3 "Start failed!"
|
||||
exit $RET
|
||||
|
||||
@ -1,11 +1,7 @@
|
||||
#!/bin/sh
|
||||
LOCK_FILE="/var/lock/ssr-chinaipset.lock"
|
||||
[ -f "$LOCK_FILE" ] && exit 2
|
||||
[ -f "$1" ] && china_ip=$1
|
||||
touch "$LOCK_FILE"
|
||||
ipset -! flush china 2>/dev/null
|
||||
ipset -! -R <<-EOF || rm -f $LOCK_FILE && exit 1
|
||||
ipset -! -R <<-EOF || exit 1
|
||||
create china hash:net
|
||||
$(cat ${china_ip:=/etc/ssr/china_ssr.txt} | sed -e "s/^/add china /")
|
||||
EOF
|
||||
rm -f $LOCK_FILE
|
||||
|
||||
@ -10,16 +10,25 @@ if [ -z "$switch_server" ]; then
|
||||
else
|
||||
GLOBAL_SERVER=$switch_server
|
||||
fi
|
||||
|
||||
mkdir -p /tmp/dnsmasq.ssr
|
||||
if [ "$(uci_get_by_type global run_mode router)" == "oversea" ]; then
|
||||
cp -rf /etc/ssr/oversea_list.conf /tmp/dnsmasq.ssr/
|
||||
else
|
||||
cp -rf /etc/ssr/gfw_list.conf /tmp/dnsmasq.ssr/
|
||||
cp -rf /etc/ssr/gfw_base.conf /tmp/dnsmasq.ssr/
|
||||
fi
|
||||
|
||||
NETFLIX_SERVER=$(uci_get_by_type global netflix_server nil)
|
||||
[ "$NETFLIX_SERVER" == "same" ] && NETFLIX_SERVER=$GLOBAL_SERVER
|
||||
if [ "$NETFLIX_SERVER" != "nil" ]; then
|
||||
netflix() {
|
||||
awk '!/^$/&&!/^#/{printf("ipset=/%s/'"netflix"'\n",$0)}' /etc/ssr/netflix.list >/tmp/dnsmasq.ssr/netflix_forward.conf
|
||||
awk '!/^$/&&!/^#/{printf("server=/%s/'"127.0.0.1#$1"'\n",$0)}' /etc/ssr/netflix.list >>/tmp/dnsmasq.ssr/netflix_forward.conf
|
||||
if [ -f "/tmp/dnsmasq.ssr/gfw_list.conf" ]; then
|
||||
for line in $(cat /etc/ssr/netflix.list); do sed -i "/$line/d" /tmp/dnsmasq.ssr/gfw_list.conf; done
|
||||
for line in $(cat /etc/ssr/netflix.list); do sed -i "/$line/d" /tmp/dnsmasq.ssr/gfw_base.conf; done
|
||||
fi
|
||||
awk '!/^$/&&!/^#/{printf("ipset=/%s/'"netflix"'\n",$0)}' /etc/ssr/netflix.list >/tmp/dnsmasq.ssr/netflix_forward.conf
|
||||
awk '!/^$/&&!/^#/{printf("server=/%s/'"127.0.0.1#$1"'\n",$0)}' /etc/ssr/netflix.list >>/tmp/dnsmasq.ssr/netflix_forward.conf
|
||||
}
|
||||
if [ "$NETFLIX_SERVER" != "$GLOBAL_SERVER" ]; then
|
||||
netflix 5555
|
||||
@ -29,16 +38,16 @@ if [ "$NETFLIX_SERVER" != "nil" ]; then
|
||||
else
|
||||
rm -f /tmp/dnsmasq.ssr/netflix_forward.conf
|
||||
fi
|
||||
awk '!/^$/&&!/^#/{printf("ipset=/%s/'"blacklist"'\n",$0)}' /etc/ssr/black.list >/tmp/dnsmasq.ssr/blacklist_forward.conf
|
||||
awk '!/^$/&&!/^#/{printf("server=/%s/'"127.0.0.1#5335"'\n",$0)}' /etc/ssr/black.list >>/tmp/dnsmasq.ssr/blacklist_forward.conf
|
||||
awk '!/^$/&&!/^#/{printf("ipset=/%s/'"whitelist"'\n",$0)}' /etc/ssr/white.list >/tmp/dnsmasq.ssr/whitelist_forward.conf
|
||||
awk '!/^$/&&!/^#/{printf("address=/%s/''\n",$0)}' /etc/ssr/deny.list >/tmp/dnsmasq.ssr/denylist.conf
|
||||
for line in $(cat /etc/ssr/black.list); do sed -i "/$line/d" /tmp/dnsmasq.ssr/gfw_list.conf; done
|
||||
for line in $(cat /etc/ssr/black.list); do sed -i "/$line/d" /tmp/dnsmasq.ssr/gfw_base.conf; done
|
||||
for line in $(cat /etc/ssr/white.list); do sed -i "/$line/d" /tmp/dnsmasq.ssr/gfw_list.conf; done
|
||||
for line in $(cat /etc/ssr/white.list); do sed -i "/$line/d" /tmp/dnsmasq.ssr/gfw_base.conf; done
|
||||
for line in $(cat /etc/ssr/deny.list); do sed -i "/$line/d" /tmp/dnsmasq.ssr/gfw_list.conf; done
|
||||
for line in $(cat /etc/ssr/deny.list); do sed -i "/$line/d" /tmp/dnsmasq.ssr/gfw_base.conf; done
|
||||
awk '!/^$/&&!/^#/{printf("ipset=/%s/'"blacklist"'\n",$0)}' /etc/ssr/black.list >/tmp/dnsmasq.ssr/blacklist_forward.conf
|
||||
awk '!/^$/&&!/^#/{printf("server=/%s/'"127.0.0.1#5335"'\n",$0)}' /etc/ssr/black.list >>/tmp/dnsmasq.ssr/blacklist_forward.conf
|
||||
awk '!/^$/&&!/^#/{printf("ipset=/%s/'"whitelist"'\n",$0)}' /etc/ssr/white.list >/tmp/dnsmasq.ssr/whitelist_forward.conf
|
||||
awk '!/^$/&&!/^#/{printf("address=/%s/''\n",$0)}' /etc/ssr/deny.list >/tmp/dnsmasq.ssr/denylist.conf
|
||||
if [ "$(uci_get_by_type global adblock 0)" == "1" ]; then
|
||||
[ "$1" == "" ] && cp -f /etc/ssr/ad.conf /tmp/dnsmasq.ssr/
|
||||
if [ -f "/tmp/dnsmasq.ssr/ad.conf" ]; then
|
||||
|
||||
Loading…
Reference in New Issue
Block a user