luci-app-ssr-plus: bump to 181-1
This commit is contained in:
parent
be73016c4d
commit
b3736ec6ad
@ -1,11 +1,16 @@
|
||||
include $(TOPDIR)/rules.mk
|
||||
|
||||
PKG_NAME:=luci-app-ssr-plus
|
||||
PKG_VERSION:=180
|
||||
PKG_RELEASE:=10
|
||||
PKG_VERSION:=181
|
||||
PKG_RELEASE:=1
|
||||
|
||||
include $(INCLUDE_DIR)/package.mk
|
||||
|
||||
define Package/$(PKG_NAME)/conffiles
|
||||
/etc/config/shadowsocksr
|
||||
/etc/ssr/
|
||||
endef
|
||||
|
||||
define Package/$(PKG_NAME)/config
|
||||
config PACKAGE_$(PKG_NAME)_INCLUDE_V2ray_plugin
|
||||
bool "Include Shadowsocks V2ray Plugin"
|
||||
@ -15,6 +20,10 @@ config PACKAGE_$(PKG_NAME)_INCLUDE_V2ray
|
||||
bool "Include V2ray"
|
||||
default y if i386||x86_64||arm||aarch64
|
||||
|
||||
config PACKAGE_$(PKG_NAME)_INCLUDE_Xray
|
||||
bool "Include Xray"
|
||||
default y if i386||x86_64||arm||aarch64
|
||||
|
||||
config PACKAGE_$(PKG_NAME)_INCLUDE_Trojan
|
||||
bool "Include Trojan"
|
||||
default y if i386||x86_64||arm||aarch64
|
||||
@ -40,18 +49,20 @@ endef
|
||||
PKG_CONFIG_DEPENDS:= \
|
||||
CONFIG_PACKAGE_$(PKG_NAME)_INCLUDE_V2ray_plugin \
|
||||
CONFIG_PACKAGE_$(PKG_NAME)_INCLUDE_V2ray \
|
||||
CONFIG_PACKAGE_$(PKG_NAME)_INCLUDE_Xray \
|
||||
CONFIG_PACKAGE_$(PKG_NAME)_INCLUDE_Trojan \
|
||||
CONFIG_PACKAGE_$(PKG_NAME)_INCLUDE_NaiveProxy \
|
||||
CONFIG_PACKAGE_$(PKG_NAME)_INCLUDE_Redsocks2 \
|
||||
CONFIG_PACKAGE_$(PKG_NAME)_INCLUDE_Kcptun \
|
||||
CONFIG_PACKAGE_$(PKG_NAME)_INCLUDE_ShadowsocksR_Server
|
||||
|
||||
LUCI_TITLE:=SS/SSR/V2Ray/Trojan/NaiveProxy/Socks5/Tun LuCI interface
|
||||
LUCI_TITLE:=SS/SSR/V2Ray/Xray/Trojan/NaiveProxy/Socks5/Tun LuCI interface
|
||||
LUCI_PKGARCH:=all
|
||||
LUCI_DEPENDS:=+shadowsocksr-libev-alt +ipset +ip-full +iptables-mod-tproxy +dnsmasq-full +coreutils +coreutils-base64 +pdnsd-alt +wget +lua +libuci-lua \
|
||||
+microsocks +dns2socks +shadowsocks-libev-ss-local +shadowsocksr-libev-ssr-local +shadowsocks-libev-ss-redir +simple-obfs +tcping +resolveip\
|
||||
+PACKAGE_$(PKG_NAME)_INCLUDE_V2ray_plugin:v2ray-plugin \
|
||||
+PACKAGE_$(PKG_NAME)_INCLUDE_V2ray:v2ray \
|
||||
+PACKAGE_$(PKG_NAME)_INCLUDE_Xray:xray \
|
||||
+PACKAGE_$(PKG_NAME)_INCLUDE_Trojan:trojan \
|
||||
+PACKAGE_$(PKG_NAME)_INCLUDE_Trojan:ipt2socks \
|
||||
+PACKAGE_$(PKG_NAME)_INCLUDE_NaiveProxy:naiveproxy \
|
||||
|
||||
@ -99,7 +99,7 @@ function refresh_data()
|
||||
if type == "gfw_data" or type == "ad_data" then
|
||||
luci.sys.exec("/usr/share/shadowsocksr/gfw2ipset.sh")
|
||||
else
|
||||
luci.sys.exec("/etc/init.d/shadowsocksr restart &")
|
||||
luci.sys.exec("/usr/share/shadowsocksr/chinaipset.sh /tmp/etc/china_ssr.txt")
|
||||
end
|
||||
end
|
||||
else
|
||||
@ -111,7 +111,7 @@ function refresh_data()
|
||||
update(uci:get_first("shadowsocksr", "global", "gfwlist_url", "https://cdn.jsdelivr.net/gh/gfwlist/gfwlist/gfwlist.txt"), "/etc/ssr/gfw_list.conf", set, "/tmp/dnsmasq.ssr/gfw_list.conf")
|
||||
end
|
||||
if set == "ip_data" then
|
||||
update(uci:get_first("shadowsocksr", "global", "chnroute_url","https://ispip.clang.cn/all_cn.txt"), "/etc/ssr/china_ssr.txt", set)
|
||||
update(uci:get_first("shadowsocksr", "global", "chnroute_url","https://ispip.clang.cn/all_cn.txt"), "/etc/ssr/china_ssr.txt", set, "/tmp/etc/china_ssr.txt")
|
||||
end
|
||||
if set == "ad_data" then
|
||||
update(uci:get_first("shadowsocksr", "global", "adblock_url","https://easylist-downloads.adblockplus.org/easylistchina+easylist.txt"), "/etc/ssr/ad.conf", set, "/tmp/dnsmasq.ssr/ad.conf")
|
||||
|
||||
@ -56,9 +56,10 @@ o:depends("adblock", "1")
|
||||
o.description = translate("Support AdGuardHome and DNSMASQ format list")
|
||||
|
||||
o = s:option(Value, "gfwlist_url", translate("gfwlist Update url"))
|
||||
o:value("https://cdn.jsdelivr.net/gh/v2fly/domain-list-community@release/gfwlist.txt", translate("v2fly/domain-list-community"))
|
||||
o:value("https://cdn.jsdelivr.net/gh/Loukky/gfwlist-by-loukky/gfwlist.txt", translate("Loukky/gfwlist-by-loukky"))
|
||||
o:value("https://cdn.jsdelivr.net/gh/gfwlist/gfwlist/gfwlist.txt", translate("gfwlist/gfwlist"))
|
||||
o.default = "https://cdn.jsdelivr.net/gh/gfwlist/gfwlist/gfwlist.txt"
|
||||
o.default = "https://cdn.jsdelivr.net/gh/v2fly/domain-list-community@release/gfwlist.txt"
|
||||
|
||||
o = s:option(Value, "chnroute_url", translate("Chnroute Update url"))
|
||||
o:value("https://ispip.clang.cn/all_cn.txt", translate("Clang.CN"))
|
||||
|
||||
@ -132,6 +132,9 @@ if nixio.fs.access("/usr/bin/v2ray/v2ray") or nixio.fs.access("/usr/bin/v2ray")
|
||||
o:value("v2ray", translate("V2Ray"))
|
||||
o:value("vless", translate("VLESS"))
|
||||
end
|
||||
if nixio.fs.access("/usr/bin/xray") then
|
||||
o:value("xray", translate("XRay"))
|
||||
end
|
||||
if nixio.fs.access("/usr/sbin/trojan") then
|
||||
o:value("trojan", translate("Trojan"))
|
||||
end
|
||||
@ -160,6 +163,7 @@ o:depends("type", "ssr")
|
||||
o:depends("type", "ss")
|
||||
o:depends("type", "v2ray")
|
||||
o:depends("type", "vless")
|
||||
o:depends("type", "xray")
|
||||
o:depends("type", "trojan")
|
||||
o:depends("type", "naiveproxy")
|
||||
o:depends("type", "socks5")
|
||||
@ -171,6 +175,7 @@ o:depends("type", "ssr")
|
||||
o:depends("type", "ss")
|
||||
o:depends("type", "v2ray")
|
||||
o:depends("type", "vless")
|
||||
o:depends("type", "xray")
|
||||
o:depends("type", "trojan")
|
||||
o:depends("type", "naiveproxy")
|
||||
o:depends("type", "socks5")
|
||||
@ -242,12 +247,14 @@ o.rmempty = true
|
||||
o.default = uuid
|
||||
o:depends("type", "v2ray")
|
||||
o:depends("type", "vless")
|
||||
o:depends("type", "xray")
|
||||
|
||||
-- VLESS Encryption
|
||||
o = s:option(Value, "vless_encryption", translate("VLESS Encryption"))
|
||||
o.rmempty = true
|
||||
o.default = "none"
|
||||
o:depends("type", "vless")
|
||||
o:depends("type", "xray")
|
||||
|
||||
-- 加密方式
|
||||
o = s:option(ListValue, "security", translate("Encrypt Method"))
|
||||
@ -265,6 +272,7 @@ o:value("quic", "QUIC")
|
||||
o.rmempty = true
|
||||
o:depends("type", "v2ray")
|
||||
o:depends("type", "vless")
|
||||
o:depends("type", "xray")
|
||||
|
||||
-- [[ TCP部分 ]]--
|
||||
|
||||
@ -380,6 +388,10 @@ o:depends("transport", "kcp")
|
||||
o.default = 2
|
||||
o.rmempty = true
|
||||
|
||||
o = s:option(Value, "seed", translate("Obfuscate password (optional)"))
|
||||
o:depends("transport", "kcp")
|
||||
o.rmempty = true
|
||||
|
||||
o = s:option(Flag, "congestion", translate("Congestion"))
|
||||
o:depends("transport", "kcp")
|
||||
o.rmempty = true
|
||||
@ -389,6 +401,7 @@ o = s:option(Flag, "insecure", translate("allowInsecure"))
|
||||
o.rmempty = false
|
||||
o:depends("type", "v2ray")
|
||||
o:depends("type", "vless")
|
||||
o:depends("type", "xray")
|
||||
o:depends("type", "trojan")
|
||||
o.default = "1"
|
||||
o.description = translate("If true, allowss insecure connection at TLS client, e.g., TLS server uses unverifiable certificates.")
|
||||
@ -398,6 +411,7 @@ o.rmempty = true
|
||||
o.default = "0"
|
||||
o:depends("type", "v2ray")
|
||||
o:depends("type", "vless")
|
||||
o:depends("type", "xray")
|
||||
o:depends("type", "trojan")
|
||||
|
||||
o = s:option(Value, "tls_host", translate("TLS Host"))
|
||||
@ -410,6 +424,7 @@ o = s:option(Flag, "xtls", translate("XTLS"))
|
||||
o.rmempty = true
|
||||
o.default = "0"
|
||||
o:depends({type="vless", tls="1"})
|
||||
o:depends({type="xray", tls="1"})
|
||||
|
||||
-- Flow
|
||||
o = s:option(Value, "vless_flow", translate("Flow"))
|
||||
@ -438,6 +453,7 @@ o.default = "0"
|
||||
o:depends("type", "trojan")
|
||||
o:depends("type", "v2ray")
|
||||
o:depends("type", "vless")
|
||||
o:depends("type", "xray")
|
||||
o.description = translate("If you have a self-signed certificate,please check the box")
|
||||
|
||||
o = s:option(DummyValue, "upload", translate("Upload"))
|
||||
|
||||
@ -6,7 +6,7 @@ local m, s, sec, o, kcp_enable
|
||||
local shadowsocksr = "shadowsocksr"
|
||||
local uci = luci.model.uci.cursor()
|
||||
m = Map(shadowsocksr, translate("ShadowSocksR Plus+ Settings"),
|
||||
translate("<h3>Support SS/SSR/V2RAY/TROJAN/NAIVEPROXY/SOCKS5/TUN etc.</h3>"))
|
||||
translate("<h3>Support SS/SSR/V2RAY/XRAY/TROJAN/NAIVEPROXY/SOCKS5/TUN etc.</h3>"))
|
||||
|
||||
m:section(SimpleSection).template = "shadowsocksr/status"
|
||||
|
||||
|
||||
@ -421,8 +421,8 @@ msgstr "GFW列表"
|
||||
msgid "ShadowSocksR Plus+ Settings"
|
||||
msgstr "ShadowSocksR Plus+ 设置"
|
||||
|
||||
msgid "<h3>Support SS/SSR/V2RAY/TROJAN/NAIVEPROXY/SOCKS5/TUN etc.</h3>"
|
||||
msgstr "<h3>支持 SS/SSR/V2RAY/TROJAN/NAIVEPROXY/SOCKS5/TUN 等协议</h3>"
|
||||
msgid "<h3>Support SS/SSR/V2RAY/XRAY/TROJAN/NAIVEPROXY/SOCKS5/TUN etc.</h3>"
|
||||
msgstr "<h3>支持 SS/SSR/V2RAY/XRAY/TROJAN/NAIVEPROXY/SOCKS5/TUN 等协议</h3>"
|
||||
|
||||
msgid "Main Server"
|
||||
msgstr "主服务器"
|
||||
@ -684,3 +684,6 @@ msgstr "警告!请不要重复使用端口!"
|
||||
|
||||
msgid "Deny Domain List"
|
||||
msgstr "禁止连接的域名"
|
||||
|
||||
msgid "Obfuscate password (optional)"
|
||||
msgstr "混淆密码(可选)"
|
||||
|
||||
@ -1,23 +1,22 @@
|
||||
|
||||
config global
|
||||
option tunnel_forward '8.8.4.4:53'
|
||||
option tunnel_address '0.0.0.0'
|
||||
option global_server 'nil'
|
||||
option netflix_server 'nil'
|
||||
option netflix_proxy '0'
|
||||
option threads '0'
|
||||
option run_mode 'router'
|
||||
option dports '2'
|
||||
option pdnsd_enable '1'
|
||||
option tunnel_forward '8.8.4.4:53'
|
||||
option monitor_enable '1'
|
||||
option enable_switch '1'
|
||||
option switch_timeout '5'
|
||||
option switch_time '667'
|
||||
option switch_timeout '5'
|
||||
option switch_try_count '3'
|
||||
option gfwlist_url 'https://cdn.jsdelivr.net/gh/Loukky/gfwlist-by-loukky/gfwlist.txt'
|
||||
option gfwlist_url 'https://cdn.jsdelivr.net/gh/v2fly/domain-list-community@release/gfwlist.txt'
|
||||
option chnroute_url 'https://ispip.clang.cn/all_cn.txt'
|
||||
option nfip_url 'https://cdn.jsdelivr.net/gh/QiuSimons/Netflix_IP/getflix.txt'
|
||||
option adblock_url 'https://anti-ad.net/anti-ad-for-dnsmasq.conf'
|
||||
option threads '0'
|
||||
option global_server 'disable'
|
||||
option netflix_server 'nil'
|
||||
option netflix_proxy '0'
|
||||
|
||||
config access_control
|
||||
option lan_ac_mode '0'
|
||||
@ -28,16 +27,15 @@ config access_control
|
||||
list wan_fw_ips '91.108.56.0/22'
|
||||
list wan_fw_ips '109.239.140.0/24'
|
||||
|
||||
config socks5_proxy
|
||||
option socks '0'
|
||||
option local_port '1080'
|
||||
option local_address '0.0.0.0'
|
||||
|
||||
config server_global
|
||||
option enable_server '0'
|
||||
|
||||
config server_subscribe
|
||||
option proxy '0'
|
||||
option auto_update_time '2'
|
||||
option auto_update '1'
|
||||
option filter_words '过期时间/剩余流量/QQ群/官网/防失联地址/回国'
|
||||
|
||||
config socks5_proxy
|
||||
option socks '0'
|
||||
option local_port '1080'
|
||||
|
||||
config server_global
|
||||
option enable_server '0'
|
||||
|
||||
@ -115,6 +115,7 @@ find_bin() {
|
||||
ssr-local) ret="/usr/bin/ssr-local" ;;
|
||||
ssr-server) ret="/usr/bin/ssr-server" ;;
|
||||
v2ray | vless) ret="/usr/bin/v2ray/v2ray" && [ ! -f "$ret" ] && ret="/usr/bin/v2ray" ;;
|
||||
xray) ret="/usr/bin/xray/xray" && [ ! -f "$ret" ] && ret="/usr/bin/xray" ;;
|
||||
trojan) ret="/usr/sbin/trojan" ;;
|
||||
naiveproxy) ret="/usr/bin/naive" ;;
|
||||
socks5 | tun) ret="/usr/sbin/redsocks2" ;;
|
||||
@ -190,6 +191,10 @@ gen_config_file() {
|
||||
lua /usr/share/shadowsocksr/gen${type}config.lua $GLOBAL_SERVER tcp $(uci_get_by_name $1 local_port) >/var/etc/v2-ssr-retcp.json
|
||||
sed -i 's/\\//g' /var/etc/v2-ssr-retcp.json
|
||||
;;
|
||||
xray)
|
||||
lua /usr/share/shadowsocksr/gen${type}config.lua $GLOBAL_SERVER tcp $(uci_get_by_name $1 local_port) >/var/etc/xray-ssr-retcp.json
|
||||
sed -i 's/\\//g' /var/etc/xray-ssr-retcp.json
|
||||
;;
|
||||
trojan)
|
||||
lua /usr/share/shadowsocksr/gentrojanconfig.lua $GLOBAL_SERVER nat $(uci_get_by_name $1 local_port) >/var/etc/trojan-ssr-retcp.json
|
||||
sed -i 's/\\//g' /var/etc/trojan-ssr-retcp.json
|
||||
@ -363,6 +368,10 @@ start_redir_tcp() {
|
||||
$bin -config /var/etc/v2-ssr-retcp.json >/dev/null 2>&1 &
|
||||
echo "$(date "+%Y-%m-%d %H:%M:%S") Main node:$($bin -version | head -1) Started!" >>/tmp/ssrplus.log
|
||||
;;
|
||||
xray)
|
||||
$bin -config /var/etc/xray-ssr-retcp.json >/dev/null 2>&1 &
|
||||
echo "$(date "+%Y-%m-%d %H:%M:%S") Main node:$($bin -version | head -1) Started!" >>/tmp/ssrplus.log
|
||||
;;
|
||||
trojan)
|
||||
for i in $(seq 1 $threads); do
|
||||
$bin --config /var/etc/trojan-ssr-retcp.json >/dev/null 2>&1 &
|
||||
@ -418,6 +427,12 @@ start_redir_udp() {
|
||||
$bin -config /var/etc/v2-ssr-reudp.json >/dev/null 2>&1 &
|
||||
echo "$(date "+%Y-%m-%d %H:%M:%S") UDP TPROXY Relay:$($bin -version | head -1) Started!" >>/tmp/ssrplus.log
|
||||
;;
|
||||
xray)
|
||||
lua /usr/share/shadowsocksr/gen${type}config.lua $UDP_RELAY_SERVER udp $(uci_get_by_name $UDP_RELAY_SERVER local_port) >/var/etc/xray-ssr-reudp.json
|
||||
sed -i 's/\\//g' /var/etc/xray-ssr-reudp.json
|
||||
$bin -config /var/etc/xray-ssr-reudp.json >/dev/null 2>&1 &
|
||||
echo "$(date "+%Y-%m-%d %H:%M:%S") UDP TPROXY Relay:$($bin -version | head -1) Started!" >>/tmp/ssrplus.log
|
||||
;;
|
||||
trojan)
|
||||
lua /usr/share/shadowsocksr/gentrojanconfig.lua $GLOBAL_SERVER client 10801 >/var/etc/trojan-ssr-reudp.json
|
||||
sed -i 's/\\//g' /var/etc/trojan-ssr-reudp.json
|
||||
@ -470,6 +485,13 @@ start_shunt() {
|
||||
dns2socks 127.0.0.1:1088 8.8.8.8:53 127.0.0.1:5555 -q >/dev/null 2>&1 &
|
||||
echo "$(date "+%Y-%m-%d %H:%M:%S") Netflix shunt:$($bin -version | head -1) Started!" >>/tmp/ssrplus.log
|
||||
;;
|
||||
xray)
|
||||
lua /usr/share/shadowsocksr/gen${type}config.lua $NETFLIX_SERVER tcp 4321 1088 >/var/etc/xray-ssr-netflix.json
|
||||
sed -i 's/\\//g' /var/etc/xray-ssr-netflix.json
|
||||
$bin -config /var/etc/xray-ssr-netflix.json >/dev/null 2>&1 &
|
||||
dns2socks 127.0.0.1:1088 8.8.8.8:53 127.0.0.1:5555 -q >/dev/null 2>&1 &
|
||||
echo "$(date "+%Y-%m-%d %H:%M:%S") Netflix shunt:$($bin -version | head -1) Started!" >>/tmp/ssrplus.log
|
||||
;;
|
||||
trojan)
|
||||
lua /usr/share/shadowsocksr/gentrojanconfig.lua $NETFLIX_SERVER nat 4321 >/var/etc/trojan-ssr-netflix.json
|
||||
sed -i 's/\\//g' /var/etc/trojan-ssr-netflix.json
|
||||
@ -532,6 +554,12 @@ start_local() {
|
||||
$bin -config /var/etc/v2-ssr-local.json >/dev/null 2>&1 &
|
||||
echo "$(date "+%Y-%m-%d %H:%M:%S") Global_Socks5:$($bin -version | head -1) Started!" >>/tmp/ssrplus.log
|
||||
;;
|
||||
xray)
|
||||
lua /usr/share/shadowsocksr/gen${type}config.lua $local_server tcp 0 $(uci_get_by_type socks5_proxy local_port 1080) >/var/etc/xray-ssr-local.json
|
||||
sed -i 's/\\//g' /var/etc/xray-ssr-local.json
|
||||
$bin -config /var/etc/xray-ssr-local.json >/dev/null 2>&1 &
|
||||
echo "$(date "+%Y-%m-%d %H:%M:%S") Global_Socks5:$($bin -version | head -1) Started!" >>/tmp/ssrplus.log
|
||||
;;
|
||||
trojan)
|
||||
lua /usr/share/shadowsocksr/gentrojanconfig.lua $local_server client $(uci_get_by_type socks5_proxy local_port 1080) >/var/etc/trojan-ssr-local.json
|
||||
sed -i 's/\\//g' /var/etc/trojan-ssr-local.json
|
||||
@ -798,8 +826,8 @@ stop() {
|
||||
ps -w | grep -v "grep" | grep ssr-monitor | awk '{print $1}' | xargs kill -9 >/dev/null 2>&1 &
|
||||
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
|
||||
killall -q -9 ss-redir ss-local obfs-local ssr-redir ssr-local ssr-server v2ray v2ray-plugin xray trojan naive microsocks ipt2socks dns2socks redsocks2 pdnsd
|
||||
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
|
||||
|
||||
0
package/lean/luci-app-ssr-plus/root/etc/ssr/ad.conf
Normal file
0
package/lean/luci-app-ssr-plus/root/etc/ssr/ad.conf
Normal file
@ -264,6 +264,9 @@
|
||||
42.242.0.0/15
|
||||
42.244.0.0/14
|
||||
42.248.0.0/13
|
||||
43.136.0.0/13
|
||||
43.144.0.0/12
|
||||
43.160.0.0/11
|
||||
43.224.12.0/22
|
||||
43.224.24.0/22
|
||||
43.224.44.0/22
|
||||
@ -953,7 +956,6 @@
|
||||
43.251.232.0/22
|
||||
43.251.236.0/22
|
||||
43.251.244.0/22
|
||||
43.252.40.0/22
|
||||
43.252.48.0/22
|
||||
43.252.56.0/22
|
||||
43.252.224.0/22
|
||||
@ -1112,7 +1114,6 @@
|
||||
45.120.164.0/22
|
||||
45.120.220.0/22
|
||||
45.120.240.0/22
|
||||
45.121.20.0/22
|
||||
45.121.52.0/22
|
||||
45.121.64.0/22
|
||||
45.121.68.0/22
|
||||
@ -1223,7 +1224,6 @@
|
||||
45.125.16.0/22
|
||||
45.125.24.0/22
|
||||
45.125.28.0/22
|
||||
45.125.32.0/22
|
||||
45.125.44.0/22
|
||||
45.125.52.0/22
|
||||
45.125.56.0/22
|
||||
@ -1249,7 +1249,6 @@
|
||||
45.127.12.0/22
|
||||
45.127.96.0/22
|
||||
45.127.116.0/22
|
||||
45.127.124.0/22
|
||||
45.127.128.0/22
|
||||
45.127.144.0/22
|
||||
45.127.148.0/22
|
||||
@ -1289,7 +1288,6 @@
|
||||
45.249.36.0/22
|
||||
45.249.92.0/22
|
||||
45.249.112.0/22
|
||||
45.249.180.0/22
|
||||
45.249.188.0/22
|
||||
45.249.192.0/22
|
||||
45.249.196.0/22
|
||||
@ -1471,8 +1469,6 @@
|
||||
45.253.236.0/22
|
||||
45.253.240.0/22
|
||||
45.253.244.0/22
|
||||
45.253.248.0/22
|
||||
45.253.252.0/22
|
||||
45.254.0.0/22
|
||||
45.254.4.0/22
|
||||
45.254.8.0/22
|
||||
@ -1784,7 +1780,9 @@
|
||||
61.29.128.0/18
|
||||
61.29.192.0/19
|
||||
61.29.224.0/20
|
||||
61.29.240.0/20
|
||||
61.29.240.0/21
|
||||
61.29.248.0/22
|
||||
61.29.254.0/23
|
||||
61.45.128.0/18
|
||||
61.45.224.0/20
|
||||
61.47.128.0/18
|
||||
@ -2080,7 +2078,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
|
||||
@ -3269,7 +3266,6 @@
|
||||
103.86.32.0/22
|
||||
103.86.44.0/22
|
||||
103.86.60.0/22
|
||||
103.86.68.0/22
|
||||
103.86.80.0/22
|
||||
103.86.84.0/22
|
||||
103.86.88.0/22
|
||||
@ -3399,7 +3395,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
|
||||
@ -3774,7 +3769,6 @@
|
||||
103.119.224.0/22
|
||||
103.120.52.0/22
|
||||
103.120.72.0/22
|
||||
103.120.76.0/24
|
||||
103.120.88.0/22
|
||||
103.120.96.0/22
|
||||
103.120.100.0/22
|
||||
@ -3915,9 +3909,7 @@
|
||||
103.141.58.0/23
|
||||
103.141.128.0/23
|
||||
103.141.186.0/23
|
||||
103.141.190.0/23
|
||||
103.141.242.0/23
|
||||
103.142.0.0/23
|
||||
103.142.28.0/23
|
||||
103.142.58.0/23
|
||||
103.142.82.0/23
|
||||
@ -4081,6 +4073,37 @@
|
||||
103.155.16.0/23
|
||||
103.155.34.0/23
|
||||
103.155.48.0/23
|
||||
103.155.76.0/23
|
||||
103.155.100.0/23
|
||||
103.155.110.0/23
|
||||
103.155.120.0/23
|
||||
103.155.214.0/23
|
||||
103.155.248.0/23
|
||||
103.156.24.0/23
|
||||
103.156.28.0/23
|
||||
103.156.68.0/23
|
||||
103.156.78.0/23
|
||||
103.156.104.0/23
|
||||
103.156.158.0/23
|
||||
103.156.166.0/23
|
||||
103.156.174.0/23
|
||||
103.156.186.0/23
|
||||
103.156.228.0/23
|
||||
103.157.30.0/23
|
||||
103.157.138.0/23
|
||||
103.157.174.0/23
|
||||
103.157.212.0/23
|
||||
103.157.234.0/23
|
||||
103.157.254.0/23
|
||||
103.158.0.0/23
|
||||
103.158.8.0/23
|
||||
103.158.13.0/24
|
||||
103.158.16.0/23
|
||||
103.158.190.0/23
|
||||
103.158.200.0/23
|
||||
103.158.224.0/23
|
||||
103.159.80.0/23
|
||||
103.159.122.0/23
|
||||
103.192.0.0/22
|
||||
103.192.4.0/22
|
||||
103.192.8.0/22
|
||||
@ -4117,7 +4140,6 @@
|
||||
103.193.124.0/22
|
||||
103.193.140.0/22
|
||||
103.193.144.0/22
|
||||
103.193.148.0/22
|
||||
103.193.160.0/22
|
||||
103.193.188.0/22
|
||||
103.193.192.0/22
|
||||
@ -4136,8 +4158,6 @@
|
||||
103.195.148.0/22
|
||||
103.195.152.0/22
|
||||
103.195.160.0/22
|
||||
103.195.192.0/22
|
||||
103.196.60.0/22
|
||||
103.196.64.0/22
|
||||
103.196.72.0/22
|
||||
103.196.88.0/22
|
||||
@ -4170,7 +4190,6 @@
|
||||
103.199.248.0/22
|
||||
103.199.252.0/22
|
||||
103.200.28.0/22
|
||||
103.200.32.0/22
|
||||
103.200.52.0/22
|
||||
103.200.64.0/22
|
||||
103.200.68.0/22
|
||||
@ -4549,7 +4568,6 @@
|
||||
103.218.84.0/22
|
||||
103.218.88.0/22
|
||||
103.218.92.0/22
|
||||
103.218.184.0/22
|
||||
103.218.192.0/22
|
||||
103.218.196.0/22
|
||||
103.218.200.0/22
|
||||
@ -4797,7 +4815,6 @@
|
||||
103.227.212.0/22
|
||||
103.227.228.0/22
|
||||
103.228.12.0/22
|
||||
103.228.28.0/22
|
||||
103.228.88.0/22
|
||||
103.228.128.0/22
|
||||
103.228.136.0/22
|
||||
@ -5088,7 +5105,6 @@
|
||||
103.251.160.0/22
|
||||
103.251.192.0/22
|
||||
103.251.204.0/22
|
||||
103.251.236.0/22
|
||||
103.251.240.0/22
|
||||
103.252.28.0/22
|
||||
103.252.36.0/22
|
||||
@ -5300,7 +5316,6 @@
|
||||
113.208.128.0/17
|
||||
113.209.0.0/16
|
||||
113.212.0.0/18
|
||||
113.212.64.0/22
|
||||
113.212.88.0/22
|
||||
113.212.100.0/22
|
||||
113.212.184.0/21
|
||||
@ -5328,7 +5343,8 @@
|
||||
114.111.160.0/19
|
||||
114.112.0.0/14
|
||||
114.116.0.0/16
|
||||
114.117.0.0/16
|
||||
114.117.0.0/17
|
||||
114.117.128.0/17
|
||||
114.118.0.0/16
|
||||
114.119.0.0/17
|
||||
114.119.192.0/21
|
||||
@ -5442,7 +5458,6 @@
|
||||
116.204.168.0/22
|
||||
116.204.216.0/22
|
||||
116.204.232.0/22
|
||||
116.204.236.0/22
|
||||
116.205.0.0/16
|
||||
116.206.92.0/22
|
||||
116.206.176.0/22
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@ -11,21 +11,58 @@ set firewall.shadowsocksr.path=/var/etc/shadowsocksr.include
|
||||
set firewall.shadowsocksr.reload=1
|
||||
commit firewall
|
||||
EOF
|
||||
rm -rf /etc/config/shadowsocksr-opkg /etc/ssr/*opkg
|
||||
touch /etc/ssr/china_ssr.txt
|
||||
touch /etc/ssr/deny.list
|
||||
touch /etc/ssr/white.list
|
||||
touch /etc/ssr/black.list
|
||||
touch /etc/ssr/netflix.list
|
||||
touch /etc/ssr/netflixip.list
|
||||
touch /etc/ssr/ad.conf
|
||||
touch /etc/ssr/gfw_base.conf
|
||||
touch /etc/ssr/gfw_list.conf
|
||||
touch /etc/ssr/deny.list
|
||||
#chmod 0755 /etc/init.d/shadowsocksr /usr/bin/ssr-* /usr/share/shadowsocksr/*.sh
|
||||
#chmod 0644 /etc/ssr/* \
|
||||
#/usr/share/shadowsocksr/*.lua \
|
||||
#/usr/share/rpcd/acl.d/luci-app-ssr-plus.json \
|
||||
#/usr/lib/lua/luci/controller/shadowsocksr.lua \
|
||||
#/usr/lib/lua/luci/model/cbi/shadowsocksr/*.lua \
|
||||
#/usr/lib/lua/luci/view/shadowsocksr/*.htm
|
||||
#chmod 0600 /etc/config/shadowsocksr
|
||||
touch /etc/ssr/oversea_list.conf
|
||||
touch /etc/ssr/ad.conf
|
||||
touch /etc/config/shadowsocksr
|
||||
if [ ! -s "/etc/config/shadowsocksr" ] ; then
|
||||
uci -q batch <<-EOF >/dev/null
|
||||
add shadowsocksr global
|
||||
set shadowsocksr.@global[0].global_server='nil'
|
||||
set shadowsocksr.@global[0].netflix_server='nil'
|
||||
set shadowsocksr.@global[0].netflix_proxy='0'
|
||||
set shadowsocksr.@global[0].threads='0'
|
||||
set shadowsocksr.@global[0].run_mode='router'
|
||||
set shadowsocksr.@global[0].dports='2'
|
||||
set shadowsocksr.@global[0].pdnsd_enable='1'
|
||||
set shadowsocksr.@global[0].tunnel_forward='8.8.4.4:53'
|
||||
set shadowsocksr.@global[0].monitor_enable='1'
|
||||
set shadowsocksr.@global[0].enable_switch='1'
|
||||
set shadowsocksr.@global[0].switch_time='667'
|
||||
set shadowsocksr.@global[0].switch_timeout='5'
|
||||
set shadowsocksr.@global[0].switch_try_count='3'
|
||||
set shadowsocksr.@global[0].gfwlist_url='https://cdn.jsdelivr.net/gh/v2fly/domain-list-community@release/gfwlist.txt'
|
||||
set shadowsocksr.@global[0].chnroute_url='https://ispip.clang.cn/all_cn.txt'
|
||||
set shadowsocksr.@global[0].nfip_url='https://cdn.jsdelivr.net/gh/QiuSimons/Netflix_IP/getflix.txt'
|
||||
set shadowsocksr.@global[0].adblock_url='https://anti-ad.net/anti-ad-for-dnsmasq.conf'
|
||||
add shadowsocksr server_subscribe
|
||||
set shadowsocksr.@server_subscribe[0].proxy='0'
|
||||
set shadowsocksr.@server_subscribe[0].auto_update_time='2'
|
||||
set shadowsocksr.@server_subscribe[0].auto_update='1'
|
||||
set shadowsocksr.@server_subscribe[0].filter_words='过期时间/剩余流量/QQ群/官网/防失联地址/回国'
|
||||
add shadowsocksr access_control
|
||||
set shadowsocksr.@access_control[0].lan_ac_mode='0'
|
||||
set shadowsocksr.@access_control[0].router_proxy='1'
|
||||
add_list shadowsocksr.@access_control[0].wan_fw_ips=149.154.160.0/20
|
||||
add_list shadowsocksr.@access_control[0].wan_fw_ips=67.198.55.0/24
|
||||
add_list shadowsocksr.@access_control[0].wan_fw_ips=91.108.4.0/22
|
||||
add_list shadowsocksr.@access_control[0].wan_fw_ips=91.108.56.0/22
|
||||
add_list shadowsocksr.@access_control[0].wan_fw_ips=109.239.140.0/24
|
||||
add shadowsocksr socks5_proxy
|
||||
set shadowsocksr.@socks5_proxy[0].server='nil'
|
||||
set shadowsocksr.@socks5_proxy[0].local_port='1080'
|
||||
add shadowsocksr server_global
|
||||
set shadowsocksr.@server_global[0].enable_server='0'
|
||||
commit shadowsocksr
|
||||
EOF
|
||||
fi
|
||||
rm -rf /tmp/luci-modulecache /tmp/luci-indexcache
|
||||
exit 0
|
||||
|
||||
@ -1,9 +0,0 @@
|
||||
/etc/config/shadowsocksr
|
||||
/etc/ssr/china_ssr.txt
|
||||
/etc/ssr/white.list
|
||||
/etc/ssr/black.list
|
||||
/etc/ssr/netflix.list
|
||||
/etc/ssr/netflixip.list
|
||||
/etc/ssr/gfw_list.conf
|
||||
/etc/ssr/ad.conf
|
||||
/etc/ssr/deny.list
|
||||
@ -39,8 +39,10 @@ Valid options are:
|
||||
-U enable udprelay mode, using different IP
|
||||
and ports for TCP and UDP
|
||||
-f flush the rules
|
||||
-g gfw list mode
|
||||
-r return china mode
|
||||
-g gfwlist mode
|
||||
-r router mode
|
||||
-c oversea mode
|
||||
-z all mode
|
||||
-h show this help message and exit
|
||||
EOF
|
||||
exit $1
|
||||
@ -79,40 +81,36 @@ flush_r() {
|
||||
}
|
||||
|
||||
ipset_r() {
|
||||
[ -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)
|
||||
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 -N SS_SPEC_WAN_AC
|
||||
$IPT -I SS_SPEC_WAN_AC -p tcp ! --dport 53 -d $server -j RETURN
|
||||
$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
|
||||
;;
|
||||
gfw)
|
||||
ipset -N gfwlist hash:net 2>/dev/null
|
||||
$IPT -N SS_SPEC_WAN_AC
|
||||
$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 -m set --match-set china dst -j RETURN
|
||||
$IPT -I SS_SPEC_WAN_AC -p tcp ! --dport 53 -d $server -j RETURN
|
||||
;;
|
||||
oversea)
|
||||
ipset -N oversea hash:net 2>/dev/null
|
||||
$IPT -N SS_SPEC_WAN_AC
|
||||
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
|
||||
$IPT -I SS_SPEC_WAN_AC -p tcp ! --dport 53 -d $server -j RETURN
|
||||
;;
|
||||
all)
|
||||
$IPT -N SS_SPEC_WAN_AC
|
||||
$IPT -A SS_SPEC_WAN_AC -j SS_SPEC_WAN_FW
|
||||
$IPT -I SS_SPEC_WAN_AC -p tcp ! --dport 53 -d $server -j RETURN
|
||||
;;
|
||||
esac
|
||||
ipset -N fplan hash:net 2>/dev/null
|
||||
@ -183,17 +181,19 @@ ac_rule() {
|
||||
;;
|
||||
esac
|
||||
fi
|
||||
IFNAME=$(uci get -P/var/state network.lan.ifname 2>/dev/null)
|
||||
IFNAME=$(uci -P /var/state get network.lan.ifname 2>/dev/null)
|
||||
ipset -! -R <<-EOF || return 1
|
||||
create ss_spec_lan_ac hash:net
|
||||
$(for ip in ${LAN_AC_IP:1}; do echo "add ss_spec_lan_ac $ip"; done)
|
||||
EOF
|
||||
$IPT -I PREROUTING 1 ${IFNAME:+-i $IFNAME} -p tcp $EXT_ARGS $MATCH_SET \
|
||||
-m comment --comment "$TAG" -j SS_SPEC_WAN_AC
|
||||
if [ "$OUTPUT" = 1 ]; then
|
||||
case "$OUTPUT" in
|
||||
1)
|
||||
$IPT -I OUTPUT 1 -p tcp $EXT_ARGS \
|
||||
-m comment --comment "$TAG" -j SS_SPEC_WAN_AC
|
||||
elif [ "$OUTPUT" = 2 ]; then
|
||||
;;
|
||||
2)
|
||||
ipset -! -R <<-EOF || return 1
|
||||
create ssr_gen_router hash:net
|
||||
$(gen_spec_iplist | sed -e "s/^/add ssr_gen_router /")
|
||||
@ -202,7 +202,8 @@ ac_rule() {
|
||||
$IPT -A SS_SPEC_ROUTER -m set --match-set ssr_gen_router dst -j RETURN && \
|
||||
$IPT -A SS_SPEC_ROUTER -j SS_SPEC_WAN_FW
|
||||
$IPT -I OUTPUT 1 -p tcp -m comment --comment "$TAG" -j SS_SPEC_ROUTER
|
||||
fi
|
||||
;;
|
||||
esac
|
||||
return $?
|
||||
}
|
||||
|
||||
@ -223,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
|
||||
@ -262,29 +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)
|
||||
$(cat ${IGNORE_LIST:=/dev/null} 2>/dev/null)
|
||||
EOF
|
||||
}
|
||||
|
||||
gen_spec_iplist() {
|
||||
cat <<-EOF
|
||||
0.0.0.0/8
|
||||
@ -414,14 +393,18 @@ if [ -z "$server" -o -z "$local_port" ]; then
|
||||
usage 2
|
||||
fi
|
||||
|
||||
if [ "$TPROXY" == 1 ]; then
|
||||
SERVER=$server
|
||||
LOCAL_PORT=$local_port
|
||||
elif [ "$TPROXY" == 2 ]; then
|
||||
: ${SERVER:?"You must assign an ip for the udp relay server."}
|
||||
: ${LOCAL_PORT:?"You must assign a port for the udp relay server."}
|
||||
fi
|
||||
case "$TPROXY" in
|
||||
1)
|
||||
SERVER=$server
|
||||
LOCAL_PORT=$local_port
|
||||
;;
|
||||
2)
|
||||
: ${SERVER:?"You must assign an ip for the udp relay server."}
|
||||
: ${LOCAL_PORT:?"You must assign a port for the udp relay server."}
|
||||
;;
|
||||
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,9 +1,7 @@
|
||||
#!/bin/sh
|
||||
LOCK_FILE="/var/lock/ssr-chinaipset.lock"
|
||||
[ -f "$LOCK_FILE" ] && exit 2
|
||||
touch "$LOCK_FILE"
|
||||
echo "create china hash:net family inet hashsize 1024 maxelem 65536" >/tmp/china.ipset
|
||||
awk '!/^$/&&!/^#/{printf("add china %s'" "'\n",$0)}' /etc/ssr/china_ssr.txt >>/tmp/china.ipset
|
||||
ipset -! flush china
|
||||
ipset -! restore </tmp/china.ipset 2>/dev/null
|
||||
rm -f /tmp/china.ipset $LOCK_FILE
|
||||
[ -f "$1" ] && china_ip=$1
|
||||
ipset -! flush china 2>/dev/null
|
||||
ipset -! -R <<-EOF || exit 1
|
||||
create china hash:net
|
||||
$(cat ${china_ip:=/etc/ssr/china_ssr.txt} | sed -e "s/^/add china /")
|
||||
EOF
|
||||
|
||||
@ -78,7 +78,8 @@ outbound = {
|
||||
writeBufferSize = tonumber(server.write_buffer_size),
|
||||
header = {
|
||||
type = server.kcp_guise
|
||||
}
|
||||
},
|
||||
seed = server.seed or nil
|
||||
} or nil,
|
||||
wsSettings = (server.transport == "ws") and (server.ws_path ~= nil or server.ws_host ~= nil) and {
|
||||
path = server.ws_path,
|
||||
|
||||
@ -89,7 +89,8 @@ outbound = {
|
||||
writeBufferSize = tonumber(server.write_buffer_size),
|
||||
header = {
|
||||
type = server.kcp_guise
|
||||
}
|
||||
},
|
||||
seed = server.seed or nil
|
||||
} or nil,
|
||||
wsSettings = (server.transport == "ws") and (server.ws_path ~= nil or server.ws_host ~= nil) and {
|
||||
path = server.ws_path,
|
||||
|
||||
@ -0,0 +1,127 @@
|
||||
local ucursor = require "luci.model.uci".cursor()
|
||||
local json = require "luci.jsonc"
|
||||
local server_section = arg[1]
|
||||
local proto = arg[2]
|
||||
local local_port = arg[3] or "0"
|
||||
local socks_port = arg[4] or "0"
|
||||
local server = ucursor:get_all("shadowsocksr", server_section)
|
||||
local outbound_security = "none"
|
||||
|
||||
if (server.xtls == '1')
|
||||
then
|
||||
outbound_security = "xtls"
|
||||
elseif (server.tls == '1')
|
||||
then
|
||||
outbound_security = "tls"
|
||||
end
|
||||
|
||||
local vless = {
|
||||
log = {
|
||||
-- error = "/var/ssrplus.log",
|
||||
loglevel = "warning"
|
||||
},
|
||||
-- 传入连接
|
||||
inbound = (local_port ~= "0") and {
|
||||
port = local_port,
|
||||
protocol = "dokodemo-door",
|
||||
settings = {
|
||||
network = proto,
|
||||
followRedirect = true
|
||||
},
|
||||
sniffing = {
|
||||
enabled = true,
|
||||
destOverride = { "http", "tls" }
|
||||
}
|
||||
} or nil,
|
||||
-- 开启 socks 代理
|
||||
inboundDetour = (proto == "tcp" and socks_port ~= "0") and {
|
||||
{
|
||||
protocol = "socks",
|
||||
port = socks_port,
|
||||
settings = {
|
||||
auth = "noauth",
|
||||
udp = true
|
||||
}
|
||||
}
|
||||
} or nil,
|
||||
-- 传出连接
|
||||
outbound = {
|
||||
protocol = "vless",
|
||||
settings = {
|
||||
vnext = {
|
||||
{
|
||||
address = server.server,
|
||||
port = tonumber(server.server_port),
|
||||
users = {
|
||||
{
|
||||
id = server.vmess_id,
|
||||
flow = (server.xtls == '1') and (server.vless_flow and server.vless_flow or "xtls-rprx-origin") or nil,
|
||||
encryption = server.vless_encryption
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
-- 底层传输配置
|
||||
streamSettings = {
|
||||
network = server.transport,
|
||||
security = outbound_security,
|
||||
tlsSettings = (outbound_security == "tls") and {allowInsecure = (server.insecure ~= "0") and true or false,serverName=server.tls_host,} or nil,
|
||||
xtlsSettings = (outbound_security == "xtls") and {allowInsecure = (server.insecure ~= "0") and true or false,serverName=server.tls_host,} or nil,
|
||||
tcpSettings = (server.transport == "tcp") and {
|
||||
header = {
|
||||
type = server.tcp_guise,
|
||||
request = {
|
||||
path = server.http_path or {"/"},
|
||||
headers = {
|
||||
Host = server.http_host or {}
|
||||
}
|
||||
} or {}
|
||||
}
|
||||
} or nil,
|
||||
kcpSettings = (server.transport == "kcp") and {
|
||||
mtu = tonumber(server.mtu),
|
||||
tti = tonumber(server.tti),
|
||||
uplinkCapacity = tonumber(server.uplink_capacity),
|
||||
downlinkCapacity = tonumber(server.downlink_capacity),
|
||||
congestion = (server.congestion == "1") and true or false,
|
||||
readBufferSize = tonumber(server.read_buffer_size),
|
||||
writeBufferSize = tonumber(server.write_buffer_size),
|
||||
header = {
|
||||
type = server.kcp_guise
|
||||
},
|
||||
seed = server.seed or nil
|
||||
} or nil,
|
||||
wsSettings = (server.transport == "ws") and (server.ws_path ~= nil or server.ws_host ~= nil) and {
|
||||
path = server.ws_path,
|
||||
headers = (server.ws_host ~= nil) and {
|
||||
Host = server.ws_host
|
||||
} or nil,
|
||||
} or nil,
|
||||
httpSettings = (server.transport == "h2") and {
|
||||
path = server.h2_path,
|
||||
host = server.h2_host,
|
||||
} or nil,
|
||||
quicSettings = (server.transport == "quic") and {
|
||||
security = server.quic_security,
|
||||
key = server.quic_key,
|
||||
header = {
|
||||
type = server.quic_guise
|
||||
}
|
||||
} or nil
|
||||
},
|
||||
mux = {
|
||||
enabled = (server.mux == "1") and true or false,
|
||||
concurrency = tonumber(server.concurrency)
|
||||
}
|
||||
},
|
||||
-- 额外传出连接
|
||||
outboundDetour = {
|
||||
{
|
||||
protocol = "freedom",
|
||||
tag = "direct",
|
||||
settings = { keep = "" }
|
||||
}
|
||||
}
|
||||
}
|
||||
print(json.stringify(vless, 1))
|
||||
@ -10,6 +10,15 @@ 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
|
||||
@ -40,11 +49,13 @@ awk '!/^$/&&!/^#/{printf("server=/%s/'"127.0.0.1#5335"'\n",$0)}' /etc/ssr/black.
|
||||
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/
|
||||
[ -z "$switch_server" ] && cp -f /etc/ssr/ad.conf /tmp/dnsmasq.ssr/
|
||||
if [ -f "/tmp/dnsmasq.ssr/ad.conf" ]; then
|
||||
for line in $(cat /etc/ssr/black.list); do sed -i "/$line/d" /tmp/dnsmasq.ssr/ad.conf; done
|
||||
for line in $(cat /etc/ssr/white.list); do sed -i "/$line/d" /tmp/dnsmasq.ssr/ad.conf; done
|
||||
for line in $(cat /etc/ssr/deny.list); do sed -i "/$line/d" /tmp/dnsmasq.ssr/ad.conf; done
|
||||
for line in $(cat /etc/ssr/netflix.list); do sed -i "/$line/d" /tmp/dnsmasq.ssr/ad.conf; done
|
||||
fi
|
||||
else
|
||||
rm -f /tmp/dnsmasq.ssr/ad.conf
|
||||
fi
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
#!/bin/sh
|
||||
/usr/bin/lua /usr/share/shadowsocksr/update.lua
|
||||
sleep 2s
|
||||
/usr/share/shadowsocksr/chinaipset.sh
|
||||
/usr/share/shadowsocksr/chinaipset.sh /tmp/etc/china_ssr.txt
|
||||
sleep 2s
|
||||
/usr/bin/lua /usr/share/shadowsocksr/subscribe.lua
|
||||
|
||||
@ -40,9 +40,9 @@ local function update(url, file, type, file2)
|
||||
end
|
||||
|
||||
log("正在更新【GFW列表】数据库")
|
||||
update(uci:get_first("shadowsocksr", "global", "gfwlist_url", "https://cdn.jsdelivr.net/gh/gfwlist/gfwlist/gfwlist.txt"), "/etc/ssr/gfw_list.conf", "gfw_data", "/tmp/dnsmasq.ssr/gfw_list.conf")
|
||||
update(uci:get_first("shadowsocksr", "global", "gfwlist_url", "https://cdn.jsdelivr.net/gh/v2fly/domain-list-community@release/gfwlist.txt"), "/etc/ssr/gfw_list.conf", "gfw_data", "/tmp/dnsmasq.ssr/gfw_list.conf")
|
||||
log("正在更新【国内IP段】数据库")
|
||||
update(uci:get_first("shadowsocksr", "global", "chnroute_url","https://ispip.clang.cn/all_cn.txt"), "/etc/ssr/china_ssr.txt", "cnip")
|
||||
update(uci:get_first("shadowsocksr", "global", "chnroute_url","https://ispip.clang.cn/all_cn.txt"), "/etc/ssr/china_ssr.txt", "cnip", "/tmp/etc/china_ssr.txt")
|
||||
if uci:get_first("shadowsocksr", "global", "adblock","0") == "1" then
|
||||
log("正在更新【广告屏蔽】数据库")
|
||||
update(uci:get_first("shadowsocksr", "global", "adblock_url","https://easylist-downloads.adblockplus.org/easylistchina+easylist.txt"), "/etc/ssr/ad.conf", "ad_data", "/tmp/dnsmasq.ssr/ad.conf")
|
||||
|
||||
Loading…
Reference in New Issue
Block a user