2023.08.13 Update
This commit is contained in:
parent
1e22f344f8
commit
fd612b0673
@ -7,9 +7,9 @@
|
||||
include $(TOPDIR)/rules.mk
|
||||
|
||||
PKG_NAME:=alist
|
||||
PKG_VERSION:=3.24.0
|
||||
PKG_WEB_VERSION:=3.24.0
|
||||
PKG_RELEASE:=70
|
||||
PKG_VERSION:=3.25.1
|
||||
PKG_WEB_VERSION:=3.25.1
|
||||
PKG_RELEASE:=72
|
||||
|
||||
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
|
||||
PKG_SOURCE_URL:=https://codeload.github.com/alist-org/alist/tar.gz/v$(PKG_VERSION)?
|
||||
@ -23,7 +23,7 @@ define Download/$(PKG_NAME)-web
|
||||
FILE:=$(PKG_NAME)-web-$(PKG_WEB_VERSION).tar.gz
|
||||
URL_FILE:=dist.tar.gz
|
||||
URL:=https://github.com/alist-org/alist-web/releases/download/$(PKG_WEB_VERSION)/
|
||||
HASH:=cdb0a1445a2d7f96d33bb5c23cab27759d43d6361cb424be921bf40c470d3351
|
||||
HASH:=0074991fbb14e73435f91dce71be646312391930fcb48931bb953ff50c1bd6e9
|
||||
endef
|
||||
|
||||
PKG_BUILD_DEPENDS:=golang/host
|
||||
@ -46,7 +46,7 @@ define Package/$(PKG_NAME)
|
||||
SUBMENU:=Web Servers/Proxies
|
||||
TITLE:=A file list program that supports multiple storage
|
||||
URL:=https://alist-doc.nn.ci/
|
||||
DEPENDS:=$(GO_ARCH_DEPENDS)
|
||||
DEPENDS:=$(GO_ARCH_DEPENDS) +ca-bundle
|
||||
endef
|
||||
|
||||
define Package/$(PKG_NAME)/description
|
||||
|
@ -1,12 +1,12 @@
|
||||
include $(TOPDIR)/rules.mk
|
||||
|
||||
PKG_NAME:=chinadns-ng
|
||||
PKG_VERSION:=2023.06.01
|
||||
PKG_RELEASE:=40
|
||||
PKG_VERSION:=2023.06.05
|
||||
PKG_RELEASE:=41
|
||||
|
||||
PKG_SOURCE_PROTO:=git
|
||||
PKG_SOURCE_URL:=https://github.com/zfl9/chinadns-ng.git
|
||||
PKG_SOURCE_VERSION:=2389c57c79c3fe97ad9fb125f05efb29b11299e8
|
||||
PKG_SOURCE_VERSION:=33e75ed57a8dd152ab67451216384ca1b23b9d66
|
||||
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION)-$(PKG_SOURCE_VERSION).tar.gz
|
||||
PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION)-$(PKG_SOURCE_VERSION)
|
||||
PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)/$(PKG_SOURCE_SUBDIR)
|
||||
|
@ -5,17 +5,18 @@ config chinadns-ng
|
||||
option bind_port '5353'
|
||||
option china_dns '223.5.5.5,119.29.29.29'
|
||||
option trust_dns '8.8.8.8,8.8.4.4'
|
||||
option chnlist_file '/etc/chinadns-ng/chinalist.txt'
|
||||
option gfwlist_file '/etc/chinadns-ng/gfwlist.txt'
|
||||
option chnlist_first '0'
|
||||
option default_tag 'none'
|
||||
option add_tagchn_ip '0'
|
||||
option add_taggfw_ip '0'
|
||||
option ipset_name4 'chnroute'
|
||||
option ipset_name6 'chnroute6'
|
||||
option gfwlist_file '/etc/chinadns-ng/gfwlist.txt'
|
||||
#option chnlist_file '/etc/chinadns-ng/chinalist.txt'
|
||||
option default_tag 'none'
|
||||
option no_ipv6 '0'
|
||||
option timeout_sec '3'
|
||||
option repeat_times '2'
|
||||
option no_ipv6 '0'
|
||||
option chnlist_first '0'
|
||||
option add_tagchn_ip '0'
|
||||
option reuse_port '1'
|
||||
option noip_as_chnip '0'
|
||||
option reuse_port '1'
|
||||
option verbose '0'
|
||||
|
||||
|
@ -58,7 +58,7 @@ append_param_with_val() {
|
||||
if [ "$_loctmp" = 1 ]; then
|
||||
procd_append_param command "$switch"
|
||||
else
|
||||
procd_append_param command "${switch}=${_loctmp}"
|
||||
procd_append_param command "$switch" "$_loctmp"
|
||||
fi
|
||||
}
|
||||
|
||||
@ -153,18 +153,19 @@ start_chinadns_ng() {
|
||||
append_param "$1" bind_port "-l"
|
||||
append_param "$1" china_dns "-c"
|
||||
append_param "$1" trust_dns "-t"
|
||||
append_param "$1" chnlist_file "-m"
|
||||
append_param "$1" gfwlist_file "-g"
|
||||
append_bool "$1" chnlist_first "-M"
|
||||
append_param_if_neq "$1" default_tag "-d" "none"
|
||||
append_param_with_val "$1" add_tagchn_ip "-a"
|
||||
append_param_with_val "$1" add_taggfw_ip "-A"
|
||||
append_param_if_neq "$1" ipset_name4 "-4" "chnroute"
|
||||
append_param_if_neq "$1" ipset_name6 "-6" "chnroute6"
|
||||
append_param "$1" gfwlist_file "-g"
|
||||
append_param "$1" chnlist_file "-m"
|
||||
append_param_if_neq "$1" default_tag "-d" "none"
|
||||
append_param_with_val "$1" no_ipv6 "-N"
|
||||
append_param_if_neq "$1" timeout_sec "-o" "5"
|
||||
append_param_if_neq "$1" repeat_times "-p" "1"
|
||||
append_param_with_val "$1" no_ipv6 "-N"
|
||||
append_bool "$1" chnlist_first "-M"
|
||||
append_bool "$1" add_tagchn_ip "-a"
|
||||
append_bool "$1" reuse_port "-r"
|
||||
append_bool "$1" noip_as_chnip "-n"
|
||||
append_bool "$1" reuse_port "-r"
|
||||
append_bool "$1" verbose "-v"
|
||||
procd_close_instance
|
||||
done
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -996,9 +996,8 @@
|
||||
61.29.128.0/18
|
||||
61.29.192.0/19
|
||||
61.29.224.0/20
|
||||
61.29.240.0/21
|
||||
61.29.240.0/22
|
||||
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
|
||||
@ -1119,6 +1118,7 @@
|
||||
103.2.108.0/22
|
||||
103.2.156.0/22
|
||||
103.2.164.0/22
|
||||
103.2.188.0/23
|
||||
103.2.200.0/21
|
||||
103.2.208.0/21
|
||||
103.3.84.0/22
|
||||
@ -1169,7 +1169,7 @@
|
||||
103.11.168.0/22
|
||||
103.11.180.0/22
|
||||
103.12.32.0/22
|
||||
103.12.68.0/22
|
||||
103.12.68.0/23
|
||||
103.12.92.0/22
|
||||
103.12.98.0/23
|
||||
103.12.136.0/22
|
||||
@ -1818,7 +1818,6 @@
|
||||
103.88.96.0/22
|
||||
103.88.164.0/22
|
||||
103.88.176.0/22
|
||||
103.88.188.0/22
|
||||
103.88.212.0/22
|
||||
103.89.28.0/22
|
||||
103.89.96.0/20
|
||||
@ -1870,7 +1869,6 @@
|
||||
103.92.240.0/20
|
||||
103.93.0.0/21
|
||||
103.93.28.0/22
|
||||
103.93.76.0/22
|
||||
103.93.84.0/22
|
||||
103.93.142.0/23
|
||||
103.93.152.0/22
|
||||
@ -1984,7 +1982,6 @@
|
||||
103.103.12.0/22
|
||||
103.103.16.0/22
|
||||
103.103.36.0/22
|
||||
103.103.68.0/22
|
||||
103.103.72.0/22
|
||||
103.103.176.0/22
|
||||
103.103.188.0/22
|
||||
@ -1999,7 +1996,7 @@
|
||||
103.104.64.0/22
|
||||
103.104.104.0/22
|
||||
103.104.152.0/22
|
||||
103.104.168.0/21
|
||||
103.104.168.0/22
|
||||
103.104.188.0/22
|
||||
103.104.198.0/23
|
||||
103.104.252.0/22
|
||||
@ -2101,7 +2098,6 @@
|
||||
103.115.148.0/22
|
||||
103.115.204.0/23
|
||||
103.115.248.0/22
|
||||
103.116.20.0/22
|
||||
103.116.40.0/22
|
||||
103.116.64.0/22
|
||||
103.116.72.0/21
|
||||
@ -2192,11 +2188,13 @@
|
||||
103.130.228.0/22
|
||||
103.131.20.0/22
|
||||
103.131.36.0/22
|
||||
103.131.138.0/23
|
||||
103.131.152.0/22
|
||||
103.131.168.0/22
|
||||
103.131.176.0/22
|
||||
103.131.224.0/21
|
||||
103.131.240.0/22
|
||||
103.132.22.0/23
|
||||
103.132.60.0/22
|
||||
103.132.64.0/20
|
||||
103.132.80.0/22
|
||||
@ -2215,6 +2213,7 @@
|
||||
103.133.232.0/22
|
||||
103.134.12.0/24
|
||||
103.134.196.0/22
|
||||
103.134.232.0/23
|
||||
103.135.80.0/22
|
||||
103.135.124.0/22
|
||||
103.135.148.0/22
|
||||
@ -2340,6 +2339,7 @@
|
||||
103.149.242.0/23
|
||||
103.149.244.0/22
|
||||
103.149.248.0/23
|
||||
103.150.10.0/23
|
||||
103.150.24.0/23
|
||||
103.150.66.0/23
|
||||
103.150.72.0/23
|
||||
@ -2431,6 +2431,7 @@
|
||||
103.158.0.0/23
|
||||
103.158.8.0/23
|
||||
103.158.16.0/23
|
||||
103.158.74.0/23
|
||||
103.158.190.0/23
|
||||
103.158.200.0/23
|
||||
103.158.224.0/23
|
||||
@ -2477,6 +2478,7 @@
|
||||
103.166.246.0/23
|
||||
103.167.0.0/23
|
||||
103.167.36.0/23
|
||||
103.167.100.0/23
|
||||
103.168.98.0/23
|
||||
103.168.170.0/23
|
||||
103.169.50.0/23
|
||||
@ -2582,6 +2584,7 @@
|
||||
103.196.185.0/24
|
||||
103.196.186.0/23
|
||||
103.196.204.0/22
|
||||
103.197.0.0/22
|
||||
103.197.180.0/22
|
||||
103.197.228.0/22
|
||||
103.197.253.0/24
|
||||
@ -2726,6 +2729,9 @@
|
||||
103.213.136.0/21
|
||||
103.213.144.0/20
|
||||
103.213.160.0/19
|
||||
103.213.196.0/22
|
||||
103.213.226.0/23
|
||||
103.213.232.0/23
|
||||
103.213.252.0/22
|
||||
103.214.48.0/22
|
||||
103.214.84.0/22
|
||||
@ -2818,6 +2824,7 @@
|
||||
103.224.220.0/22
|
||||
103.224.224.0/21
|
||||
103.224.232.0/22
|
||||
103.225.18.0/24
|
||||
103.225.84.0/22
|
||||
103.226.16.0/22
|
||||
103.226.40.0/22
|
||||
@ -2862,6 +2869,8 @@
|
||||
103.230.28.0/22
|
||||
103.230.40.0/21
|
||||
103.230.96.0/22
|
||||
103.230.110.0/23
|
||||
103.230.128.0/23
|
||||
103.230.196.0/22
|
||||
103.230.200.0/21
|
||||
103.230.212.0/22
|
||||
@ -2875,6 +2884,7 @@
|
||||
103.232.4.0/22
|
||||
103.232.17.168/29
|
||||
103.232.144.0/22
|
||||
103.232.166.0/23
|
||||
103.232.188.0/22
|
||||
103.232.212.0/22
|
||||
103.233.4.0/22
|
||||
@ -2884,6 +2894,7 @@
|
||||
103.233.128.0/22
|
||||
103.233.136.0/22
|
||||
103.233.162.0/23
|
||||
103.233.178.0/23
|
||||
103.233.228.0/22
|
||||
103.234.0.0/22
|
||||
103.234.20.0/22
|
||||
@ -2916,6 +2927,7 @@
|
||||
103.237.24.0/21
|
||||
103.237.68.0/22
|
||||
103.237.88.0/22
|
||||
103.237.92.0/23
|
||||
103.237.152.0/22
|
||||
103.237.176.0/20
|
||||
103.237.192.0/18
|
||||
@ -2929,6 +2941,7 @@
|
||||
103.238.132.0/22
|
||||
103.238.140.0/22
|
||||
103.238.144.0/22
|
||||
103.238.152.0/23
|
||||
103.238.160.0/19
|
||||
103.238.196.0/22
|
||||
103.238.204.0/22
|
||||
@ -2946,17 +2959,20 @@
|
||||
103.239.244.0/22
|
||||
103.240.16.0/22
|
||||
103.240.36.0/22
|
||||
103.240.42.0/23
|
||||
103.240.72.0/22
|
||||
103.240.84.0/22
|
||||
103.240.124.0/22
|
||||
103.240.172.0/22
|
||||
103.240.188.0/22
|
||||
103.240.200.0/22
|
||||
103.240.244.0/22
|
||||
103.241.12.0/22
|
||||
103.241.72.0/22
|
||||
103.241.92.0/22
|
||||
103.241.96.0/22
|
||||
103.241.160.0/22
|
||||
103.241.172.0/23
|
||||
103.241.184.0/21
|
||||
103.241.220.0/22
|
||||
103.242.12.0/22
|
||||
@ -2972,6 +2988,7 @@
|
||||
103.243.136.0/22
|
||||
103.243.252.0/22
|
||||
103.244.16.0/22
|
||||
103.244.26.0/23
|
||||
103.244.58.0/23
|
||||
103.244.60.0/22
|
||||
103.244.64.0/20
|
||||
@ -2981,6 +2998,7 @@
|
||||
103.244.232.0/22
|
||||
103.244.252.0/22
|
||||
103.245.23.0/24
|
||||
103.245.24.0/23
|
||||
103.245.52.0/22
|
||||
103.245.60.0/22
|
||||
103.245.80.0/22
|
||||
@ -2992,6 +3010,7 @@
|
||||
103.246.152.0/21
|
||||
103.247.168.0/21
|
||||
103.247.176.0/22
|
||||
103.247.191.0/24
|
||||
103.247.200.0/22
|
||||
103.247.212.0/22
|
||||
103.248.0.0/23
|
||||
@ -3698,7 +3717,6 @@
|
||||
123.242.192.0/21
|
||||
123.244.0.0/14
|
||||
123.249.0.0/16
|
||||
123.253.108.0/22
|
||||
123.253.240.0/22
|
||||
123.254.96.0/21
|
||||
124.6.64.0/18
|
||||
@ -4151,7 +4169,7 @@
|
||||
192.51.188.0/24
|
||||
192.55.10.0/23
|
||||
192.55.40.0/24
|
||||
192.55.46.0/24
|
||||
192.55.46.0/23
|
||||
192.55.68.0/22
|
||||
192.102.204.0/22
|
||||
192.124.154.0/24
|
||||
|
@ -16,7 +16,6 @@
|
||||
2001:df0:423::/48
|
||||
2001:df0:9c0::/48
|
||||
2001:df0:1bc0::/48
|
||||
2001:df0:2180::/48
|
||||
2001:df0:25c0::/48
|
||||
2001:df0:26c0::/48
|
||||
2001:df0:2d80::/48
|
||||
@ -40,7 +39,6 @@
|
||||
2001:df1:6180::/48
|
||||
2001:df1:61c0::/48
|
||||
2001:df1:6b80::/48
|
||||
2001:df1:8b00::/48
|
||||
2001:df1:a100::/48
|
||||
2001:df1:bd80::/48
|
||||
2001:df1:c900::/48
|
||||
@ -53,7 +51,9 @@
|
||||
2001:df2:80::/48
|
||||
2001:df2:180::/48
|
||||
2001:df2:5780::/48
|
||||
2001:df2:8bc0::/48
|
||||
2001:df2:a580::/48
|
||||
2001:df2:c240::/48
|
||||
2001:df3:1480::/48
|
||||
2001:df3:2a80::/48
|
||||
2001:df3:3a80::/48
|
||||
@ -382,19 +382,26 @@
|
||||
2400:ef40::/32
|
||||
2400:f480::/32
|
||||
2400:f5c0::/32
|
||||
2400:f6e0::/32
|
||||
2400:f720::/32
|
||||
2400:f7c0::/32
|
||||
2400:f840::/32
|
||||
2400:f860::/32
|
||||
2400:f980::/32
|
||||
2400:fac0::/32
|
||||
2400:fb40::/32
|
||||
2400:fb60::/32
|
||||
2400:fbc0::/32
|
||||
2400:fc40::/32
|
||||
2400:fcc0::/32
|
||||
2400:fe00::/32
|
||||
2401:20::/32
|
||||
2401:60::/32
|
||||
2401:80::/32
|
||||
2401:140::/32
|
||||
2401:1c0::/32
|
||||
2401:540::/32
|
||||
2401:620::/32
|
||||
2401:7c0::/32
|
||||
2401:800::/32
|
||||
2401:9c0::/32
|
||||
@ -402,23 +409,33 @@
|
||||
2401:a40::/32
|
||||
2401:ac0::/32
|
||||
2401:b40::/32
|
||||
2401:ba0::/32
|
||||
2401:bc0::/32
|
||||
2401:c40::/32
|
||||
2401:cc0::/32
|
||||
2401:d40::/32
|
||||
2401:e00::/32
|
||||
2401:1000::/32
|
||||
2401:1160::/32
|
||||
2401:11a0::/32
|
||||
2401:11c0::/32
|
||||
2401:1200::/32
|
||||
2401:12c0::/32
|
||||
2401:1320::/32
|
||||
2401:13a0::/32
|
||||
2401:15c0::/32
|
||||
2401:18c0::/32
|
||||
2401:18e0::/28
|
||||
2401:1940::/32
|
||||
2401:19c0::/32
|
||||
2401:1a40::/32
|
||||
2401:1ac0::/32
|
||||
2401:1c60::/32
|
||||
2401:1ce0::/32
|
||||
2401:1d40::/32
|
||||
2401:1da0::/32
|
||||
2401:1dc0::/32
|
||||
2401:1de0::/32
|
||||
2401:1e00::/32
|
||||
2401:1ec0::/32
|
||||
2401:1f40::/32
|
||||
@ -612,7 +629,6 @@
|
||||
2402:2e80::/32
|
||||
2402:2f40::/32
|
||||
2402:3040::/32
|
||||
2402:3080::/32
|
||||
2402:3140::/32
|
||||
2402:3180::/32
|
||||
2402:31c0::/32
|
||||
@ -643,10 +659,8 @@
|
||||
2402:4e00::/32
|
||||
2402:4ec0::/32
|
||||
2402:4f80::/32
|
||||
2402:50c0::/32
|
||||
2402:5140::/32
|
||||
2402:5180::/32
|
||||
2402:51c0::/32
|
||||
2402:52c0::/32
|
||||
2402:5340::/32
|
||||
2402:5880::/32
|
||||
@ -1163,7 +1177,7 @@
|
||||
2404:37c0::/32
|
||||
2404:3840::/32
|
||||
2404:3940::/32
|
||||
2404:3b00::/32
|
||||
2404:3b00::/34
|
||||
2404:3bc0::/32
|
||||
2404:3c40::/32
|
||||
2404:3f40::/32
|
||||
@ -1778,7 +1792,6 @@
|
||||
2407:2280::/32
|
||||
2407:2380::/32
|
||||
2407:23c0::/32
|
||||
2407:2440::/32
|
||||
2407:2780::/32
|
||||
2407:2840::/32
|
||||
2407:2ac0::/32
|
||||
|
@ -5,12 +5,12 @@
|
||||
include $(TOPDIR)/rules.mk
|
||||
|
||||
PKG_NAME:=cloudreve
|
||||
PKG_VERSION:=3.8.1
|
||||
PKG_RELEASE:=35
|
||||
PKG_VERSION:=3.8.2
|
||||
PKG_RELEASE:=36
|
||||
|
||||
PKG_SOURCE_PROTO:=git
|
||||
PKG_SOURCE_URL:=https://github.com/cloudreve/Cloudreve.git
|
||||
PKG_SOURCE_VERSION:=5642dd3b66ed394c54e2463e8ab8a4ec27ec235d
|
||||
PKG_SOURCE_VERSION:=ce832bf13d8372a84b993b8f65447bce6eced90a
|
||||
PKG_MIRROR_HASH:=skip
|
||||
|
||||
PKG_LICENSE:=GPL-3.0-only
|
||||
|
@ -5,12 +5,12 @@
|
||||
include $(TOPDIR)/rules.mk
|
||||
|
||||
PKG_NAME:=daed
|
||||
PKG_VERSION:=0.3.1
|
||||
PKG_RELEASE:=4
|
||||
PKG_VERSION:=0.3.2
|
||||
PKG_RELEASE:=15
|
||||
|
||||
PKG_SOURCE_PROTO:=git
|
||||
PKG_SOURCE_URL:=https://github.com/daeuniverse/daed.git
|
||||
PKG_SOURCE_VERSION:=cc88300159dfd499421e09ab37ce45ebe89ecde0
|
||||
PKG_SOURCE_VERSION:=71a12e8db3510987d504f0f738b2f1cd3bac87b8
|
||||
PKG_MIRROR_HASH:=skip
|
||||
|
||||
PKG_LICENSE:=AGPL-3.0-only MIT
|
||||
@ -80,7 +80,7 @@ define Download/daed-web
|
||||
URL:=https://github.com/daeuniverse/daed/releases/download/v$(PKG_VERSION)
|
||||
URL_FILE:=web.zip
|
||||
FILE:=$(WEB_FILE)
|
||||
HASH:=0db28fbf1803484b989b7545e8ad560cc969cc842346cbae4a2f9efe25cceb57
|
||||
HASH:=6b9bc4f6217572c2945ed76b7e50cf2669838b173bf077463f591f1624cf6892
|
||||
endef
|
||||
|
||||
define Build/Prepare
|
||||
|
@ -8,14 +8,14 @@
|
||||
include $(TOPDIR)/rules.mk
|
||||
|
||||
PKG_NAME:=ddns-go
|
||||
PKG_VERSION:=5.5.2
|
||||
PKG_RELEASE:=15
|
||||
PKG_VERSION:=5.6.0
|
||||
PKG_RELEASE:=16
|
||||
|
||||
PKG_SOURCE_PROTO:=git
|
||||
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
|
||||
PKG_SOURCE_URL:=https://github.com/jeessy2/ddns-go.git
|
||||
PKG_MIRROR_HASH:=skip
|
||||
PKG_SOURCE_VERSION:=57b3aa6fe0a31356d69931d22a78685590b956fe
|
||||
PKG_SOURCE_VERSION:=352e6b87622d93643a5735d873a4b499ebcb4ec2
|
||||
|
||||
PKG_LICENSE:=AGPL-3.0-only
|
||||
PKG_LICENSE_FILES:=LICENSE
|
||||
|
@ -5,8 +5,8 @@
|
||||
include $(TOPDIR)/rules.mk
|
||||
|
||||
PKG_NAME:=filebrowser
|
||||
PKG_VERSION:=2.24.1
|
||||
PKG_RELEASE:=61
|
||||
PKG_VERSION:=2.24.2
|
||||
PKG_RELEASE:=62
|
||||
|
||||
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
|
||||
PKG_SOURCE_URL:=https://codeload.github.com/filebrowser/filebrowser/tar.gz/v$(PKG_VERSION)?
|
||||
|
@ -42,8 +42,9 @@ function clear_log()
|
||||
end
|
||||
|
||||
function admin_info()
|
||||
local username = luci.sys.exec("/usr/bin/alist --data $(uci -q get alist.@alist[0].data_dir) password 2>&1 | tail -2 | awk 'NR==1 {print $2}'")
|
||||
local password = luci.sys.exec("/usr/bin/alist --data $(uci -q get alist.@alist[0].data_dir) password 2>&1 | tail -2 | awk 'NR==2 {print $2}'")
|
||||
local random = luci.sys.exec("/usr/bin/alist --data $(uci -q get alist.@alist[0].data_dir) admin random 2>&1")
|
||||
local username = string.match(random, "username: (%S+)")
|
||||
local password = string.match(random, "password: (%S+)")
|
||||
|
||||
luci.http.prepare_content("application/json")
|
||||
luci.http.write_json({username = username, password = password})
|
||||
|
@ -86,7 +86,7 @@ o.datatype = "string"
|
||||
o.default = "/tmp/alist"
|
||||
o.rmempty = false
|
||||
|
||||
o = s:option(Button, "admin_info", translate("View Password"))
|
||||
o = s:option(Button, "admin_info", translate("Reset Password"))
|
||||
o.rawhtml = true
|
||||
o.template = "alist/admin_info"
|
||||
|
||||
|
@ -3,7 +3,7 @@
|
||||
function admin_info(btn)
|
||||
{
|
||||
btn.disabled = true;
|
||||
btn.value = '<%:Reading...%>';
|
||||
btn.value = '<%:Collecting data...%>';
|
||||
XHR.get('<%=luci.dispatcher.build_url("admin", "nas", "alist", "admin_info")%>',
|
||||
null,
|
||||
function(x,rv)
|
||||
@ -15,12 +15,12 @@
|
||||
tb.innerHTML += "<%:Password:%>" + "<font color='green'>" + rv.password + "</font>";
|
||||
}
|
||||
btn.disabled = false;
|
||||
btn.value = '<%:Read%>';
|
||||
btn.value = '<%:Reset%>';
|
||||
}
|
||||
);
|
||||
return false;
|
||||
}
|
||||
//]]></script>
|
||||
<input type="button" class="btn cbi-button cbi-button-apply" value="<%:Read%>" onclick="return admin_info(this)" />
|
||||
<input type="button" class="btn cbi-button cbi-button-apply" value="<%:Reset%>" onclick="return admin_info(this)" />
|
||||
<span id="<%=self.option%>-status"><em><%=self.value%></em></span>
|
||||
<%+cbi/valuefooter%>
|
@ -64,8 +64,11 @@ msgstr "启用日志"
|
||||
msgid "Clear logs"
|
||||
msgstr "清空日志"
|
||||
|
||||
msgid "View Password"
|
||||
msgstr "查看密码"
|
||||
msgid "Reset Password"
|
||||
msgstr "重置密码"
|
||||
|
||||
msgid "Reset"
|
||||
msgstr "重置"
|
||||
|
||||
msgid "Username:"
|
||||
msgstr "用户名:"
|
||||
@ -73,12 +76,6 @@ msgstr "用户名:"
|
||||
msgid "Password:"
|
||||
msgstr "密码:"
|
||||
|
||||
msgid "Reading..."
|
||||
msgstr "读取中..."
|
||||
|
||||
msgid "Read"
|
||||
msgstr "读取"
|
||||
|
||||
msgid "Login Validity Period (hours)"
|
||||
msgstr "登录有效期(小时)"
|
||||
|
||||
|
@ -17,14 +17,19 @@
|
||||
<%:Provide services such as install to EMMC, Update Firmware and Kernel, Backup and Recovery Config, Snapshot management, etc.%>
|
||||
</td></tr>
|
||||
<tr><td width="20%" align="right"><%:Supported Boxes:%></td><td width="80%" align="left" id="_clash">
|
||||
<%:Amlogic s922x --- [ Belink, Belink-Pro, Ugoos-AM6-Plus, ODROID-N2, Khadas VIM3(a311d) ]%><br>
|
||||
<%:Amlogic s922x --- [ Beelink, Beelink-Pro, Ugoos-AM6-Plus, ODROID-N2, Khadas VIM3(a311d) ]%><br>
|
||||
<%:Amlogic s905x3 -- [ X96-Max+, HK1-Box, H96-Max-X3, Ugoos-X3, TX3, X96-Air, A95XF3-Air ]%><br>
|
||||
<%:Amlogic s905x2 -- [ X96Max-4G, X96Max-2G ]%><br>
|
||||
<%:Amlogic s905x --- [ HG680P, B860H, TBee, MECOOL-KI-Pro ]%><br>
|
||||
<%:Amlogic s905w --- [ X96-Mini, TX3-Mini ]%><br>
|
||||
<%:Amlogic s905x2 -- [ X96Max-4G, X96Max-2G, MECOOL-KM3-4G, Tanix-Tx5-Max, A95X-F2 ]%><br>
|
||||
<%:Amlogic s912 ---- [ H96-Pro-Plus, Octopus-Planet, A1, A2, Z6-Plus, TX92, X92, TX8-MAX, TX9-Pro ]%><br>
|
||||
<%:Amlogic s905d --- [ Phicomm-N1 ]%><br>
|
||||
<%:Amlogic Other --- [ Optional DTB ]%><br>
|
||||
<%:Amlogic s905x --- [ HG680P, B860H, TBee, T95, TX9, XiaoMI-3S, X96 ]%><br>
|
||||
<%:Amlogic s905w --- [ X96-Mini, TX3-Mini, W95, X96W/FunTV, MXQ-Pro-4K ]%><br>
|
||||
<%:Amlogic s905d --- [ Phicomm-N1, MECOOL-KI-Pro, SML-5442TW ]%><br>
|
||||
<%:Amlogic s905l --- [ UNT402A, M201-S ]%><br>
|
||||
<%:Amlogic s905l2 -- [ MGV2000, MGV3000, Wojia-TV-IPBS9505, M301A, E900v21E ]%><br>
|
||||
<%:Amlogic s905l3 -- [ CM211-1, CM311-1, HG680-LC, M401A, UNT400G1, UNT402A, ZXV10-BV310 ]%><br>
|
||||
<%:Amlogic s905l3a - [ E900V22C/D, CM311-1a-YST, M401A, M411A, UNT403A, UNT413A, IP112H ]%><br>
|
||||
<%:Amlogic s905l3b - [ CM211-1, CM311-1, E900V22D, E900V21E, E900V22E, M302A/M304A ]%><br>
|
||||
<%:Amlogic s905 ---- [ Beelink-Mini-MX-2G, Sunvell-T95M, MXQ-Pro+4K, SumaVision-Q5 ]%><br>
|
||||
<%:Allwinner H6 ---- [ V-Plus Cloud ]%><br>
|
||||
<%:Rockchip -------- [ BeikeYun, L1-Pro, FastRhino R66S/R68S, Radxa 5B/E25, HinLink H66K/H68K/H88k ]%><br>
|
||||
<%:Used in KVM ----- [ Can be used in KVM virtual machine of Armbian system. ]%>
|
||||
|
@ -173,29 +173,44 @@ msgstr "支持将 OpenWrt 系统写入 EMMC、升级固件与内核,备份与
|
||||
msgid "Supported Boxes:"
|
||||
msgstr "支持的盒子:"
|
||||
|
||||
msgid "Amlogic s922x --- [ Belink, Belink-Pro, Ugoos-AM6-Plus, ODROID-N2, Khadas VIM3(a311d) ]"
|
||||
msgstr "晶晨 s922x --- [ Belink, Belink-Pro, Ugoos-AM6-Plus, ODROID-N2, Khadas VIM3(a311d) ]"
|
||||
msgid "Amlogic s922x --- [ Beelink, Beelink-Pro, Ugoos-AM6-Plus, ODROID-N2, Khadas VIM3(a311d) ]"
|
||||
msgstr "晶晨 s922x --- [ Beelink, Beelink-Pro, Ugoos-AM6-Plus, ODROID-N2, Khadas VIM3(a311d) ]"
|
||||
|
||||
msgid "Amlogic s905x3 -- [ X96-Max+, HK1-Box, H96-Max-X3, Ugoos-X3, TX3, X96-Air, A95XF3-Air ]"
|
||||
msgstr "晶晨 s905x3 -- [ X96-Max+, HK1-Box, H96-Max-X3, Ugoos-X3, TX3, X96-Air, A95XF3-Air ]"
|
||||
|
||||
msgid "Amlogic s905x2 -- [ X96Max-4G, X96Max-2G ]"
|
||||
msgstr "晶晨 s905x2 -- [ X96Max-4G, X96Max-2G ]"
|
||||
|
||||
msgid "Amlogic s905x --- [ HG680P, B860H, TBee, MECOOL-KI-Pro ]"
|
||||
msgstr "晶晨 s905x --- [ 烽火HG680, 中兴B860H, TBee, MECOOL-KI-Pro ]"
|
||||
|
||||
msgid "Amlogic s905w --- [ X96-Mini, TX3-Mini ]"
|
||||
msgstr "晶晨 s905w --- [ X96-Mini, TX3-Mini ]"
|
||||
msgid "Amlogic s905x2 -- [ X96Max-4G, X96Max-2G, MECOOL-KM3-4G, Tanix-Tx5-Max, A95X-F2 ]"
|
||||
msgstr "晶晨 s905x2 -- [ X96Max-4G, X96Max-2G, MECOOL-KM3-4G, Tanix-Tx5-Max, A95X-F2 ]"
|
||||
|
||||
msgid "Amlogic s912 ---- [ H96-Pro-Plus, Octopus-Planet, A1, A2, Z6-Plus, TX92, X92, TX8-MAX, TX9-Pro ]"
|
||||
msgstr "晶晨 s912 ---- [ H96-Pro-Plus, 章鱼星球, A1, A2, Z6-Plus, TX92, X92, TX8-MAX, TX9-Pro ]"
|
||||
|
||||
msgid "Amlogic s905d --- [ Phicomm-N1 ]"
|
||||
msgstr "晶晨 s905d --- [ 斐讯-N1 ]"
|
||||
msgid "Amlogic s905x --- [ HG680P, B860H, TBee, T95, TX9, XiaoMI-3S, X96 ]"
|
||||
msgstr "晶晨 s905x --- [ 烽火HG680, 中兴B860H, TBee, T95, TX9, XiaoMI-3S, X96 ]"
|
||||
|
||||
msgid "Amlogic Other --- [ Optional DTB ]"
|
||||
msgstr "晶晨其他 ----- [ 自定义 DTB 文件 ]"
|
||||
msgid "Amlogic s905w --- [ X96-Mini, TX3-Mini, W95, X96W/FunTV, MXQ-Pro-4K ]"
|
||||
msgstr "晶晨 s905w --- [ X96-Mini, TX3-Mini, W95, X96W/FunTV, MXQ-Pro-4K ]"
|
||||
|
||||
msgid "Amlogic s905d --- [ Phicomm-N1, MECOOL-KI-Pro, SML-5442TW ]"
|
||||
msgstr "晶晨 s905d --- [ 斐讯-N1, MECOOL-KI-Pro, SML-5442TW ]"
|
||||
|
||||
msgid "Amlogic s905l --- [ UNT402A, M201-S ]"
|
||||
msgstr "晶晨 s905l --- [ UNT402A, M201-S ]"
|
||||
|
||||
msgid "Amlogic s905l2 -- [ MGV2000, MGV3000, Wojia-TV-IPBS9505, M301A, E900v21E ]"
|
||||
msgstr "晶晨 s905l2 -- [ MGV2000, MGV3000, Wojia-TV-IPBS9505, M301A, E900v21E ]"
|
||||
|
||||
msgid "Amlogic s905l3 -- [ CM211-1, CM311-1, HG680-LC, M401A, UNT400G1, UNT402A, ZXV10-BV310 ]"
|
||||
msgstr "晶晨 s905l3 -- [ CM211-1, CM311-1, HG680-LC, M401A, UNT400G1, UNT402A, ZXV10-BV310 ]"
|
||||
|
||||
msgid "Amlogic s905l3a - [ E900V22C/D, CM311-1a-YST, M401A, M411A, UNT403A, UNT413A, IP112H ]"
|
||||
msgstr "晶晨 s905l3a - [ E900V22C/D, CM311-1a-YST, M401A, M411A, UNT403A, UNT413A, IP112H ]"
|
||||
|
||||
msgid "Amlogic s905l3b - [ CM211-1, CM311-1, E900V22D, E900V21E, E900V22E, M302A/M304A ]"
|
||||
msgstr "晶晨 s905l3b - [ CM211-1, CM311-1, E900V22D, E900V21E, E900V22E, M302A/M304A ]"
|
||||
|
||||
msgid "Amlogic s905 ---- [ Beelink-Mini-MX-2G, Sunvell-T95M, MXQ-Pro+4K, SumaVision-Q5 ]"
|
||||
msgstr "晶晨 s905 ---- [ Beelink-Mini-MX-2G, Sunvell-T95M, MXQ-Pro+4K, SumaVision-Q5 ]"
|
||||
|
||||
msgid "Allwinner H6 ---- [ V-Plus Cloud ]"
|
||||
msgstr "全志 H6 ------ [ 微加云 ]"
|
||||
|
@ -183,7 +183,7 @@ download_kernel() {
|
||||
wget "${kernel_down_from}" -q -P "${KERNEL_DOWNLOAD_PATH}"
|
||||
[[ "${?}" -ne "0" ]] && tolog "03.03 The kernel download failed." "1"
|
||||
|
||||
tar -xzf ${KERNEL_DOWNLOAD_PATH}/${download_version}.tar.gz -C ${KERNEL_DOWNLOAD_PATH}
|
||||
tar -xf ${KERNEL_DOWNLOAD_PATH}/${download_version}.tar.gz -C ${KERNEL_DOWNLOAD_PATH}
|
||||
[[ "${?}" -ne "0" ]] && tolog "03.04 Kernel decompression failed." "1"
|
||||
mv -f ${KERNEL_DOWNLOAD_PATH}/${download_version}/* ${KERNEL_DOWNLOAD_PATH}/
|
||||
|
||||
|
@ -5,7 +5,7 @@ LUCI_DEPENDS:=+atinout +luci-compat
|
||||
PKG_LICENSE:=GPLv3
|
||||
|
||||
define Package/luci-app-atinout/postrm
|
||||
rm -f /tmp/luci-indexcache
|
||||
rm -rf /etc/config/atinout
|
||||
endef
|
||||
|
||||
include $(TOPDIR)/feeds/luci/luci.mk
|
||||
|
11
luci-app-atinout/root/etc/uci-defaults/60_luci-app-atinout
Normal file
11
luci-app-atinout/root/etc/uci-defaults/60_luci-app-atinout
Normal file
@ -0,0 +1,11 @@
|
||||
#!/bin/sh
|
||||
|
||||
if [ "$PKG_UPGRADE" != 1 ]; then
|
||||
touch /etc/config/atinout
|
||||
uci set atinout.general=atinout
|
||||
fi
|
||||
|
||||
if [ ! -f /etc/atcommands.user ]; then
|
||||
echo "Demo command \"ATI\";ATI" > /etc/atcommands.user
|
||||
fi
|
||||
|
@ -4,8 +4,8 @@ LUCI_TITLE:=GNSS Information dashboard for 3G/LTE dongle
|
||||
LUCI_DEPENDS:=+lua +luci-compat +curl +lua-rs232 +luasocket +iwinfo +libiwinfo-lua +lua-bit32 +usbutils +gpsd
|
||||
PKG_LICENSE:=GPLv3
|
||||
|
||||
define Package/luci-app-gpoint/conffiles
|
||||
/etc/config/gpoint
|
||||
define Package/luci-app-gpoint/postrm
|
||||
rm -f /etc/config/gpoint
|
||||
endef
|
||||
|
||||
include $(TOPDIR)/feeds/luci/luci.mk
|
||||
|
9
luci-app-gpoint/root/etc/uci-defaults/61_luci-app-gpoint
Normal file
9
luci-app-gpoint/root/etc/uci-defaults/61_luci-app-gpoint
Normal file
@ -0,0 +1,9 @@
|
||||
#!/bin/sh
|
||||
|
||||
if [ "$PKG_UPGRADE" != "1" ]; then
|
||||
touch /etc/config/gpoint
|
||||
uci set gpoint.modem_settings=modem_settings
|
||||
uci set gpoint.server_settings=server_settings
|
||||
uci set gpoint.service_settings=service_settings
|
||||
fi
|
||||
|
@ -8,6 +8,7 @@ include $(TOPDIR)/rules.mk
|
||||
LUCI_TITLE:=LuCI support for linkease
|
||||
LUCI_DEPENDS:=+linkease
|
||||
LUCI_PKGARCH:=all
|
||||
# PKG_RELEASE MUST be empty for luci.mk
|
||||
LUCI_MINIFY_CSS:=0
|
||||
LUCI_MINIFY_JS:=0
|
||||
|
||||
|
@ -158,7 +158,7 @@ function linkease_backend()
|
||||
if key == "Transfer-Encoding" and val == "chunked" then
|
||||
chunked = 1
|
||||
end
|
||||
if key ~= "Connection" and key ~= "Transfer-Encoding" then
|
||||
if key ~= "Connection" and key ~= "Transfer-Encoding" and key ~= "Content-Length" then
|
||||
http.header(key, val)
|
||||
end
|
||||
end
|
||||
|
@ -4,12 +4,8 @@ LUCI_TITLE:=Configrure modem bands via mmcli utility
|
||||
LUCI_DEPENDS:=+modemmanager +luci-compat
|
||||
PKG_LICENSE:=GPLv3
|
||||
|
||||
define Package/luci-app-mmconfig/conffiles
|
||||
/etc/config/modemconfig
|
||||
endef
|
||||
|
||||
define Package/luci-app-mmconfig/postrm
|
||||
rm -f /tmp/luci-indexcache
|
||||
rm -f /etc/config/modemconfig
|
||||
endef
|
||||
|
||||
include $(TOPDIR)/feeds/luci/luci.mk
|
||||
|
@ -0,0 +1,7 @@
|
||||
#!/bin/sh -x
|
||||
|
||||
if [ "$PKG_UPGRADE" != "1" ]; then
|
||||
touch /etc/config/modemconfig
|
||||
uci set modemconfig.@modem[0]=modem
|
||||
fi
|
||||
|
@ -174,7 +174,7 @@ XHR.poll(4, '<%=url("admin/modem/data")%>', null,
|
||||
var frdl = 0;
|
||||
var frul = 0;
|
||||
var rfcn = 0;
|
||||
var band = "--";
|
||||
var band = (rfcn);
|
||||
}
|
||||
var bwdld = (data.bwdl);
|
||||
if (bwdld == 0) {
|
||||
@ -224,7 +224,7 @@ XHR.poll(4, '<%=url("admin/modem/data")%>', null,
|
||||
} else {
|
||||
var ulfreq = 0;
|
||||
var dlfreq = 0;
|
||||
var band = "--";
|
||||
var band = (rfcn);
|
||||
}
|
||||
}
|
||||
var carrier = "";
|
||||
|
@ -81,7 +81,7 @@ XHR.poll(4, '<%=url("admin/modem/data")%>', null,
|
||||
} else if (rfcn >= 38650 && rfcn <= 39649) {
|
||||
var band = "40";
|
||||
} else {
|
||||
var band = "--";
|
||||
var band = (rfcn);
|
||||
}
|
||||
var bwdld = (data.bwdl);
|
||||
if (bwdld == 0) {
|
||||
@ -111,7 +111,7 @@ XHR.poll(4, '<%=url("admin/modem/data")%>', null,
|
||||
} else if (rfcn >= 1 && rfcn <= 124) {
|
||||
var band = "GSM900";
|
||||
} else {
|
||||
var band = "--";
|
||||
var band = (rfcn);
|
||||
}
|
||||
}
|
||||
var carrier = "";
|
||||
|
@ -3,7 +3,7 @@ msgstr ""
|
||||
"Project-Id-Version: LuCI\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2009-06-10 03:40+0200\n"
|
||||
"PO-Revision-Date: 2023-07-26 13:01+0000\n"
|
||||
"PO-Revision-Date: 2023-08-10 16:54+0000\n"
|
||||
"Last-Translator: random r <epsilin@yopmail.com>\n"
|
||||
"Language-Team: Italian <https://hosted.weblate.org/projects/openwrt/"
|
||||
"luciapplicationsopkg/it/>\n"
|
||||
@ -20,15 +20,15 @@ msgstr "Azioni"
|
||||
|
||||
#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:791
|
||||
msgid "Allow overwriting conflicting package files"
|
||||
msgstr "Consenti la sovrascrittura file dei pacchetti in conflitto"
|
||||
msgstr "Consenti la sovrascrittura dei pacchetti in conflitto"
|
||||
|
||||
#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:952
|
||||
msgid "Automatically remove unused dependencies"
|
||||
msgstr "Rimuovi automaticamente le dipendenze non utilizzate"
|
||||
msgstr "Rimuovi automaticamente le dipendenze inutilizzate"
|
||||
|
||||
#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:1209
|
||||
msgid "Available"
|
||||
msgstr "Disponibile"
|
||||
msgstr "Disponibili"
|
||||
|
||||
#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:877
|
||||
msgid ""
|
||||
@ -39,9 +39,9 @@ msgid ""
|
||||
msgstr ""
|
||||
"Di seguito è riportato un elenco dei vari file di configurazione utilizzati "
|
||||
"da <em>opkg</em>. Usa <em>opkg.conf</em> per le impostazioni globali e "
|
||||
"<em>customfeeds.conf</em> per le voci delle repository personalizzate. La "
|
||||
"configurazione negli altri file può essere cambiata ma solitamente non viene "
|
||||
"conservata da <em>sysupgrade</em>."
|
||||
"<em>customfeeds.conf</em> per le voci di repository personalizzati. La "
|
||||
"configurazione negli altri file può essere cambiata, ma solitamente non "
|
||||
"viene conservata da <em>sysupgrade</em>."
|
||||
|
||||
#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:799
|
||||
#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:845
|
||||
@ -90,8 +90,8 @@ msgid ""
|
||||
"Display base translation packages and translation packages for already "
|
||||
"installed languages only"
|
||||
msgstr ""
|
||||
"Visualizza i pacchetti di traduzione di base e i pacchetti di traduzione "
|
||||
"solo per le lingue già installate"
|
||||
"Mostra i pacchetti di traduzione di base e i pacchetti di traduzione solo "
|
||||
"per le lingue già installate"
|
||||
|
||||
#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:353
|
||||
msgid "Displaying %d-%d of %d"
|
||||
@ -99,7 +99,7 @@ msgstr "Mostrando %d-%d di %d"
|
||||
|
||||
#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:1146
|
||||
msgid "Download and install package"
|
||||
msgstr "Scarica e installa pacchetto"
|
||||
msgstr "Scarica e installa il pacchetto"
|
||||
|
||||
#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:1007
|
||||
msgid "Errors"
|
||||
@ -115,11 +115,11 @@ msgstr "Filtro"
|
||||
|
||||
#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:1133
|
||||
msgid "Free space"
|
||||
msgstr "Spazio di archiviazione libero"
|
||||
msgstr "Spazio libero"
|
||||
|
||||
#: applications/luci-app-opkg/root/usr/share/rpcd/acl.d/luci-app-opkg.json:3
|
||||
msgid "Grant access to opkg management"
|
||||
msgstr "Concedere l'accesso alla gestione di opkg"
|
||||
msgstr "Concedi l'accesso alla gestione di opkg"
|
||||
|
||||
#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:1193
|
||||
msgid "Hide all translation packages"
|
||||
@ -252,7 +252,7 @@ msgstr "Richiede la versione %h %h, installata %h"
|
||||
msgid ""
|
||||
"Required dependency package <em>%h</em> is not available in any repository."
|
||||
msgstr ""
|
||||
"Il pacchetto di dipendenza <em>%h</em> non è disponibile in nessuna "
|
||||
"Il pacchetto di dipendenza <em>%h</em> non è disponibile in nessun "
|
||||
"repository."
|
||||
|
||||
#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:507
|
||||
@ -300,7 +300,7 @@ msgstr "Le traduzioni suggerite richiedono ca. %1024 mB di spazio aggiuntivo."
|
||||
|
||||
#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:1012
|
||||
msgid "The <em>opkg %h</em> command failed with code <code>%d</code>."
|
||||
msgstr "Il comando <em>opkg %h</em> ha fallito con il codice <code>%d</code>."
|
||||
msgstr "Il comando <em>opkg %h</em> è fallito con il codice <code>%d</code>."
|
||||
|
||||
#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:512
|
||||
msgid ""
|
||||
@ -313,14 +313,14 @@ msgstr ""
|
||||
#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:832
|
||||
msgid "The package <em>%h</em> is not available in any configured repository."
|
||||
msgstr ""
|
||||
"Il pacchetto <em>%h</em> non è disponibile in nessuna repository configurata."
|
||||
"Il pacchetto <em>%h</em> non è disponibile in nessun repository configurato."
|
||||
|
||||
#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:529
|
||||
msgid ""
|
||||
"The repository version of package <em>%h</em> is not compatible, require %s "
|
||||
"but only %s is available."
|
||||
msgstr ""
|
||||
"La versione della repository del pacchetto <em>%h</em> non è compatibile, "
|
||||
"La versione del repository del pacchetto <em>%h</em> non è compatibile, "
|
||||
"richiede %s ma è disponibile solo %s."
|
||||
|
||||
#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:1140
|
||||
@ -354,7 +354,7 @@ msgstr "Aggiorna…"
|
||||
|
||||
#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:1157
|
||||
msgid "Upload Package…"
|
||||
msgstr "Carica Pacchetto…"
|
||||
msgstr "Carica pacchetto…"
|
||||
|
||||
#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:756
|
||||
#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:944
|
||||
@ -374,7 +374,7 @@ msgstr "In attesa del completamento del comando <em>opkg %h</em>…"
|
||||
#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:1189
|
||||
msgctxt "Display translation packages"
|
||||
msgid "all"
|
||||
msgstr "Tutto"
|
||||
msgstr "tutto"
|
||||
|
||||
#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:1176
|
||||
msgctxt "Display translation packages"
|
||||
@ -384,7 +384,7 @@ msgstr "filtrato"
|
||||
#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:1202
|
||||
msgctxt "Display translation packages"
|
||||
msgid "none"
|
||||
msgstr "none"
|
||||
msgstr "nessuno"
|
||||
|
||||
#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:672
|
||||
#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:933
|
||||
|
@ -1,14 +1,18 @@
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Last-Translator: Automatically generated\n"
|
||||
"Language-Team: none\n"
|
||||
"PO-Revision-Date: 2023-08-10 08:05+0000\n"
|
||||
"Last-Translator: Džiugas J <dziugas1959@hotmail.com>\n"
|
||||
"Language-Team: Lithuanian <https://hosted.weblate.org/projects/openwrt/"
|
||||
"luciapplicationsopkg/lt/>\n"
|
||||
"Language: lt\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && "
|
||||
"(n%100<10 || n%100>=20) ? 1 : 2);\n"
|
||||
"Plural-Forms: nplurals=3; plural=(n % 10 == 1 && (n % 100 < 11 || n % 100 > "
|
||||
"19)) ? 0 : ((n % 10 >= 2 && n % 10 <= 9 && (n % 100 < 11 || n % 100 > 19)) ? "
|
||||
"1 : 2);\n"
|
||||
"X-Generator: Weblate 5.0-dev\n"
|
||||
|
||||
#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:1154
|
||||
msgid "Actions"
|
||||
@ -40,7 +44,7 @@ msgstr ""
|
||||
#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:958
|
||||
#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:1055
|
||||
msgid "Cancel"
|
||||
msgstr ""
|
||||
msgstr "Atšaukti"
|
||||
|
||||
#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:1141
|
||||
msgid "Clear"
|
||||
@ -92,7 +96,7 @@ msgstr ""
|
||||
|
||||
#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:1007
|
||||
msgid "Errors"
|
||||
msgstr ""
|
||||
msgstr "Klaidos"
|
||||
|
||||
#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:981
|
||||
msgid "Executing package manager"
|
||||
@ -250,7 +254,7 @@ msgstr ""
|
||||
|
||||
#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:1046
|
||||
msgid "SHA256"
|
||||
msgstr ""
|
||||
msgstr "„SHA256“"
|
||||
|
||||
#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:914
|
||||
msgid "Save"
|
||||
@ -340,7 +344,7 @@ msgstr ""
|
||||
#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:944
|
||||
#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:1225
|
||||
msgid "Version"
|
||||
msgstr ""
|
||||
msgstr "Versija"
|
||||
|
||||
#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:518
|
||||
#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:536
|
||||
|
@ -131,6 +131,7 @@ if (has_v2ray or has_xray) and #nodes_table > 0 then
|
||||
local normal_list = {}
|
||||
local balancing_list = {}
|
||||
local shunt_list = {}
|
||||
local iface_list = {}
|
||||
for k, v in pairs(nodes_table) do
|
||||
if v.node_type == "normal" then
|
||||
normal_list[#normal_list + 1] = v
|
||||
@ -141,6 +142,9 @@ if (has_v2ray or has_xray) and #nodes_table > 0 then
|
||||
if v.protocol and v.protocol == "_shunt" then
|
||||
shunt_list[#shunt_list + 1] = v
|
||||
end
|
||||
if v.protocol and v.protocol == "_iface" then
|
||||
iface_list[#iface_list + 1] = v
|
||||
end
|
||||
end
|
||||
|
||||
local function get_cfgvalue(shunt_node_id, option)
|
||||
@ -179,6 +183,9 @@ if (has_v2ray or has_xray) and #nodes_table > 0 then
|
||||
for k1, v1 in pairs(balancing_list) do
|
||||
o:value(v1.id, v1.remark)
|
||||
end
|
||||
for k1, v1 in pairs(iface_list) do
|
||||
o:value(v1.id, v1.remark)
|
||||
end
|
||||
for k1, v1 in pairs(normal_list) do
|
||||
o:value(v1.id, v1.remark)
|
||||
end
|
||||
@ -216,6 +223,9 @@ if (has_v2ray or has_xray) and #nodes_table > 0 then
|
||||
for k1, v1 in pairs(balancing_list) do
|
||||
o:value(v1.id, v1.remark)
|
||||
end
|
||||
for k1, v1 in pairs(iface_list) do
|
||||
o:value(v1.id, v1.remark)
|
||||
end
|
||||
for k1, v1 in pairs(normal_list) do
|
||||
o:value(v1.id, v1.remark)
|
||||
pt:depends({ [node_option] = v1.id, [vid .. "-preproxy_enabled"] = "1" })
|
||||
@ -233,6 +243,9 @@ if (has_v2ray or has_xray) and #nodes_table > 0 then
|
||||
for k1, v1 in pairs(balancing_list) do
|
||||
o:value(v1.id, v1.remark)
|
||||
end
|
||||
for k1, v1 in pairs(iface_list) do
|
||||
o:value(v1.id, v1.remark)
|
||||
end
|
||||
for k1, v1 in pairs(normal_list) do
|
||||
o:value(v1.id, v1.remark)
|
||||
end
|
||||
|
@ -137,6 +137,7 @@ iface:depends("protocol", "_iface")
|
||||
|
||||
local nodes_table = {}
|
||||
local balancers_table = {}
|
||||
local iface_table = {}
|
||||
for k, e in ipairs(api.get_valid_nodes()) do
|
||||
if e.node_type == "normal" then
|
||||
nodes_table[#nodes_table + 1] = {
|
||||
@ -150,6 +151,12 @@ for k, e in ipairs(api.get_valid_nodes()) do
|
||||
remarks = e["remark"]
|
||||
}
|
||||
end
|
||||
if e.protocol == "_iface" then
|
||||
iface_table[#iface_table + 1] = {
|
||||
id = e[".name"],
|
||||
remarks = e["remark"]
|
||||
}
|
||||
end
|
||||
end
|
||||
|
||||
-- 负载均衡列表
|
||||
@ -184,6 +191,9 @@ if #nodes_table > 0 then
|
||||
for k, v in pairs(balancers_table) do
|
||||
o:value(v.id, v.remarks)
|
||||
end
|
||||
for k, v in pairs(iface_table) do
|
||||
o:value(v.id, v.remarks)
|
||||
end
|
||||
for k, v in pairs(nodes_table) do
|
||||
o:value(v.id, v.remarks)
|
||||
end
|
||||
@ -202,6 +212,9 @@ uci:foreach(appname, "shunt_rules", function(e)
|
||||
for k, v in pairs(balancers_table) do
|
||||
o:value(v.id, v.remarks)
|
||||
end
|
||||
for k, v in pairs(iface_table) do
|
||||
o:value(v.id, v.remarks)
|
||||
end
|
||||
local pt = s:option(ListValue, e[".name"] .. "_proxy_tag", string.format('* <a style="color:red">%s</a>', e.remarks .. " " .. translate("Preproxy")))
|
||||
pt:value("nil", translate("Close"))
|
||||
pt:value("main", translate("Preproxy Node"))
|
||||
@ -230,6 +243,9 @@ if #nodes_table > 0 then
|
||||
for k, v in pairs(balancers_table) do
|
||||
default_node:value(v.id, v.remarks)
|
||||
end
|
||||
for k, v in pairs(iface_table) do
|
||||
default_node:value(v.id, v.remarks)
|
||||
end
|
||||
local dpt = s:option(ListValue, "default_proxy_tag", string.format('* <a style="color:red">%s</a>', translate("Default Preproxy")), translate("When using, localhost will connect this node first and then use this node to connect the default node."))
|
||||
dpt:value("nil", translate("Close"))
|
||||
dpt:value("main", translate("Preproxy Node"))
|
||||
|
@ -111,7 +111,6 @@ protocol:value("http", "HTTP")
|
||||
protocol:value("socks", "Socks")
|
||||
protocol:value("shadowsocks", "Shadowsocks")
|
||||
protocol:value("trojan", "Trojan")
|
||||
protocol:value("mtproto", "MTProto")
|
||||
protocol:value("dokodemo-door", "dokodemo-door")
|
||||
protocol:depends("type", "V2ray")
|
||||
protocol:depends("type", "Xray")
|
||||
@ -165,17 +164,6 @@ password:depends("type", "Brook")
|
||||
password:depends({ type = "V2ray", protocol = "shadowsocks" })
|
||||
password:depends({ type = "Xray", protocol = "shadowsocks" })
|
||||
|
||||
mtproto_password = s:option(Value, "mtproto_password", translate("Password"), translate("The MTProto protocol must be 32 characters and can only contain characters from 0 to 9 and a to f."))
|
||||
mtproto_password:depends({ type = "V2ray", protocol = "mtproto" })
|
||||
mtproto_password:depends({ type = "Xray", protocol = "mtproto" })
|
||||
mtproto_password.default = arg[1]
|
||||
function mtproto_password.cfgvalue(self, section)
|
||||
return m:get(section, "password")
|
||||
end
|
||||
function mtproto_password.write(self, section, value)
|
||||
m:set(section, "password", value)
|
||||
end
|
||||
|
||||
d_protocol = s:option(ListValue, "d_protocol", translate("Destination protocol"))
|
||||
d_protocol:value("tcp", "TCP")
|
||||
d_protocol:value("udp", "UDP")
|
||||
|
@ -290,7 +290,7 @@ function get_valid_nodes()
|
||||
e.id = e[".name"]
|
||||
if e.type and e.remarks then
|
||||
if e.protocol and (e.protocol == "_balancing" or e.protocol == "_shunt" or e.protocol == "_iface") then
|
||||
e["remark"] = "%s:[%s] " % {i18n.translatef(e.type .. e.protocol), e.remarks}
|
||||
e["remark"] = "%s:[%s] " % {e.type .. " " .. i18n.translatef(e.protocol), e.remarks}
|
||||
e["node_type"] = "special"
|
||||
nodes[#nodes + 1] = e
|
||||
end
|
||||
@ -327,7 +327,7 @@ function get_node_remarks(n)
|
||||
local remarks = ""
|
||||
if n then
|
||||
if n.protocol and (n.protocol == "_balancing" or n.protocol == "_shunt" or n.protocol == "_iface") then
|
||||
remarks = "%s:[%s] " % {i18n.translatef(n.type .. n.protocol), n.remarks}
|
||||
remarks = "%s:[%s] " % {n.type .. " " .. i18n.translatef(n.protocol), n.remarks}
|
||||
else
|
||||
local type2 = n.type
|
||||
if (n.type == "V2ray" or n.type == "Xray") and n.protocol then
|
||||
|
@ -321,14 +321,6 @@ function gen_config_server(node)
|
||||
clients = clients
|
||||
}
|
||||
end
|
||||
elseif node.protocol == "mtproto" then
|
||||
settings = {
|
||||
users = {
|
||||
{
|
||||
secret = (node.password == nil) and "" or node.password
|
||||
}
|
||||
}
|
||||
}
|
||||
elseif node.protocol == "dokodemo-door" then
|
||||
settings = {
|
||||
network = node.d_protocol,
|
||||
@ -381,10 +373,12 @@ function gen_config_server(node)
|
||||
tag = "outbound",
|
||||
streamSettings = {
|
||||
sockopt = {
|
||||
mark = 255,
|
||||
interface = node.outbound_node_iface
|
||||
}
|
||||
}
|
||||
}
|
||||
sys.call("mkdir -p /tmp/etc/passwall/iface && touch /tmp/etc/passwall/iface/" .. node.outbound_node_iface)
|
||||
else
|
||||
local outbound_node_t = uci:get_all("passwall", node.outbound_node)
|
||||
if node.outbound_node == "_socks" or node.outbound_node == "_http" then
|
||||
@ -544,7 +538,7 @@ function gen_config(var)
|
||||
port = tonumber(local_socks_port),
|
||||
protocol = "socks",
|
||||
settings = {auth = "noauth", udp = true},
|
||||
sniffing = {enabled = true, destOverride = {"http", "tls"}}
|
||||
sniffing = {enabled = true, destOverride = {"http", "tls", "quic"}}
|
||||
}
|
||||
if local_socks_username and local_socks_password and local_socks_username ~= "" and local_socks_password ~= "" then
|
||||
inbound.settings.auth = "password"
|
||||
@ -580,7 +574,7 @@ function gen_config(var)
|
||||
protocol = "dokodemo-door",
|
||||
settings = {network = "tcp,udp", followRedirect = true},
|
||||
streamSettings = {sockopt = {tproxy = "tproxy"}},
|
||||
sniffing = {enabled = sniffing and true or false, destOverride = {"http", "tls", (remote_dns_fake) and "fakedns"}, metadataOnly = false, routeOnly = route_only and true or nil, domainsExcluded = (sniffing and not route_only) and get_domain_excluded() or nil}
|
||||
sniffing = {enabled = sniffing and true or false, destOverride = {"http", "tls", "quic", (remote_dns_fake) and "fakedns"}, metadataOnly = false, routeOnly = route_only and true or nil, domainsExcluded = (sniffing and not route_only) and get_domain_excluded() or nil}
|
||||
}
|
||||
|
||||
if tcp_redir_port then
|
||||
@ -819,6 +813,22 @@ function gen_config(var)
|
||||
rule_balancerTag = balancer.tag
|
||||
end
|
||||
end
|
||||
elseif _node.protocol == "_iface" then
|
||||
if _node.iface then
|
||||
local _outbound = {
|
||||
protocol = "freedom",
|
||||
tag = rule_name,
|
||||
streamSettings = {
|
||||
sockopt = {
|
||||
mark = 255,
|
||||
interface = _node.iface
|
||||
}
|
||||
}
|
||||
}
|
||||
table.insert(outbounds, _outbound)
|
||||
rule_outboundTag = rule_name
|
||||
sys.call("touch /tmp/etc/passwall/iface/" .. _node.iface)
|
||||
end
|
||||
end
|
||||
end
|
||||
return rule_outboundTag, rule_balancerTag
|
||||
@ -912,10 +922,12 @@ function gen_config(var)
|
||||
tag = "outbound",
|
||||
streamSettings = {
|
||||
sockopt = {
|
||||
mark = 255,
|
||||
interface = node.iface
|
||||
}
|
||||
}
|
||||
}
|
||||
sys.call("touch /tmp/etc/passwall/iface/" .. node.iface)
|
||||
end
|
||||
else
|
||||
outbound = gen_outbound(flag, node)
|
||||
|
@ -340,14 +340,17 @@ msgstr "添加方式"
|
||||
msgid "Type"
|
||||
msgstr "类型"
|
||||
|
||||
msgid "Balancing"
|
||||
msgid "_balancing"
|
||||
msgstr "负载均衡"
|
||||
|
||||
msgid "Xray_balancing"
|
||||
msgstr "Xray 负载均衡"
|
||||
msgid "_shunt"
|
||||
msgstr "分流"
|
||||
|
||||
msgid "V2ray_balancing"
|
||||
msgstr "V2ray 负载均衡"
|
||||
msgid "_iface"
|
||||
msgstr "接口"
|
||||
|
||||
msgid "Balancing"
|
||||
msgstr "负载均衡"
|
||||
|
||||
msgid "Balancing Strategy"
|
||||
msgstr "负载均衡策略"
|
||||
@ -373,12 +376,6 @@ msgstr "发起探测的间隔。每经过这个时间,就会对一个服务器
|
||||
msgid "Shunt"
|
||||
msgstr "分流"
|
||||
|
||||
msgid "Xray_shunt"
|
||||
msgstr "Xray 分流"
|
||||
|
||||
msgid "V2ray_shunt"
|
||||
msgstr "V2ray 分流"
|
||||
|
||||
msgid "Preproxy"
|
||||
msgstr "前置代理"
|
||||
|
||||
@ -1249,9 +1246,6 @@ msgstr "显示节点检测"
|
||||
msgid "Show Show IP111"
|
||||
msgstr "显示IP111"
|
||||
|
||||
msgid "The MTProto protocol must be 32 characters and can only contain characters from 0 to 9 and a to f."
|
||||
msgstr "MTProto 协议必须为 32 个字符,仅可包含 0 到 9 和 a 到 f 之间的字符。"
|
||||
|
||||
msgid "Destination protocol"
|
||||
msgstr "目标协议"
|
||||
|
||||
|
@ -13,6 +13,7 @@ TMP_ID_PATH=$TMP_PATH/id
|
||||
TMP_PORT_PATH=$TMP_PATH/port
|
||||
TMP_ROUTE_PATH=$TMP_PATH/route
|
||||
TMP_ACL_PATH=$TMP_PATH/acl
|
||||
TMP_IFACE_PATH=$TMP_PATH/iface
|
||||
TMP_PATH2=/tmp/etc/${CONFIG}_tmp
|
||||
DNSMASQ_PATH=/etc/dnsmasq.d
|
||||
TMP_DNSMASQ_PATH=/tmp/dnsmasq.d/passwall
|
||||
@ -24,7 +25,6 @@ DNS_PORT=15353
|
||||
TUN_DNS="127.0.0.1#${DNS_PORT}"
|
||||
LOCAL_DNS=119.29.29.29,223.5.5.5
|
||||
DEFAULT_DNS=
|
||||
IFACES=
|
||||
ENABLED_DEFAULT_ACL=0
|
||||
PROXY_IPV6=0
|
||||
PROXY_IPV6_UDP=0
|
||||
@ -396,10 +396,6 @@ run_v2ray() {
|
||||
_extra_param="${_extra_param} -loglevel $loglevel"
|
||||
lua $UTIL_XRAY gen_config ${_extra_param} > $config_file
|
||||
ln_run "$(first_type $(config_t_get global_app ${type}_file) ${type})" ${type} $log_file run -c "$config_file"
|
||||
local protocol=$(config_n_get $node protocol)
|
||||
[ "$protocol" == "_iface" ] && {
|
||||
IFACES="$IFACES $(config_n_get $node iface)"
|
||||
}
|
||||
}
|
||||
|
||||
run_dns2socks() {
|
||||
@ -1672,7 +1668,7 @@ DNS_QUERY_STRATEGY="UseIPv4"
|
||||
|
||||
export V2RAY_LOCATION_ASSET=$(config_t_get global_rules v2ray_location_asset "/usr/share/v2ray/")
|
||||
export XRAY_LOCATION_ASSET=$V2RAY_LOCATION_ASSET
|
||||
mkdir -p /tmp/etc $TMP_PATH $TMP_BIN_PATH $TMP_SCRIPT_FUNC_PATH $TMP_ID_PATH $TMP_PORT_PATH $TMP_ROUTE_PATH $TMP_ACL_PATH $TMP_PATH2
|
||||
mkdir -p /tmp/etc $TMP_PATH $TMP_BIN_PATH $TMP_SCRIPT_FUNC_PATH $TMP_ID_PATH $TMP_PORT_PATH $TMP_ROUTE_PATH $TMP_ACL_PATH $TMP_IFACE_PATH $TMP_PATH2
|
||||
|
||||
arg1=$1
|
||||
shift
|
||||
|
@ -1061,7 +1061,7 @@ add_firewall_rule() {
|
||||
# 加载ACLS
|
||||
load_acl
|
||||
|
||||
for iface in $IFACES; do
|
||||
for iface in $(ls ${TMP_IFACE_PATH}); do
|
||||
$ipt_n -I PSW_OUTPUT -o $iface -j RETURN
|
||||
$ipt_m -I PSW_OUTPUT -o $iface -j RETURN
|
||||
done
|
||||
|
@ -1082,7 +1082,7 @@ add_firewall_rule() {
|
||||
# 加载ACLS
|
||||
load_acl
|
||||
|
||||
for iface in $IFACES; do
|
||||
for iface in $(ls ${TMP_IFACE_PATH}); do
|
||||
nft "insert rule inet fw4 $nft_output_chain oif $iface counter return"
|
||||
nft "insert rule inet fw4 PSW_OUTPUT_MANGLE_V6 oif $iface counter return"
|
||||
done
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -219,7 +219,6 @@
|
||||
103.104.104.0/22
|
||||
103.104.152.0/22
|
||||
103.104.168.0/22
|
||||
103.104.172.0/22
|
||||
103.104.188.0/22
|
||||
103.104.198.0/23
|
||||
103.104.252.0/22
|
||||
@ -350,7 +349,6 @@
|
||||
103.116.138.0/23
|
||||
103.116.148.0/22
|
||||
103.116.184.0/22
|
||||
103.116.20.0/22
|
||||
103.116.206.0/23
|
||||
103.116.220.0/22
|
||||
103.116.224.0/22
|
||||
@ -402,7 +400,7 @@
|
||||
103.12.184.0/22
|
||||
103.12.232.0/22
|
||||
103.12.32.0/22
|
||||
103.12.68.0/22
|
||||
103.12.68.0/23
|
||||
103.12.92.0/22
|
||||
103.12.98.0/23
|
||||
103.120.100.0/22
|
||||
@ -500,6 +498,7 @@
|
||||
103.133.40.0/22
|
||||
103.134.12.0/24
|
||||
103.134.196.0/22
|
||||
103.134.232.0/23
|
||||
103.135.124.0/22
|
||||
103.135.148.0/22
|
||||
103.135.156.0/22
|
||||
@ -514,7 +513,6 @@
|
||||
103.136.128.0/22
|
||||
103.136.232.0/22
|
||||
103.137.136.0/23
|
||||
103.137.149.0/24
|
||||
103.137.180.0/22
|
||||
103.137.236.0/22
|
||||
103.137.58.0/23
|
||||
@ -645,6 +643,7 @@
|
||||
103.15.4.0/22
|
||||
103.15.8.0/22
|
||||
103.15.96.0/22
|
||||
103.150.10.0/23
|
||||
103.150.122.0/23
|
||||
103.150.126.0/23
|
||||
103.150.128.0/23
|
||||
@ -743,6 +742,7 @@
|
||||
103.158.190.0/23
|
||||
103.158.200.0/23
|
||||
103.158.224.0/23
|
||||
103.158.74.0/23
|
||||
103.158.8.0/23
|
||||
103.159.122.0/23
|
||||
103.159.124.0/23
|
||||
@ -795,6 +795,7 @@
|
||||
103.166.54.0/23
|
||||
103.166.84.0/23
|
||||
103.167.0.0/23
|
||||
103.167.100.0/23
|
||||
103.167.36.0/23
|
||||
103.168.170.0/23
|
||||
103.168.98.0/23
|
||||
@ -946,6 +947,7 @@
|
||||
103.196.88.0/22
|
||||
103.196.92.0/22
|
||||
103.196.96.0/22
|
||||
103.197.0.0/22
|
||||
103.197.180.0/22
|
||||
103.197.228.0/22
|
||||
103.198.124.0/22
|
||||
@ -1261,6 +1263,10 @@
|
||||
103.213.180.0/22
|
||||
103.213.184.0/22
|
||||
103.213.188.0/22
|
||||
103.213.196.0/23
|
||||
103.213.198.0/23
|
||||
103.213.226.0/23
|
||||
103.213.232.0/23
|
||||
103.213.40.0/22
|
||||
103.213.44.0/22
|
||||
103.213.48.0/22
|
||||
@ -1615,7 +1621,9 @@
|
||||
103.224.44.0/22
|
||||
103.224.60.0/22
|
||||
103.224.80.0/22
|
||||
103.225.18.0/24
|
||||
103.225.84.0/22
|
||||
103.226.116.0/23
|
||||
103.226.132.0/22
|
||||
103.226.156.0/22
|
||||
103.226.16.0/22
|
||||
@ -1664,6 +1672,8 @@
|
||||
103.23.56.0/22
|
||||
103.23.8.0/22
|
||||
103.230.0.0/22
|
||||
103.230.110.0/23
|
||||
103.230.128.0/23
|
||||
103.230.196.0/22
|
||||
103.230.200.0/22
|
||||
103.230.204.0/22
|
||||
@ -1680,6 +1690,7 @@
|
||||
103.231.64.0/22
|
||||
103.231.68.0/22
|
||||
103.232.144.0/22
|
||||
103.232.166.0/23
|
||||
103.232.188.0/22
|
||||
103.232.212.0/22
|
||||
103.232.4.0/22
|
||||
@ -1687,6 +1698,7 @@
|
||||
103.233.128.0/22
|
||||
103.233.136.0/22
|
||||
103.233.162.0/23
|
||||
103.233.178.0/23
|
||||
103.233.228.0/22
|
||||
103.233.4.0/22
|
||||
103.233.44.0/22
|
||||
@ -1784,10 +1796,12 @@
|
||||
103.237.68.0/22
|
||||
103.237.8.0/22
|
||||
103.237.88.0/22
|
||||
103.237.92.0/23
|
||||
103.238.0.0/22
|
||||
103.238.132.0/22
|
||||
103.238.140.0/22
|
||||
103.238.144.0/22
|
||||
103.238.152.0/23
|
||||
103.238.16.0/22
|
||||
103.238.160.0/22
|
||||
103.238.164.0/22
|
||||
@ -1840,12 +1854,16 @@
|
||||
103.240.16.0/22
|
||||
103.240.172.0/22
|
||||
103.240.188.0/22
|
||||
103.240.200.0/23
|
||||
103.240.202.0/23
|
||||
103.240.244.0/22
|
||||
103.240.36.0/22
|
||||
103.240.42.0/23
|
||||
103.240.72.0/22
|
||||
103.240.84.0/22
|
||||
103.241.12.0/22
|
||||
103.241.160.0/22
|
||||
103.241.172.0/23
|
||||
103.241.184.0/22
|
||||
103.241.188.0/22
|
||||
103.241.220.0/22
|
||||
@ -1871,6 +1889,7 @@
|
||||
103.244.164.0/22
|
||||
103.244.232.0/22
|
||||
103.244.252.0/22
|
||||
103.244.26.0/23
|
||||
103.244.58.0/23
|
||||
103.244.60.0/22
|
||||
103.244.64.0/22
|
||||
@ -1882,6 +1901,7 @@
|
||||
103.245.124.0/22
|
||||
103.245.128.0/22
|
||||
103.245.23.0/24
|
||||
103.245.24.0/23
|
||||
103.245.52.0/22
|
||||
103.245.60.0/22
|
||||
103.245.80.0/22
|
||||
@ -3169,7 +3189,6 @@
|
||||
103.88.16.0/22
|
||||
103.88.164.0/22
|
||||
103.88.176.0/22
|
||||
103.88.188.0/22
|
||||
103.88.20.0/22
|
||||
103.88.212.0/22
|
||||
103.88.32.0/22
|
||||
@ -3276,7 +3295,6 @@
|
||||
103.93.204.0/22
|
||||
103.93.28.0/22
|
||||
103.93.4.0/22
|
||||
103.93.76.0/22
|
||||
103.93.84.0/22
|
||||
103.94.116.0/22
|
||||
103.94.12.0/22
|
||||
@ -3893,7 +3911,9 @@
|
||||
119.2.0.0/19
|
||||
119.2.128.0/17
|
||||
119.20.0.0/14
|
||||
119.232.0.0/15
|
||||
119.232.0.0/16
|
||||
119.233.0.0/17
|
||||
119.233.128.0/17
|
||||
119.235.128.0/18
|
||||
119.248.0.0/14
|
||||
119.252.240.0/20
|
||||
@ -4131,7 +4151,6 @@
|
||||
123.242.196.0/22
|
||||
123.244.0.0/14
|
||||
123.249.0.0/16
|
||||
123.253.108.0/22
|
||||
123.253.240.0/22
|
||||
123.254.100.0/22
|
||||
123.254.96.0/22
|
||||
@ -4505,7 +4524,6 @@
|
||||
163.53.168.0/22
|
||||
163.53.172.0/22
|
||||
163.53.188.0/22
|
||||
163.53.220.0/22
|
||||
163.53.240.0/22
|
||||
163.53.36.0/22
|
||||
163.53.4.0/22
|
||||
@ -4679,7 +4697,7 @@
|
||||
183.92.0.0/14
|
||||
185.203.36.0/22
|
||||
188.131.128.0/17
|
||||
192.102.204.0/23
|
||||
192.102.204.0/22
|
||||
192.124.154.0/24
|
||||
192.140.128.0/22
|
||||
192.140.132.0/22
|
||||
@ -4702,7 +4720,7 @@
|
||||
192.144.128.0/17
|
||||
192.197.113.0/24
|
||||
192.51.188.0/24
|
||||
192.55.46.0/24
|
||||
192.55.46.0/23
|
||||
192.55.68.0/22
|
||||
193.112.0.0/16
|
||||
198.175.100.0/22
|
||||
@ -5300,7 +5318,8 @@
|
||||
202.90.196.0/24
|
||||
202.90.20.0/22
|
||||
202.90.205.0/24
|
||||
202.90.224.0/20
|
||||
202.90.224.0/21
|
||||
202.90.232.0/21
|
||||
202.90.24.0/22
|
||||
202.90.28.0/22
|
||||
202.90.37.0/24
|
||||
@ -6472,12 +6491,22 @@
|
||||
210.74.32.0/19
|
||||
210.74.64.0/19
|
||||
210.74.96.0/19
|
||||
210.75.0.0/16
|
||||
210.75.0.0/17
|
||||
210.75.128.0/19
|
||||
210.75.160.0/19
|
||||
210.75.192.0/19
|
||||
210.75.224.0/19
|
||||
210.76.0.0/19
|
||||
210.76.128.0/17
|
||||
210.76.128.0/18
|
||||
210.76.192.0/19
|
||||
210.76.224.0/19
|
||||
210.76.32.0/19
|
||||
210.76.64.0/18
|
||||
210.77.0.0/16
|
||||
210.77.0.0/19
|
||||
210.77.128.0/17
|
||||
210.77.32.0/19
|
||||
210.77.64.0/19
|
||||
210.77.96.0/19
|
||||
210.78.0.0/19
|
||||
210.78.128.0/19
|
||||
210.78.160.0/19
|
||||
@ -6504,7 +6533,11 @@
|
||||
211.143.0.0/16
|
||||
211.144.0.0/15
|
||||
211.146.0.0/16
|
||||
211.147.0.0/16
|
||||
211.147.0.0/17
|
||||
211.147.128.0/18
|
||||
211.147.192.0/20
|
||||
211.147.208.0/20
|
||||
211.147.224.0/19
|
||||
211.148.0.0/14
|
||||
211.152.0.0/15
|
||||
211.154.0.0/16
|
||||
@ -6512,9 +6545,24 @@
|
||||
211.155.128.0/17
|
||||
211.155.64.0/19
|
||||
211.155.96.0/19
|
||||
211.156.0.0/14
|
||||
211.156.0.0/18
|
||||
211.156.128.0/19
|
||||
211.156.160.0/20
|
||||
211.156.176.0/20
|
||||
211.156.192.0/18
|
||||
211.156.64.0/20
|
||||
211.156.80.0/20
|
||||
211.156.96.0/19
|
||||
211.157.0.0/16
|
||||
211.158.0.0/15
|
||||
211.160.0.0/14
|
||||
211.164.0.0/14
|
||||
211.164.0.0/15
|
||||
211.166.0.0/16
|
||||
211.167.0.0/17
|
||||
211.167.128.0/19
|
||||
211.167.160.0/20
|
||||
211.167.176.0/20
|
||||
211.167.192.0/18
|
||||
211.64.0.0/14
|
||||
211.68.0.0/15
|
||||
211.70.0.0/15
|
||||
@ -6576,7 +6624,11 @@
|
||||
218.22.0.0/15
|
||||
218.24.0.0/15
|
||||
218.240.0.0/14
|
||||
218.244.0.0/15
|
||||
218.244.0.0/18
|
||||
218.244.128.0/17
|
||||
218.244.64.0/19
|
||||
218.244.96.0/19
|
||||
218.245.0.0/16
|
||||
218.246.0.0/15
|
||||
218.249.0.0/16
|
||||
218.26.0.0/16
|
||||
@ -8578,9 +8630,8 @@
|
||||
61.29.128.0/18
|
||||
61.29.192.0/19
|
||||
61.29.224.0/20
|
||||
61.29.240.0/21
|
||||
61.29.240.0/22
|
||||
61.29.248.0/22
|
||||
61.29.254.0/23
|
||||
61.4.176.0/20
|
||||
61.4.80.0/22
|
||||
61.4.84.0/22
|
||||
|
@ -23,7 +23,6 @@
|
||||
2001:dd8:5::/48
|
||||
2001:dd9::/48
|
||||
2001:df0:1bc0::/48
|
||||
2001:df0:2180::/48
|
||||
2001:df0:25c0::/48
|
||||
2001:df0:26c0::/48
|
||||
2001:df0:27e::/48
|
||||
@ -49,7 +48,6 @@
|
||||
2001:df1:6180::/48
|
||||
2001:df1:61c0::/48
|
||||
2001:df1:6b80::/48
|
||||
2001:df1:8b00::/48
|
||||
2001:df1:a100::/48
|
||||
2001:df1:bd80::/48
|
||||
2001:df1:c80::/48
|
||||
@ -63,7 +61,9 @@
|
||||
2001:df2:180::/48
|
||||
2001:df2:5780::/48
|
||||
2001:df2:80::/48
|
||||
2001:df2:8bc0::/48
|
||||
2001:df2:a580::/48
|
||||
2001:df2:c240::/48
|
||||
2001:df3:1480::/48
|
||||
2001:df3:2a80::/48
|
||||
2001:df3:3a80::/48
|
||||
@ -402,29 +402,40 @@
|
||||
2400:f980::/32
|
||||
2400:fac0::/32
|
||||
2400:fb40::/32
|
||||
2400:fb60::/32
|
||||
2400:fbc0::/32
|
||||
2400:fc40::/32
|
||||
2400:fcc0::/32
|
||||
2400:fe00::/32
|
||||
2401:1000::/32
|
||||
2401:1160::/32
|
||||
2401:11a0::/32
|
||||
2401:11c0::/32
|
||||
2401:1200::/32
|
||||
2401:12c0::/32
|
||||
2401:1320::/32
|
||||
2401:13a0::/32
|
||||
2401:140::/32
|
||||
2401:15c0::/32
|
||||
2401:18c0::/32
|
||||
2401:18e0::/28
|
||||
2401:1940::/32
|
||||
2401:19c0::/32
|
||||
2401:1a40::/32
|
||||
2401:1ac0::/32
|
||||
2401:1c0::/32
|
||||
2401:1c60::/32
|
||||
2401:1ce0::/32
|
||||
2401:1d40::/32
|
||||
2401:1da0::/32
|
||||
2401:1dc0::/32
|
||||
2401:1de0::/32
|
||||
2401:1e00::/32
|
||||
2401:1ec0::/32
|
||||
2401:1f40::/32
|
||||
2401:2040::/32
|
||||
2401:2080::/32
|
||||
2401:20::/32
|
||||
2401:23c0::/32
|
||||
2401:2600::/32
|
||||
2401:2780::/32
|
||||
@ -468,6 +479,8 @@
|
||||
2401:59c0::/32
|
||||
2401:5b40::/32
|
||||
2401:5c80::/32
|
||||
2401:60::/32
|
||||
2401:620::/32
|
||||
2401:7180::/32
|
||||
2401:71c0::/32
|
||||
2401:7240::/32
|
||||
@ -547,6 +560,7 @@
|
||||
2401:b7c0::/32
|
||||
2401:b940::/32
|
||||
2401:ba00::/32
|
||||
2401:ba0::/32
|
||||
2401:ba40::/32
|
||||
2401:bb80::/32
|
||||
2401:bc0::/32
|
||||
@ -621,7 +635,6 @@
|
||||
2402:2e80::/32
|
||||
2402:2f40::/32
|
||||
2402:3040::/32
|
||||
2402:3080::/32
|
||||
2402:3140::/32
|
||||
2402:3180::/32
|
||||
2402:31c0::/32
|
||||
@ -653,10 +666,8 @@
|
||||
2402:4e00::/32
|
||||
2402:4ec0::/32
|
||||
2402:4f80::/32
|
||||
2402:50c0::/32
|
||||
2402:5140::/32
|
||||
2402:5180::/32
|
||||
2402:51c0::/32
|
||||
2402:52c0::/32
|
||||
2402:5340::/32
|
||||
2402:5880::/32
|
||||
@ -1168,7 +1179,7 @@
|
||||
2404:37c0::/32
|
||||
2404:3840::/32
|
||||
2404:3940::/32
|
||||
2404:3b00::/32
|
||||
2404:3b00::/34
|
||||
2404:3bc0::/32
|
||||
2404:3c40::/32
|
||||
2404:3f40::/32
|
||||
@ -1792,7 +1803,6 @@
|
||||
2407:2280::/32
|
||||
2407:2380::/32
|
||||
2407:23c0::/32
|
||||
2407:2440::/32
|
||||
2407:2780::/32
|
||||
2407:2840::/32
|
||||
2407:2ac0::/32
|
||||
|
@ -2376,6 +2376,7 @@ greenpeace.org
|
||||
greenreadings.com
|
||||
greenvpn.net
|
||||
greenvpn.org
|
||||
grindr.com
|
||||
grotty-monday.com
|
||||
groups.google.cn
|
||||
grow.google
|
||||
@ -2659,6 +2660,7 @@ huaxia-news.com
|
||||
huaxiabao.org
|
||||
huaxin.ph
|
||||
huayuworld.org
|
||||
hub.docker.com
|
||||
hudatoriq.web.id
|
||||
hudson.org
|
||||
huffingtonpost.com
|
||||
@ -2771,6 +2773,7 @@ imb.org
|
||||
imdb.com
|
||||
img.dlsite.jp
|
||||
img.ly
|
||||
imgasd.com
|
||||
imgchili.net
|
||||
imgmega.com
|
||||
imgur.com
|
||||
@ -3918,6 +3921,7 @@ packetix.net
|
||||
pacopacomama.com
|
||||
padmanet.com
|
||||
page.bid.yahoo.com
|
||||
page.link
|
||||
page2rss.com
|
||||
pages.dev
|
||||
pagodabox.com
|
||||
@ -4060,6 +4064,7 @@ pobieramy.top
|
||||
podbean.com
|
||||
podcast.co
|
||||
podictionary.com
|
||||
poe.com
|
||||
pokerstars.com
|
||||
pokerstars.net
|
||||
politicalchina.org
|
||||
@ -5887,6 +5892,7 @@ xiaod.in
|
||||
xiaohexie.com
|
||||
xiaolan.me
|
||||
xiaoma.org
|
||||
xiaomi.eu
|
||||
xiaxiaoqiang.net
|
||||
xiezhua.com
|
||||
xihua.es
|
||||
|
@ -158,7 +158,10 @@ o:value("default", translate("Default"))
|
||||
o:value("1:65535", translate("All"))
|
||||
|
||||
---- UDP No Redir Ports
|
||||
o = s:option(Value, "udp_no_redir_ports", translate("UDP No Redir Ports"))
|
||||
o = s:option(Value, "udp_no_redir_ports", translate("UDP No Redir Ports"),
|
||||
"<font color='red'>" ..
|
||||
translate("If you don't want to let the device in the list to go proxy, please choose all.") ..
|
||||
"</font>")
|
||||
o.default = "default"
|
||||
o:value("disable", translate("No patterns are used"))
|
||||
o:value("default", translate("Default"))
|
||||
@ -189,10 +192,12 @@ end
|
||||
o = s:option(ListValue, "direct_dns_protocol", translate("Direct DNS Protocol"))
|
||||
o.default = "auto"
|
||||
o:value("auto", translate("Auto"))
|
||||
--[[
|
||||
o:value("udp", "UDP")
|
||||
o:value("tcp", "TCP")
|
||||
o:value("doh", "DoH")
|
||||
o:depends({ node = "default", ['!reverse'] = true })
|
||||
]]--
|
||||
---- DNS Forward
|
||||
o = s:option(Value, "direct_dns", translate("Direct DNS"))
|
||||
o.datatype = "or(ipaddr,ipaddrport)"
|
||||
|
@ -88,6 +88,7 @@ if (has_v2ray or has_xray) and #nodes_table > 0 then
|
||||
local normal_list = {}
|
||||
local balancing_list = {}
|
||||
local shunt_list = {}
|
||||
local iface_list = {}
|
||||
for k, v in pairs(nodes_table) do
|
||||
if v.node_type == "normal" then
|
||||
normal_list[#normal_list + 1] = v
|
||||
@ -98,6 +99,9 @@ if (has_v2ray or has_xray) and #nodes_table > 0 then
|
||||
if v.protocol and v.protocol == "_shunt" then
|
||||
shunt_list[#shunt_list + 1] = v
|
||||
end
|
||||
if v.protocol and v.protocol == "_iface" then
|
||||
iface_list[#iface_list + 1] = v
|
||||
end
|
||||
end
|
||||
|
||||
local function get_cfgvalue(shunt_node_id, option)
|
||||
@ -136,6 +140,9 @@ if (has_v2ray or has_xray) and #nodes_table > 0 then
|
||||
for k1, v1 in pairs(balancing_list) do
|
||||
o:value(v1.id, v1.remark)
|
||||
end
|
||||
for k1, v1 in pairs(iface_list) do
|
||||
o:value(v1.id, v1.remark)
|
||||
end
|
||||
for k1, v1 in pairs(normal_list) do
|
||||
o:value(v1.id, v1.remark)
|
||||
end
|
||||
@ -177,6 +184,9 @@ if (has_v2ray or has_xray) and #nodes_table > 0 then
|
||||
for k1, v1 in pairs(balancing_list) do
|
||||
o:value(v1.id, v1.remark)
|
||||
end
|
||||
for k1, v1 in pairs(iface_list) do
|
||||
o:value(v1.id, v1.remark)
|
||||
end
|
||||
for k1, v1 in pairs(normal_list) do
|
||||
o:value(v1.id, v1.remark)
|
||||
pt:depends({ [node_option] = v1.id, [vid .. "-preproxy_enabled"] = "1" })
|
||||
@ -195,6 +205,9 @@ if (has_v2ray or has_xray) and #nodes_table > 0 then
|
||||
for k1, v1 in pairs(balancing_list) do
|
||||
o:value(v1.id, v1.remark)
|
||||
end
|
||||
for k1, v1 in pairs(iface_list) do
|
||||
o:value(v1.id, v1.remark)
|
||||
end
|
||||
for k1, v1 in pairs(normal_list) do
|
||||
o:value(v1.id, v1.remark)
|
||||
end
|
||||
@ -251,9 +264,11 @@ s:tab("DNS", translate("DNS"))
|
||||
o = s:taboption("DNS", ListValue, "direct_dns_protocol", translate("Direct DNS Protocol"))
|
||||
o.default = "auto"
|
||||
o:value("auto", translate("Auto"))
|
||||
--[[
|
||||
o:value("udp", "UDP")
|
||||
o:value("tcp", "TCP")
|
||||
o:value("doh", "DoH")
|
||||
]]--
|
||||
|
||||
---- DNS Forward
|
||||
o = s:taboption("DNS", Value, "direct_dns", translate("Direct DNS"))
|
||||
|
@ -123,6 +123,7 @@ iface:depends("protocol", "_iface")
|
||||
|
||||
local nodes_table = {}
|
||||
local balancers_table = {}
|
||||
local iface_table = {}
|
||||
for k, e in ipairs(api.get_valid_nodes()) do
|
||||
if e.node_type == "normal" then
|
||||
nodes_table[#nodes_table + 1] = {
|
||||
@ -136,6 +137,12 @@ for k, e in ipairs(api.get_valid_nodes()) do
|
||||
remarks = e["remark"]
|
||||
}
|
||||
end
|
||||
if e.protocol == "_iface" then
|
||||
iface_table[#iface_table + 1] = {
|
||||
id = e[".name"],
|
||||
remarks = e["remark"]
|
||||
}
|
||||
end
|
||||
end
|
||||
|
||||
-- 负载均衡列表
|
||||
@ -170,6 +177,9 @@ if #nodes_table > 0 then
|
||||
for k, v in pairs(balancers_table) do
|
||||
o:value(v.id, v.remarks)
|
||||
end
|
||||
for k, v in pairs(iface_table) do
|
||||
o:value(v.id, v.remarks)
|
||||
end
|
||||
for k, v in pairs(nodes_table) do
|
||||
o:value(v.id, v.remarks)
|
||||
end
|
||||
@ -191,6 +201,9 @@ uci:foreach(appname, "shunt_rules", function(e)
|
||||
for k, v in pairs(balancers_table) do
|
||||
o:value(v.id, v.remarks)
|
||||
end
|
||||
for k, v in pairs(iface_table) do
|
||||
o:value(v.id, v.remarks)
|
||||
end
|
||||
local pt = s:option(ListValue, e[".name"] .. "_proxy_tag", string.format('* <a style="color:red">%s</a>', e.remarks .. " " .. translate("Preproxy")))
|
||||
pt:value("nil", translate("Close"))
|
||||
pt:value("main", translate("Preproxy Node"))
|
||||
@ -220,6 +233,9 @@ if #nodes_table > 0 then
|
||||
for k, v in pairs(balancers_table) do
|
||||
default_node:value(v.id, v.remarks)
|
||||
end
|
||||
for k, v in pairs(iface_table) do
|
||||
default_node:value(v.id, v.remarks)
|
||||
end
|
||||
local dpt = s:option(ListValue, "default_proxy_tag", string.format('* <a style="color:red">%s</a>', translate("Default Preproxy")), translate("When using, localhost will connect this node first and then use this node to connect the default node."))
|
||||
dpt:value("nil", translate("Close"))
|
||||
dpt:value("main", translate("Preproxy Node"))
|
||||
|
@ -97,7 +97,6 @@ protocol:value("http", "HTTP")
|
||||
protocol:value("socks", "Socks")
|
||||
protocol:value("shadowsocks", "Shadowsocks")
|
||||
protocol:value("trojan", "Trojan")
|
||||
protocol:value("mtproto", "MTProto")
|
||||
protocol:value("dokodemo-door", "dokodemo-door")
|
||||
protocol:depends("type", "V2ray")
|
||||
protocol:depends("type", "Xray")
|
||||
@ -150,17 +149,6 @@ password:depends("type", "Brook")
|
||||
password:depends({ type = "V2ray", protocol = "shadowsocks" })
|
||||
password:depends({ type = "Xray", protocol = "shadowsocks" })
|
||||
|
||||
mtproto_password = s:option(Value, "mtproto_password", translate("Password"), translate("The MTProto protocol must be 32 characters and can only contain characters from 0 to 9 and a to f."))
|
||||
mtproto_password:depends({ type = "V2ray", protocol = "mtproto" })
|
||||
mtproto_password:depends({ type = "Xray", protocol = "mtproto" })
|
||||
mtproto_password.default = arg[1]
|
||||
function mtproto_password.cfgvalue(self, section)
|
||||
return m:get(section, "password")
|
||||
end
|
||||
function mtproto_password.write(self, section, value)
|
||||
m:set(section, "password", value)
|
||||
end
|
||||
|
||||
d_protocol = s:option(ListValue, "d_protocol", translate("Destination protocol"))
|
||||
d_protocol:value("tcp", "TCP")
|
||||
d_protocol:value("udp", "UDP")
|
||||
|
@ -274,7 +274,7 @@ function get_valid_nodes()
|
||||
e.id = e[".name"]
|
||||
if e.type and e.remarks then
|
||||
if e.protocol and (e.protocol == "_balancing" or e.protocol == "_shunt" or e.protocol == "_iface") then
|
||||
e["remark"] = "%s:[%s] " % {i18n.translatef(e.type .. e.protocol), e.remarks}
|
||||
e["remark"] = "%s:[%s] " % {e.type .. " " .. i18n.translatef(e.protocol), e.remarks}
|
||||
e["node_type"] = "special"
|
||||
nodes[#nodes + 1] = e
|
||||
end
|
||||
@ -311,7 +311,7 @@ function get_node_remarks(n)
|
||||
local remarks = ""
|
||||
if n then
|
||||
if n.protocol and (n.protocol == "_balancing" or n.protocol == "_shunt" or n.protocol == "_iface") then
|
||||
remarks = "%s:[%s] " % {i18n.translatef(n.type .. n.protocol), n.remarks}
|
||||
remarks = "%s:[%s] " % {n.type .. " " .. i18n.translatef(n.protocol), n.remarks}
|
||||
else
|
||||
local type2 = n.type
|
||||
if (n.type == "V2ray" or n.type == "Xray") and n.protocol then
|
||||
|
@ -317,14 +317,6 @@ function gen_config_server(node)
|
||||
clients = clients
|
||||
}
|
||||
end
|
||||
elseif node.protocol == "mtproto" then
|
||||
settings = {
|
||||
users = {
|
||||
{
|
||||
secret = (node.password == nil) and "" or node.password
|
||||
}
|
||||
}
|
||||
}
|
||||
elseif node.protocol == "dokodemo-door" then
|
||||
settings = {
|
||||
network = node.d_protocol,
|
||||
@ -377,10 +369,12 @@ function gen_config_server(node)
|
||||
tag = "outbound",
|
||||
streamSettings = {
|
||||
sockopt = {
|
||||
mark = 255,
|
||||
interface = node.outbound_node_iface
|
||||
}
|
||||
}
|
||||
}
|
||||
sys.call("mkdir -p /tmp/etc/passwall2/iface && touch /tmp/etc/passwall2/iface/" .. node.outbound_node_iface)
|
||||
else
|
||||
local outbound_node_t = uci:get_all("passwall2", node.outbound_node)
|
||||
if node.outbound_node == "_socks" or node.outbound_node == "_http" then
|
||||
@ -817,6 +811,22 @@ function gen_config(var)
|
||||
rule_balancerTag = balancer.tag
|
||||
end
|
||||
end
|
||||
elseif _node.protocol == "_iface" then
|
||||
if _node.iface then
|
||||
local _outbound = {
|
||||
protocol = "freedom",
|
||||
tag = rule_name,
|
||||
streamSettings = {
|
||||
sockopt = {
|
||||
mark = 255,
|
||||
interface = _node.iface
|
||||
}
|
||||
}
|
||||
}
|
||||
table.insert(outbounds, _outbound)
|
||||
rule_outboundTag = rule_name
|
||||
sys.call("touch /tmp/etc/passwall2/iface/" .. _node.iface)
|
||||
end
|
||||
end
|
||||
end
|
||||
return rule_outboundTag, rule_balancerTag
|
||||
@ -938,10 +948,12 @@ function gen_config(var)
|
||||
tag = "outbound",
|
||||
streamSettings = {
|
||||
sockopt = {
|
||||
mark = 255,
|
||||
interface = node.iface
|
||||
}
|
||||
}
|
||||
}
|
||||
sys.call("touch /tmp/etc/passwall2/iface/" .. node.iface)
|
||||
end
|
||||
else
|
||||
outbound = gen_outbound(flag, node)
|
||||
|
@ -274,14 +274,14 @@ msgstr "添加方式"
|
||||
msgid "Type"
|
||||
msgstr "类型"
|
||||
|
||||
msgid "Balancing"
|
||||
msgid "_balancing"
|
||||
msgstr "负载均衡"
|
||||
|
||||
msgid "Xray_balancing"
|
||||
msgstr "Xray 负载均衡"
|
||||
msgid "_shunt"
|
||||
msgstr "分流"
|
||||
|
||||
msgid "V2ray_balancing"
|
||||
msgstr "V2ray 负载均衡"
|
||||
msgid "Balancing"
|
||||
msgstr "负载均衡"
|
||||
|
||||
msgid "Balancing Strategy"
|
||||
msgstr "负载均衡策略"
|
||||
@ -307,12 +307,6 @@ msgstr "发起探测的间隔。每经过这个时间,就会对一个服务器
|
||||
msgid "Shunt"
|
||||
msgstr "分流"
|
||||
|
||||
msgid "Xray_shunt"
|
||||
msgstr "Xray 分流"
|
||||
|
||||
msgid "V2ray_shunt"
|
||||
msgstr "V2ray 分流"
|
||||
|
||||
msgid "Preproxy"
|
||||
msgstr "前置代理"
|
||||
|
||||
@ -523,6 +517,9 @@ msgstr "UDP不转发端口"
|
||||
msgid "Fill in the ports you don't want to be forwarded by the agent, with the highest priority."
|
||||
msgstr "填写你不希望被代理转发的端口,优先级最高。"
|
||||
|
||||
msgid "If you don't want to let the device in the list to go proxy, please choose all."
|
||||
msgstr "如果您不想让列表中的设备走代理,请选择全部。"
|
||||
|
||||
msgid "TCP Proxy Drop Ports"
|
||||
msgstr "TCP转发屏蔽端口"
|
||||
|
||||
@ -1156,9 +1153,6 @@ msgstr "显示节点检测"
|
||||
msgid "Show Show IP111"
|
||||
msgstr "显示IP111"
|
||||
|
||||
msgid "The MTProto protocol must be 32 characters and can only contain characters from 0 to 9 and a to f."
|
||||
msgstr "MTProto 协议必须为 32 个字符,仅可包含 0 到 9 和 a 到 f 之间的字符。"
|
||||
|
||||
msgid "Destination protocol"
|
||||
msgstr "目标协议"
|
||||
|
||||
|
@ -12,6 +12,7 @@ TMP_ID_PATH=$TMP_PATH/id
|
||||
TMP_PORT_PATH=$TMP_PATH/port
|
||||
TMP_ROUTE_PATH=$TMP_PATH/route
|
||||
TMP_ACL_PATH=$TMP_PATH/acl
|
||||
TMP_IFACE_PATH=$TMP_PATH/iface
|
||||
TMP_PATH2=/tmp/etc/${CONFIG}_tmp
|
||||
DNSMASQ_PATH=/etc/dnsmasq.d
|
||||
TMP_DNSMASQ_PATH=/tmp/dnsmasq.d/passwall2
|
||||
@ -21,7 +22,6 @@ RULES_PATH=/usr/share/${CONFIG}/rules
|
||||
TUN_DNS_PORT=15353
|
||||
TUN_DNS="127.0.0.1#${TUN_DNS_PORT}"
|
||||
DEFAULT_DNS=
|
||||
IFACES=
|
||||
ENABLED_DEFAULT_ACL=0
|
||||
ENABLED_ACLS=0
|
||||
PROXY_IPV6=0
|
||||
@ -319,11 +319,6 @@ run_v2ray() {
|
||||
local buffer_size=$(config_t_get global_forwarding buffer_size)
|
||||
[ -n "${buffer_size}" ] && _extra_param="${_extra_param} -buffer_size ${buffer_size}"
|
||||
|
||||
local protocol=$(config_n_get $node protocol)
|
||||
[ "$protocol" == "_iface" ] && {
|
||||
IFACES="$IFACES $(config_n_get $node iface)"
|
||||
}
|
||||
|
||||
[ -n "$dns_listen_port" ] && {
|
||||
V2RAY_DNS_DIRECT_CONFIG="${TMP_PATH}/${flag}_dns_direct.json"
|
||||
V2RAY_DNS_DIRECT_LOG="${TMP_PATH}/${flag}_dns_direct.log"
|
||||
@ -369,12 +364,18 @@ run_v2ray() {
|
||||
ln_run "$(first_type $(config_t_get global_app ${type}_file) ${type})" ${type} $V2RAY_DNS_DIRECT_LOG run -c "$V2RAY_DNS_DIRECT_CONFIG"
|
||||
|
||||
direct_dnsmasq_listen_port=$(get_new_port $(expr $dns_direct_listen_port + 1) udp)
|
||||
local set_flag="${flag}"
|
||||
local direct_ipset_conf=$TMP_PATH/dnsmasq_${flag}_direct.conf
|
||||
[ -n "$(echo ${flag} | grep '^acl')" ] && {
|
||||
direct_ipset_conf=${TMP_ACL_PATH}/${sid}/dnsmasq_${flag}_direct.conf
|
||||
set_flag=$(echo ${flag} | awk -F '_' '{print $2}')
|
||||
}
|
||||
if [ "${nftflag}" = "1" ]; then
|
||||
local direct_nftset="4#inet#fw4#passwall2_whitelist,6#inet#fw4#passwall2_whitelist6"
|
||||
local direct_nftset="4#inet#fw4#passwall2_${set_flag}_whitelist,6#inet#fw4#passwall2_${set_flag}_whitelist6"
|
||||
else
|
||||
local direct_ipset="passwall2_whitelist,passwall2_whitelist6"
|
||||
local direct_ipset="passwall2_${set_flag}_whitelist,passwall2_${set_flag}_whitelist6"
|
||||
fi
|
||||
run_ipset_dnsmasq listen_port=${direct_dnsmasq_listen_port} server_dns=127.0.0.1#${dns_direct_listen_port} ipset="${direct_ipset}" nftset="${direct_nftset}" config_file=$TMP_PATH/dnsmasq_${flag}_direct.conf
|
||||
run_ipset_dnsmasq listen_port=${direct_dnsmasq_listen_port} server_dns=127.0.0.1#${dns_direct_listen_port} ipset="${direct_ipset}" nftset="${direct_nftset}" config_file=${direct_ipset_conf}
|
||||
|
||||
V2RAY_DNS_REMOTE_CONFIG="${TMP_PATH}/${flag}_dns_remote.json"
|
||||
V2RAY_DNS_REMOTE_LOG="${TMP_PATH}/${flag}_dns_remote.log"
|
||||
@ -876,7 +877,6 @@ acl_app() {
|
||||
redir_port=11200
|
||||
dns_port=11300
|
||||
dnsmasq_port=11400
|
||||
echolog "访问控制:"
|
||||
for item in $items; do
|
||||
index=$(expr $index + 1)
|
||||
local enabled sid remarks sources node direct_dns_protocol direct_dns direct_dns_doh direct_dns_client_ip direct_dns_query_strategy remote_dns_protocol remote_dns remote_dns_doh remote_dns_client_ip remote_fakedns remote_dns_query_strategy
|
||||
@ -908,7 +908,7 @@ acl_app() {
|
||||
tcp_proxy_mode="global"
|
||||
udp_proxy_mode="global"
|
||||
node=${node:-default}
|
||||
direct_dns_protocol=${direct_dns_protocol:-auto}
|
||||
direct_dns_protocol="auto"
|
||||
direct_dns=${direct_dns:-119.29.29.29}
|
||||
[ "$direct_dns_protocol" = "doh" ] && direct_dns=${direct_dns_doh:-https://223.5.5.5/dns-query}
|
||||
direct_dns_query_strategy=${direct_dns_query_strategy:-UseIP}
|
||||
@ -1070,6 +1070,7 @@ TCP_PROXY_MODE="global"
|
||||
UDP_PROXY_MODE="global"
|
||||
LOCALHOST_PROXY=$(config_t_get global localhost_proxy '1')
|
||||
DIRECT_DNS_PROTOCOL=$(config_t_get global direct_dns_protocol tcp)
|
||||
DIRECT_DNS_PROTOCOL="auto"
|
||||
DIRECT_DNS=$(config_t_get global direct_dns 119.29.29.29:53 | sed 's/#/:/g' | sed -E 's/\:([^:]+)$/#\1/g')
|
||||
DIRECT_DNS_QUERY_STRATEGY=$(config_t_get global direct_dns_query_strategy UseIP)
|
||||
REMOTE_DNS_PROTOCOL=$(config_t_get global remote_dns_protocol tcp)
|
||||
@ -1092,7 +1093,7 @@ PROXY_IPV6=$(config_t_get global_forwarding ipv6_tproxy 0)
|
||||
|
||||
export V2RAY_LOCATION_ASSET=$(config_t_get global_rules v2ray_location_asset "/usr/share/v2ray/")
|
||||
export XRAY_LOCATION_ASSET=$V2RAY_LOCATION_ASSET
|
||||
mkdir -p /tmp/etc $TMP_PATH $TMP_BIN_PATH $TMP_SCRIPT_FUNC_PATH $TMP_ID_PATH $TMP_PORT_PATH $TMP_ROUTE_PATH $TMP_ACL_PATH $TMP_PATH2
|
||||
mkdir -p /tmp/etc $TMP_PATH $TMP_BIN_PATH $TMP_SCRIPT_FUNC_PATH $TMP_ID_PATH $TMP_PORT_PATH $TMP_ROUTE_PATH $TMP_ACL_PATH $TMP_IFACE_PATH $TMP_PATH2
|
||||
|
||||
arg1=$1
|
||||
shift
|
||||
|
@ -4,11 +4,9 @@ DIR="$(cd "$(dirname "$0")" && pwd)"
|
||||
MY_PATH=$DIR/iptables.sh
|
||||
IPSET_LANLIST="passwall2_lanlist"
|
||||
IPSET_VPSLIST="passwall2_vpslist"
|
||||
IPSET_WHITELIST="passwall2_whitelist"
|
||||
|
||||
IPSET_LANLIST6="passwall2_lanlist6"
|
||||
IPSET_VPSLIST6="passwall2_vpslist6"
|
||||
IPSET_WHITELIST6="passwall2_whitelist6"
|
||||
|
||||
FORCE_INDEX=2
|
||||
|
||||
@ -61,8 +59,17 @@ insert_rule_before() {
|
||||
local chain="${1}"; shift
|
||||
local keyword="${1}"; shift
|
||||
local rule="${1}"; shift
|
||||
local default_index="${1}"; shift
|
||||
default_index=${default_index:-0}
|
||||
local _index=$($ipt_tmp -n -L $chain --line-numbers 2>/dev/null | grep "$keyword" | head -n 1 | awk '{print $1}')
|
||||
$ipt_tmp -I $chain $_index $rule
|
||||
if [ -z "${_index}" ] && [ "${default_index}" = "0" ]; then
|
||||
$ipt_tmp -A $chain $rule
|
||||
else
|
||||
if [ -z "${_index}" ]; then
|
||||
_index=${default_index}
|
||||
fi
|
||||
$ipt_tmp -I $chain $_index $rule
|
||||
fi
|
||||
}
|
||||
|
||||
insert_rule_after() {
|
||||
@ -73,10 +80,19 @@ insert_rule_after() {
|
||||
local chain="${1}"; shift
|
||||
local keyword="${1}"; shift
|
||||
local rule="${1}"; shift
|
||||
local default_index="${1}"; shift
|
||||
default_index=${default_index:-0}
|
||||
local _index=$($ipt_tmp -n -L $chain --line-numbers 2>/dev/null | grep "$keyword" | awk 'END {print}' | awk '{print $1}')
|
||||
_index=${_index:-0}
|
||||
_index=$((_index + 1))
|
||||
$ipt_tmp -I $chain $_index $rule
|
||||
if [ -z "${_index}" ] && [ "${default_index}" = "0" ]; then
|
||||
$ipt_tmp -A $chain $rule
|
||||
else
|
||||
if [ -n "${_index}" ]; then
|
||||
_index=$((_index + 1))
|
||||
else
|
||||
_index=${default_index}
|
||||
fi
|
||||
$ipt_tmp -I $chain $_index $rule
|
||||
fi
|
||||
}
|
||||
|
||||
RULE_LAST_INDEX() {
|
||||
@ -213,6 +229,11 @@ load_acl() {
|
||||
else
|
||||
continue
|
||||
fi
|
||||
|
||||
local ipset_whitelist="passwall2_${sid}_whitelist"
|
||||
local ipset_whitelist6="passwall2_${sid}_whitelist6"
|
||||
ipset -! create $ipset_whitelist nethash maxelem 1048576
|
||||
ipset -! create $ipset_whitelist6 nethash family inet6 maxelem 1048576
|
||||
|
||||
ipt_tmp=$ipt_n
|
||||
[ -n "${is_tproxy}" ] && ipt_tmp=$ipt_m
|
||||
@ -227,7 +248,10 @@ load_acl() {
|
||||
else
|
||||
msg2="${msg2}(REDIRECT:${redir_port})代理"
|
||||
fi
|
||||
|
||||
|
||||
$ipt_n -A PSW2 $(comment "$remarks") -p tcp ${_ipt_source} $(dst $ipset_whitelist) ! -d $FAKE_IP -j RETURN
|
||||
$ipt_m -A PSW2 $(comment "$remarks") -p tcp ${_ipt_source} $(dst $ipset_whitelist) ! -d $FAKE_IP -j RETURN
|
||||
|
||||
[ "$accept_icmp" = "1" ] && {
|
||||
$ipt_n -A PSW2 $(comment "$remarks") -p icmp ${_ipt_source} -d $FAKE_IP $(REDIRECT)
|
||||
$ipt_n -A PSW2 $(comment "$remarks") -p icmp ${_ipt_source} $(REDIRECT)
|
||||
@ -254,6 +278,8 @@ load_acl() {
|
||||
$ipt_m -A PSW2 $(comment "$remarks") -p tcp ${_ipt_source} $(REDIRECT $redir_port TPROXY)
|
||||
fi
|
||||
[ "$PROXY_IPV6" == "1" ] && {
|
||||
$ip6t_n -A PSW2 $(comment "$remarks") -p tcp ${_ipt_source} $(dst $ipset_whitelist6) ! -d $FAKE_IP_6 -j RETURN
|
||||
$ip6t_m -A PSW2 $(comment "$remarks") -p tcp ${_ipt_source} $(dst $ipset_whitelist6) ! -d $FAKE_IP_6 -j RETURN
|
||||
$ip6t_m -A PSW2 $(comment "$remarks") -p tcp ${_ipt_source} -d $FAKE_IP_6 -j PSW2_RULE 2>/dev/null
|
||||
$ip6t_m -A PSW2 $(comment "$remarks") -p tcp ${_ipt_source} $(factor $tcp_redir_ports "-m multiport --dport") -j PSW2_RULE 2>/dev/null
|
||||
$ip6t_m -A PSW2 $(comment "$remarks") -p tcp ${_ipt_source} $(REDIRECT $redir_port TPROXY) 2>/dev/null
|
||||
@ -277,12 +303,14 @@ load_acl() {
|
||||
msg2="${msg2}[$?]除${udp_no_redir_ports}外的"
|
||||
}
|
||||
msg2="${msg2}所有端口"
|
||||
|
||||
|
||||
$ipt_m -A PSW2 $(comment "$remarks") -p udp ${_ipt_source} $(dst $ipset_whitelist) ! -d $FAKE_IP -j RETURN
|
||||
$ipt_m -A PSW2 $(comment "$remarks") -p udp ${_ipt_source} -d $FAKE_IP -j PSW2_RULE
|
||||
$ipt_m -A PSW2 $(comment "$remarks") -p udp ${_ipt_source} $(factor $udp_redir_ports "-m multiport --dport") -j PSW2_RULE
|
||||
$ipt_m -A PSW2 $(comment "$remarks") -p udp ${_ipt_source} $(REDIRECT $redir_port TPROXY)
|
||||
|
||||
[ "$PROXY_IPV6" == "1" ] && [ "$PROXY_IPV6_UDP" == "1" ] && {
|
||||
$ip6t_m -A PSW2 $(comment "$remarks") -p udp ${_ipt_source} $(dst $ipset_whitelist6) ! -d $FAKE_IP_6 -j RETURN
|
||||
$ip6t_m -A PSW2 $(comment "$remarks") -p udp ${_ipt_source} -d $FAKE_IP_6 -j PSW2_RULE 2>/dev/null
|
||||
$ip6t_m -A PSW2 $(comment "$remarks") -p udp ${_ipt_source} $(factor $udp_redir_ports "-m multiport --dport") -j PSW2_RULE 2>/dev/null
|
||||
$ip6t_m -A PSW2 $(comment "$remarks") -p udp ${_ipt_source} $(REDIRECT $redir_port TPROXY) 2>/dev/null
|
||||
@ -322,6 +350,9 @@ load_acl() {
|
||||
[ "$TCP_NO_REDIR_PORTS" != "disable" ] && msg="${msg}除${TCP_NO_REDIR_PORTS}外的"
|
||||
msg="${msg}所有端口"
|
||||
|
||||
$ipt_n -A PSW2 $(comment "默认") -p tcp $(dst $ipset_global_whitelist) ! -d $FAKE_IP -j RETURN
|
||||
$ipt_m -A PSW2 $(comment "默认") -p tcp $(dst $ipset_global_whitelist) ! -d $FAKE_IP -j RETURN
|
||||
|
||||
[ "$accept_icmp" = "1" ] && {
|
||||
$ipt_n -A PSW2 $(comment "默认") -p icmp -d $FAKE_IP $(REDIRECT)
|
||||
$ipt_n -A PSW2 $(comment "默认") -p icmp $(REDIRECT)
|
||||
@ -342,6 +373,8 @@ load_acl() {
|
||||
fi
|
||||
|
||||
[ "$PROXY_IPV6" == "1" ] && {
|
||||
$ip6t_n -A PSW2 $(comment "默认") -p tcp $(dst $ipset_global_whitelist6) ! -d $FAKE_IP_6 -j RETURN
|
||||
$ip6t_m -A PSW2 $(comment "默认") -p tcp $(dst $ipset_global_whitelist6) ! -d $FAKE_IP_6 -j RETURN
|
||||
$ip6t_m -A PSW2 $(comment "默认") -p tcp -d $FAKE_IP_6 -j PSW2_RULE
|
||||
$ip6t_m -A PSW2 $(comment "默认") -p tcp $(factor $TCP_REDIR_PORTS "-m multiport --dport") -j PSW2_RULE
|
||||
$ip6t_m -A PSW2 $(comment "默认") -p tcp $(REDIRECT $REDIR_PORT TPROXY)
|
||||
@ -366,12 +399,14 @@ load_acl() {
|
||||
|
||||
[ "$UDP_NO_REDIR_PORTS" != "disable" ] && msg="${msg}除${UDP_NO_REDIR_PORTS}外的"
|
||||
msg="${msg}所有端口"
|
||||
|
||||
|
||||
$ipt_m -A PSW2 $(comment "默认") -p udp $(dst $ipset_global_whitelist) ! -d $FAKE_IP -j RETURN
|
||||
$ipt_m -A PSW2 $(comment "默认") -p udp -d $FAKE_IP -j PSW2_RULE
|
||||
$ipt_m -A PSW2 $(comment "默认") -p udp $(factor $UDP_REDIR_PORTS "-m multiport --dport") -j PSW2_RULE
|
||||
$ipt_m -A PSW2 $(comment "默认") -p udp $(REDIRECT $REDIR_PORT TPROXY)
|
||||
|
||||
if [ "$PROXY_IPV6_UDP" == "1" ]; then
|
||||
$ip6t_m -A PSW2 $(comment "默认") -p udp $(dst $ipset_global_whitelist6) ! -d $FAKE_IP_6 -j RETURN
|
||||
$ip6t_m -A PSW2 $(comment "默认") -p udp -d $FAKE_IP_6 -j PSW2_RULE
|
||||
$ip6t_m -A PSW2 $(comment "默认") -p udp $(factor $UDP_REDIR_PORTS "-m multiport --dport") -j PSW2_RULE
|
||||
$ip6t_m -A PSW2 $(comment "默认") -p udp $(REDIRECT $REDIR_PORT TPROXY)
|
||||
@ -512,11 +547,9 @@ add_firewall_rule() {
|
||||
echolog "开始加载防火墙规则..."
|
||||
ipset -! create $IPSET_LANLIST nethash maxelem 1048576
|
||||
ipset -! create $IPSET_VPSLIST nethash maxelem 1048576
|
||||
ipset -! create $IPSET_WHITELIST nethash maxelem 1048576
|
||||
|
||||
ipset -! create $IPSET_LANLIST6 nethash family inet6 maxelem 1048576
|
||||
ipset -! create $IPSET_VPSLIST6 nethash family inet6 maxelem 1048576
|
||||
ipset -! create $IPSET_WHITELIST6 nethash family inet6 maxelem 1048576
|
||||
|
||||
ipset -! -R <<-EOF
|
||||
$(gen_lanlist | sed -e "s/^/add $IPSET_LANLIST /")
|
||||
@ -559,6 +592,11 @@ add_firewall_rule() {
|
||||
#echolog " - 追加到白名单:${ispip6}"
|
||||
done
|
||||
}
|
||||
|
||||
local ipset_global_whitelist="passwall2_global_whitelist"
|
||||
local ipset_global_whitelist6="passwall2_global_whitelist6"
|
||||
ipset -! create $ipset_global_whitelist nethash maxelem 1048576
|
||||
ipset -! create $ipset_global_whitelist6 nethash family inet6 maxelem 1048576
|
||||
|
||||
# 过滤所有节点IP
|
||||
filter_vpsip > /dev/null 2>&1 &
|
||||
@ -577,7 +615,6 @@ add_firewall_rule() {
|
||||
$ipt_n -N PSW2
|
||||
$ipt_n -A PSW2 $(dst $IPSET_LANLIST) -j RETURN
|
||||
$ipt_n -A PSW2 $(dst $IPSET_VPSLIST) -j RETURN
|
||||
$ipt_n -A PSW2 $(dst $IPSET_WHITELIST) ! -d $FAKE_IP -j RETURN
|
||||
|
||||
WAN_IP=$(get_wan_ip)
|
||||
[ ! -z "${WAN_IP}" ] && $ipt_n -A PSW2 $(comment "WAN_IP_RETURN") -d "${WAN_IP}" -j RETURN
|
||||
@ -588,7 +625,7 @@ add_firewall_rule() {
|
||||
$ipt_n -N PSW2_OUTPUT
|
||||
$ipt_n -A PSW2_OUTPUT $(dst $IPSET_LANLIST) -j RETURN
|
||||
$ipt_n -A PSW2_OUTPUT $(dst $IPSET_VPSLIST) -j RETURN
|
||||
$ipt_n -A PSW2_OUTPUT $(dst $IPSET_WHITELIST) ! -d $FAKE_IP -j RETURN
|
||||
$ipt_n -A PSW2_OUTPUT $(dst $ipset_global_whitelist) ! -d $FAKE_IP -j RETURN
|
||||
$ipt_n -A PSW2_OUTPUT -m mark --mark 0xff -j RETURN
|
||||
|
||||
$ipt_n -N PSW2_REDIRECT
|
||||
@ -608,7 +645,6 @@ add_firewall_rule() {
|
||||
$ipt_m -N PSW2
|
||||
$ipt_m -A PSW2 $(dst $IPSET_LANLIST) -j RETURN
|
||||
$ipt_m -A PSW2 $(dst $IPSET_VPSLIST) -j RETURN
|
||||
$ipt_m -A PSW2 $(dst $IPSET_WHITELIST) ! -d $FAKE_IP -j RETURN
|
||||
|
||||
[ ! -z "${WAN_IP}" ] && $ipt_m -A PSW2 $(comment "WAN_IP_RETURN") -d "${WAN_IP}" -j RETURN
|
||||
unset WAN_IP
|
||||
@ -617,10 +653,10 @@ add_firewall_rule() {
|
||||
insert_rule_before "$ipt_m" "PREROUTING" "PSW2" "-p tcp -m socket -j PSW2_DIVERT"
|
||||
|
||||
$ipt_m -N PSW2_OUTPUT
|
||||
$ipt_m -A PSW2_OUTPUT -m mark --mark 0xff -j RETURN
|
||||
$ipt_m -A PSW2_OUTPUT $(dst $IPSET_LANLIST) -j RETURN
|
||||
$ipt_m -A PSW2_OUTPUT $(dst $IPSET_VPSLIST) -j RETURN
|
||||
$ipt_m -A PSW2_OUTPUT $(dst $IPSET_WHITELIST) ! -d $FAKE_IP -j RETURN
|
||||
$ipt_m -A PSW2_OUTPUT $(dst $ipset_global_whitelist) ! -d $FAKE_IP -j RETURN
|
||||
$ipt_m -A PSW2_OUTPUT -m mark --mark 0xff -j RETURN
|
||||
|
||||
ip rule add fwmark 1 lookup 100
|
||||
ip route add local 0.0.0.0/0 dev lo table 100
|
||||
@ -629,13 +665,12 @@ add_firewall_rule() {
|
||||
$ip6t_n -N PSW2
|
||||
$ip6t_n -A PSW2 $(dst $IPSET_LANLIST6) -j RETURN
|
||||
$ip6t_n -A PSW2 $(dst $IPSET_VPSLIST6) -j RETURN
|
||||
$ip6t_n -A PSW2 $(dst $IPSET_WHITELIST6) ! -d $FAKE_IP_6 -j RETURN
|
||||
$ip6t_n -A PREROUTING -p ipv6-icmp -j PSW2
|
||||
|
||||
$ip6t_n -N PSW2_OUTPUT
|
||||
$ip6t_n -A PSW2_OUTPUT $(dst $IPSET_LANLIST6) -j RETURN
|
||||
$ip6t_n -A PSW2_OUTPUT $(dst $IPSET_VPSLIST6) -j RETURN
|
||||
$ip6t_n -A PSW2_OUTPUT $(dst $IPSET_WHITELIST6) ! -d $FAKE_IP_6 -j RETURN
|
||||
$ip6t_n -A PSW2_OUTPUT $(dst $ipset_global_whitelist6) ! -d $FAKE_IP_6 -j RETURN
|
||||
$ip6t_n -A PSW2_OUTPUT -m mark --mark 0xff -j RETURN
|
||||
}
|
||||
|
||||
@ -653,7 +688,6 @@ add_firewall_rule() {
|
||||
$ip6t_m -N PSW2
|
||||
$ip6t_m -A PSW2 $(dst $IPSET_LANLIST6) -j RETURN
|
||||
$ip6t_m -A PSW2 $(dst $IPSET_VPSLIST6) -j RETURN
|
||||
$ip6t_m -A PSW2 $(dst $IPSET_WHITELIST6) ! -d $FAKE_IP_6 -j RETURN
|
||||
|
||||
WAN6_IP=$(get_wan6_ip)
|
||||
[ ! -z "${WAN6_IP}" ] && $ip6t_m -A PSW2 $(comment "WAN6_IP_RETURN") -d ${WAN6_IP} -j RETURN
|
||||
@ -666,7 +700,7 @@ add_firewall_rule() {
|
||||
$ip6t_m -A PSW2_OUTPUT -m mark --mark 0xff -j RETURN
|
||||
$ip6t_m -A PSW2_OUTPUT $(dst $IPSET_LANLIST6) -j RETURN
|
||||
$ip6t_m -A PSW2_OUTPUT $(dst $IPSET_VPSLIST6) -j RETURN
|
||||
$ip6t_m -A PSW2_OUTPUT $(dst $IPSET_WHITELIST6) ! -d $FAKE_IP_6 -j RETURN
|
||||
$ip6t_m -A PSW2_OUTPUT $(dst $ipset_global_whitelist6) ! -d $FAKE_IP_6 -j RETURN
|
||||
|
||||
ip -6 rule add fwmark 1 table 100
|
||||
ip -6 route add local ::/0 dev lo table 100
|
||||
@ -730,7 +764,7 @@ add_firewall_rule() {
|
||||
$ipt_m -A PSW2_OUTPUT -p tcp $(factor $TCP_REDIR_PORTS "-m multiport --dport") -j PSW2_RULE
|
||||
$ipt_m -A PSW2 $(comment "本机") -p tcp -i lo $(REDIRECT $REDIR_PORT TPROXY)
|
||||
$ipt_m -A PSW2 $(comment "本机") -p tcp -i lo -j RETURN
|
||||
$ipt_m -A OUTPUT -p tcp -j PSW2_OUTPUT
|
||||
insert_rule_before "$ipt_m" "OUTPUT" "mwan3" "$(comment mangle-OUTPUT-PSW2) -p tcp -j PSW2_OUTPUT"
|
||||
fi
|
||||
|
||||
if [ "$PROXY_IPV6" == "1" ]; then
|
||||
@ -738,10 +772,10 @@ add_firewall_rule() {
|
||||
$ip6t_m -A PSW2_OUTPUT -p tcp $(factor $TCP_REDIR_PORTS "-m multiport --dport") -j PSW2_RULE
|
||||
$ip6t_m -A PSW2 $(comment "本机") -p tcp -i lo $(REDIRECT $REDIR_PORT TPROXY)
|
||||
$ip6t_m -A PSW2 $(comment "本机") -p tcp -i lo -j RETURN
|
||||
$ip6t_m -A OUTPUT -p tcp -j PSW2_OUTPUT
|
||||
insert_rule_before "$ip6t_m" "OUTPUT" "mwan3" "$(comment mangle-OUTPUT-PSW2) -p tcp -j PSW2_OUTPUT"
|
||||
fi
|
||||
|
||||
for iface in $IFACES; do
|
||||
|
||||
for iface in $(ls ${TMP_IFACE_PATH}); do
|
||||
$ipt_n -I PSW2_OUTPUT -o $iface -p tcp -j RETURN
|
||||
$ipt_m -I PSW2_OUTPUT -o $iface -p tcp -j RETURN
|
||||
done
|
||||
@ -765,21 +799,27 @@ add_firewall_rule() {
|
||||
$ipt_m -A PSW2_OUTPUT -p udp $(factor $UDP_REDIR_PORTS "-m multiport --dport") -j PSW2_RULE
|
||||
$ipt_m -A PSW2 $(comment "本机") -p udp -i lo $(REDIRECT $REDIR_PORT TPROXY)
|
||||
$ipt_m -A PSW2 $(comment "本机") -p udp -i lo -j RETURN
|
||||
$ipt_m -A OUTPUT -p udp -j PSW2_OUTPUT
|
||||
insert_rule_before "$ipt_m" "OUTPUT" "mwan3" "$(comment mangle-OUTPUT-PSW2) -p udp -j PSW2_OUTPUT"
|
||||
|
||||
if [ "$PROXY_IPV6_UDP" == "1" ]; then
|
||||
$ip6t_m -A PSW2_OUTPUT -p udp -d $FAKE_IP_6 -j PSW2_RULE
|
||||
$ip6t_m -A PSW2_OUTPUT -p udp $(factor $UDP_REDIR_PORTS "-m multiport --dport") -j PSW2_RULE
|
||||
$ip6t_m -A PSW2 $(comment "本机") -p udp -i lo $(REDIRECT $REDIR_PORT TPROXY)
|
||||
$ip6t_m -A PSW2 $(comment "本机") -p udp -i lo -j RETURN
|
||||
$ip6t_m -A OUTPUT -p udp -j PSW2_OUTPUT
|
||||
insert_rule_before "$ip6t_m" "OUTPUT" "mwan3" "$(comment mangle-OUTPUT-PSW2) -p udp -j PSW2_OUTPUT"
|
||||
fi
|
||||
|
||||
for iface in $IFACES; do
|
||||
|
||||
for iface in $(ls ${TMP_IFACE_PATH}); do
|
||||
$ipt_n -I PSW2_OUTPUT -o $iface -p udp -j RETURN
|
||||
$ipt_m -I PSW2_OUTPUT -o $iface -p udp -j RETURN
|
||||
done
|
||||
fi
|
||||
|
||||
$ipt_m -I OUTPUT $(comment "mangle-OUTPUT-PSW2") -o lo -j RETURN
|
||||
insert_rule_before "$ipt_m" "OUTPUT" "mwan3" "$(comment mangle-OUTPUT-PSW2) -m mark --mark 1 -j RETURN"
|
||||
|
||||
$ip6t_m -I OUTPUT $(comment "mangle-OUTPUT-PSW2") -o lo -j RETURN
|
||||
insert_rule_before "$ip6t_m" "OUTPUT" "mwan3" "$(comment mangle-OUTPUT-PSW2) -m mark --mark 1 -j RETURN"
|
||||
|
||||
$ipt_m -A PSW2 -p udp --dport 53 -j RETURN
|
||||
$ip6t_m -A PSW2 -p udp --dport 53 -j RETURN
|
||||
|
@ -4,11 +4,9 @@ DIR="$(cd "$(dirname "$0")" && pwd)"
|
||||
MY_PATH=$DIR/nftables.sh
|
||||
NFTSET_LANLIST="passwall2_lanlist"
|
||||
NFTSET_VPSLIST="passwall2_vpslist"
|
||||
NFTSET_WHITELIST="passwall2_whitelist"
|
||||
|
||||
NFTSET_LANLIST6="passwall2_lanlist6"
|
||||
NFTSET_VPSLIST6="passwall2_vpslist6"
|
||||
NFTSET_WHITELIST6="passwall2_whitelist6"
|
||||
|
||||
FORCE_INDEX=0
|
||||
|
||||
@ -244,6 +242,11 @@ load_acl() {
|
||||
else
|
||||
continue
|
||||
fi
|
||||
|
||||
local nftset_whitelist="passwall2_${sid}_whitelist"
|
||||
local nftset_whitelist6="passwall2_${sid}_whitelist6"
|
||||
gen_nftset $nftset_whitelist ipv4_addr
|
||||
gen_nftset $nftset_whitelist6 ipv6_addr
|
||||
|
||||
[ -n "$redir_port" ] && {
|
||||
if [ "$tcp_proxy_mode" != "disable" ]; then
|
||||
@ -254,7 +257,10 @@ load_acl() {
|
||||
else
|
||||
msg2="${msg2}(REDIRECT:${redir_port})代理"
|
||||
fi
|
||||
|
||||
|
||||
nft "add rule inet fw4 PSW2_NAT ip protocol tcp ${_ipt_source} ip daddr @$nftset_whitelist counter return comment \"$remarks\""
|
||||
nft "add rule inet fw4 PSW2_MANGLE ip protocol tcp ${_ipt_source} ip daddr @$nftset_whitelist counter return comment \"$remarks\""
|
||||
|
||||
[ "$accept_icmp" = "1" ] && {
|
||||
nft "add rule inet fw4 PSW2_ICMP_REDIRECT ip protocol icmp ${_ipt_source} ip daddr $FAKE_IP $(REDIRECT) comment \"$remarks\""
|
||||
nft "add rule inet fw4 PSW2_ICMP_REDIRECT ip protocol icmp ${_ipt_source} $(REDIRECT) comment \"$remarks\""
|
||||
@ -267,14 +273,14 @@ load_acl() {
|
||||
|
||||
[ "$tcp_no_redir_ports" != "disable" ] && {
|
||||
nft "add rule inet fw4 $nft_prerouting_chain ${_ipt_source} ip protocol tcp $(factor $tcp_no_redir_ports "tcp dport") counter return comment \"$remarks\""
|
||||
nft "add rule inet fw4 PSW2_MANGLE_V6 comment ${_ipt_source} meta l4proto tcp tcp dport {$tcp_no_redir_ports} counter return comment \"$remarks\""
|
||||
nft "add rule inet fw4 PSW2_MANGLE_V6 comment ${_ipt_source} meta l4proto tcp $(factor $tcp_no_redir_ports "tcp dport") counter return comment \"$remarks\""
|
||||
msg2="${msg2}[$?]除${tcp_no_redir_ports}外的"
|
||||
}
|
||||
msg2="${msg2}所有端口"
|
||||
|
||||
if [ -z "${is_tproxy}" ]; then
|
||||
nft "add rule inet fw4 PSW2_NAT ${_ipt_source} ip daddr $FAKE_IP $(REDIRECT $redir_port) comment \"$remarks\""
|
||||
nft "add rule inet fw4 PSW2_NAT ${_ipt_source} $(factor $tcp_redir_ports "tcp dport") $(REDIRECT $redir_port) comment \"$remarks\""
|
||||
nft "add rule inet fw4 PSW2_NAT ip protocol tcp ${_ipt_source} ip daddr $FAKE_IP $(REDIRECT $redir_port) comment \"$remarks\""
|
||||
nft "add rule inet fw4 PSW2_NAT ip protocol tcp ${_ipt_source} $(factor $tcp_redir_ports "tcp dport") $(REDIRECT $redir_port) comment \"$remarks\""
|
||||
else
|
||||
nft "add rule inet fw4 PSW2_MANGLE ip protocol tcp ${_ipt_source} ip daddr $FAKE_IP counter jump PSW2_RULE comment \"$remarks\""
|
||||
nft "add rule inet fw4 PSW2_MANGLE ip protocol tcp ${_ipt_source} $(factor $tcp_redir_ports "tcp dport") counter jump PSW2_RULE comment \"$remarks\""
|
||||
@ -282,6 +288,7 @@ load_acl() {
|
||||
fi
|
||||
|
||||
[ "$PROXY_IPV6" == "1" ] && {
|
||||
nft "add rule inet fw4 PSW2_MANGLE_V6 meta l4proto tcp ${_ipt_source} ip6 daddr @$nftset_whitelist6 counter return comment \"$remarks\""
|
||||
nft "add rule inet fw4 PSW2_MANGLE_V6 meta l4proto tcp ${_ipt_source} ip6 daddr $FAKE_IP_6 counter jump PSW2_RULE comment \"$remarks\""
|
||||
nft "add rule inet fw4 PSW2_MANGLE_V6 meta l4proto tcp ${_ipt_source} $(factor $tcp_redir_ports "tcp dport") jump PSW2_RULE comment \"$remarks\"" 2>/dev/null
|
||||
nft "add rule inet fw4 PSW2_MANGLE_V6 meta l4proto tcp ${_ipt_source} $(REDIRECT $redir_port TPROXY) comment \"$remarks\"" 2>/dev/null
|
||||
@ -306,11 +313,13 @@ load_acl() {
|
||||
}
|
||||
msg2="${msg2}所有端口"
|
||||
|
||||
nft "add rule inet fw4 PSW2_MANGLE ip protocol udp ${_ipt_source} ip daddr @$nftset_whitelist counter return comment \"$remarks\""
|
||||
nft "add rule inet fw4 PSW2_MANGLE ip protocol udp ${_ipt_source} ip daddr $FAKE_IP counter jump PSW2_RULE comment \"$remarks\""
|
||||
nft "add rule inet fw4 PSW2_MANGLE ip protocol udp ${_ipt_source} $(factor $udp_redir_ports "udp dport") jump PSW2_RULE comment \"$remarks\""
|
||||
nft "add rule inet fw4 PSW2_MANGLE ip protocol udp ${_ipt_source} $(REDIRECT $redir_port TPROXY4) comment \"$remarks\""
|
||||
|
||||
[ "$PROXY_IPV6" == "1" ] && [ "$PROXY_IPV6_UDP" == "1" ] && {
|
||||
nft "add rule inet fw4 PSW2_MANGLE_V6 meta l4proto udp ${_ipt_source} ip6 daddr @$nftset_whitelist6 counter return comment \"$remarks\""
|
||||
nft "add rule inet fw4 PSW2_MANGLE_V6 meta l4proto udp ${_ipt_source} ip6 daddr $FAKE_IP_6 counter jump PSW2_RULE comment \"$remarks\""
|
||||
nft "add rule inet fw4 PSW2_MANGLE_V6 meta l4proto udp ${_ipt_source} $(factor $udp_redir_ports "udp dport") counter jump PSW2_RULE comment \"$remarks\"" 2>/dev/null
|
||||
nft "add rule inet fw4 PSW2_MANGLE_V6 meta l4proto udp ${_ipt_source} $(REDIRECT $redir_port TPROXY) comment \"$remarks\"" 2>/dev/null
|
||||
@ -346,7 +355,10 @@ load_acl() {
|
||||
|
||||
[ "$TCP_NO_REDIR_PORTS" != "disable" ] && msg="${msg}除${TCP_NO_REDIR_PORTS}外的"
|
||||
msg="${msg}所有端口"
|
||||
|
||||
|
||||
nft "add rule inet fw4 PSW2_NAT ip protocol tcp ip daddr @$nftset_global_whitelist counter return comment \"$remarks\""
|
||||
nft "add rule inet fw4 PSW2_MANGLE ip protocol tcp ip daddr @$nftset_global_whitelist counter return comment \"$remarks\""
|
||||
|
||||
[ "$accept_icmp" = "1" ] && {
|
||||
nft "add rule inet fw4 PSW2_ICMP_REDIRECT ip protocol icmp ip daddr $FAKE_IP $(REDIRECT) comment \"默认\""
|
||||
nft "add rule inet fw4 PSW2_ICMP_REDIRECT ip protocol icmp $(REDIRECT) comment \"默认\""
|
||||
@ -367,6 +379,7 @@ load_acl() {
|
||||
fi
|
||||
|
||||
[ "$PROXY_IPV6" == "1" ] && {
|
||||
nft "add rule inet fw4 PSW2_MANGLE_V6 meta l4proto tcp ip6 daddr @$nftset_global_whitelist6 counter return comment \"$remarks\""
|
||||
nft "add rule inet fw4 PSW2_MANGLE_V6 meta l4proto tcp ip6 daddr $FAKE_IP_6 jump PSW2_RULE comment \"默认\""
|
||||
nft "add rule inet fw4 PSW2_MANGLE_V6 meta l4proto tcp $(factor $TCP_REDIR_PORTS "tcp dport") jump PSW2_RULE comment \"默认\""
|
||||
nft "add rule inet fw4 PSW2_MANGLE_V6 meta l4proto tcp $(REDIRECT $REDIR_PORT TPROXY) comment \"默认\""
|
||||
@ -389,11 +402,13 @@ load_acl() {
|
||||
[ "$UDP_NO_REDIR_PORTS" != "disable" ] && msg="${msg}除${UDP_NO_REDIR_PORTS}外的"
|
||||
msg="${msg}所有端口"
|
||||
|
||||
nft "add rule inet fw4 PSW2_MANGLE ip protocol udp ip daddr @$nftset_global_whitelist counter return comment \"$remarks\""
|
||||
nft "add rule inet fw4 PSW2_MANGLE ip protocol udp ip daddr $FAKE_IP counter jump PSW2_RULE comment \"默认\""
|
||||
nft "add rule inet fw4 PSW2_MANGLE ip protocol udp $(factor $UDP_REDIR_PORTS "udp dport") jump PSW2_RULE comment \"默认\""
|
||||
nft "add rule inet fw4 PSW2_MANGLE meta l4proto udp $(REDIRECT $REDIR_PORT TPROXY) comment \"默认\""
|
||||
|
||||
[ "$PROXY_IPV6" == "1" ] && [ "$PROXY_IPV6_UDP" == "1" ] && {
|
||||
nft "add rule inet fw4 PSW2_MANGLE_V6 meta l4proto udp ip6 daddr @$nftset_global_whitelist6 counter return comment \"$remarks\""
|
||||
nft "add rule inet fw4 PSW2_MANGLE_V6 meta l4proto udp ip6 daddr $FAKE_IP_6 jump PSW2_RULE comment \"默认\""
|
||||
nft "add rule inet fw4 PSW2_MANGLE_V6 meta l4proto udp $(factor $UDP_REDIR_PORTS "udp dport") jump PSW2_RULE comment \"默认\""
|
||||
nft "add rule inet fw4 PSW2_MANGLE_V6 meta l4proto udp $(REDIRECT $REDIR_PORT TPROXY) comment \"默认\""
|
||||
@ -540,11 +555,9 @@ add_firewall_rule() {
|
||||
echolog "开始加载防火墙规则..."
|
||||
gen_nftset $NFTSET_LANLIST ipv4_addr $(gen_lanlist)
|
||||
gen_nftset $NFTSET_VPSLIST ipv4_addr
|
||||
gen_nftset $NFTSET_WHITELIST ipv4_addr
|
||||
|
||||
gen_nftset $NFTSET_LANLIST6 ipv6_addr $(gen_lanlist_6)
|
||||
gen_nftset $NFTSET_VPSLIST6 ipv6_addr
|
||||
gen_nftset $NFTSET_WHITELIST6 ipv6_addr
|
||||
|
||||
# 忽略特殊IP段
|
||||
local lan_ifname lan_ip
|
||||
@ -562,7 +575,7 @@ add_firewall_rule() {
|
||||
[ -n "$ISP_DNS" ] && {
|
||||
#echolog "处理 ISP DNS 例外..."
|
||||
for ispip in $ISP_DNS; do
|
||||
insert_nftset $NFTSET_WHITELIST $ispip >/dev/null 2>&1 &
|
||||
insert_nftset $NFTSET_LANLIST $ispip >/dev/null 2>&1 &
|
||||
#echolog " - 追加到白名单:${ispip}"
|
||||
done
|
||||
}
|
||||
@ -570,10 +583,15 @@ add_firewall_rule() {
|
||||
[ -n "$ISP_DNS6" ] && {
|
||||
#echolog "处理 ISP IPv6 DNS 例外..."
|
||||
for ispip6 in $ISP_DNS6; do
|
||||
insert_nftset $NFTSET_WHITELIST6 $ispip6 >/dev/null 2>&1 &
|
||||
insert_nftset $NFTSET_LANLIST6 $ispip6 >/dev/null 2>&1 &
|
||||
#echolog " - 追加到白名单:${ispip6}"
|
||||
done
|
||||
}
|
||||
|
||||
local nftset_global_whitelist="passwall2_global_whitelist"
|
||||
local nftset_global_whitelist6="passwall2_global_whitelist6"
|
||||
gen_nftset $nftset_global_whitelist ipv4_addr
|
||||
gen_nftset $nftset_global_whitelist6 ipv6_addr
|
||||
|
||||
# 过滤所有节点IP
|
||||
filter_vpsip > /dev/null 2>&1 &
|
||||
@ -619,13 +637,12 @@ add_firewall_rule() {
|
||||
nft "flush chain inet fw4 PSW2_MANGLE"
|
||||
nft "add rule inet fw4 PSW2_MANGLE ip daddr @$NFTSET_LANLIST counter return"
|
||||
nft "add rule inet fw4 PSW2_MANGLE ip daddr @$NFTSET_VPSLIST counter return"
|
||||
nft "add rule inet fw4 PSW2_MANGLE ip daddr @$NFTSET_WHITELIST counter return"
|
||||
|
||||
nft "add chain inet fw4 PSW2_OUTPUT_MANGLE"
|
||||
nft "flush chain inet fw4 PSW2_OUTPUT_MANGLE"
|
||||
nft "add rule inet fw4 PSW2_OUTPUT_MANGLE ip daddr @$NFTSET_LANLIST counter return"
|
||||
nft "add rule inet fw4 PSW2_OUTPUT_MANGLE ip daddr @$NFTSET_VPSLIST counter return"
|
||||
nft "add rule inet fw4 PSW2_OUTPUT_MANGLE ip daddr @$NFTSET_WHITELIST counter return"
|
||||
nft "add rule inet fw4 PSW2_OUTPUT_MANGLE ip daddr @$nftset_global_whitelist counter return"
|
||||
nft "add rule inet fw4 PSW2_OUTPUT_MANGLE meta mark 0xff counter return"
|
||||
|
||||
# jump chains
|
||||
@ -638,14 +655,13 @@ add_firewall_rule() {
|
||||
nft "flush chain inet fw4 PSW2_NAT"
|
||||
nft "add rule inet fw4 PSW2_NAT ip daddr @$NFTSET_LANLIST counter return"
|
||||
nft "add rule inet fw4 PSW2_NAT ip daddr @$NFTSET_VPSLIST counter return"
|
||||
nft "add rule inet fw4 PSW2_NAT ip daddr @$NFTSET_WHITELIST counter return"
|
||||
nft "add rule inet fw4 dstnat ip protocol tcp counter jump PSW2_NAT"
|
||||
|
||||
nft "add chain inet fw4 PSW2_OUTPUT_NAT"
|
||||
nft "flush chain inet fw4 PSW2_OUTPUT_NAT"
|
||||
nft "add rule inet fw4 PSW2_OUTPUT_NAT ip daddr @$NFTSET_LANLIST counter return"
|
||||
nft "add rule inet fw4 PSW2_OUTPUT_NAT ip daddr @$NFTSET_VPSLIST counter return"
|
||||
nft "add rule inet fw4 PSW2_OUTPUT_NAT ip daddr @$NFTSET_WHITELIST counter return"
|
||||
nft "add rule inet fw4 PSW2_OUTPUT_NAT ip daddr @$nftset_global_whitelist counter return"
|
||||
nft "add rule inet fw4 PSW2_OUTPUT_NAT meta mark 0xff counter return"
|
||||
}
|
||||
|
||||
@ -655,12 +671,10 @@ add_firewall_rule() {
|
||||
nft "flush chain inet fw4 PSW2_ICMP_REDIRECT"
|
||||
nft "add rule inet fw4 PSW2_ICMP_REDIRECT ip daddr @$NFTSET_LANLIST counter return"
|
||||
nft "add rule inet fw4 PSW2_ICMP_REDIRECT ip daddr @$NFTSET_VPSLIST counter return"
|
||||
nft "add rule inet fw4 PSW2_ICMP_REDIRECT ip daddr @$NFTSET_WHITELIST counter return"
|
||||
|
||||
[ "$accept_icmpv6" = "1" ] && {
|
||||
nft "add rule inet fw4 PSW2_ICMP_REDIRECT ip6 daddr @$NFTSET_LANLIST6 counter return"
|
||||
nft "add rule inet fw4 PSW2_ICMP_REDIRECT ip6 daddr @$NFTSET_VPSLIST6 counter return"
|
||||
nft "add rule inet fw4 PSW2_ICMP_REDIRECT ip6 daddr @$NFTSET_WHITELIST6 counter return"
|
||||
}
|
||||
|
||||
nft "add rule inet fw4 dstnat meta l4proto {icmp,icmpv6} counter jump PSW2_ICMP_REDIRECT"
|
||||
@ -681,13 +695,13 @@ add_firewall_rule() {
|
||||
nft "flush chain inet fw4 PSW2_MANGLE_V6"
|
||||
nft "add rule inet fw4 PSW2_MANGLE_V6 ip6 daddr @$NFTSET_LANLIST6 counter return"
|
||||
nft "add rule inet fw4 PSW2_MANGLE_V6 ip6 daddr @$NFTSET_VPSLIST6 counter return"
|
||||
nft "add rule inet fw4 PSW2_MANGLE_V6 ip6 daddr @$NFTSET_WHITELIST6 counter return"
|
||||
nft "add rule inet fw4 PSW2_MANGLE_V6 ip6 daddr @$nftset_global_whitelist6 counter return"
|
||||
|
||||
nft "add chain inet fw4 PSW2_OUTPUT_MANGLE_V6"
|
||||
nft "flush chain inet fw4 PSW2_OUTPUT_MANGLE_V6"
|
||||
nft "add rule inet fw4 PSW2_OUTPUT_MANGLE_V6 ip6 daddr @$NFTSET_LANLIST6 counter return"
|
||||
nft "add rule inet fw4 PSW2_OUTPUT_MANGLE_V6 ip6 daddr @$NFTSET_VPSLIST6 counter return"
|
||||
nft "add rule inet fw4 PSW2_OUTPUT_MANGLE_V6 ip6 daddr @$NFTSET_WHITELIST6 counter return"
|
||||
nft "add rule inet fw4 PSW2_OUTPUT_MANGLE_V6 ip6 daddr @$nftset_global_whitelist6 counter return"
|
||||
nft "add rule inet fw4 PSW2_OUTPUT_MANGLE_V6 meta mark 0xff counter return"
|
||||
|
||||
# jump chains
|
||||
@ -767,8 +781,8 @@ add_firewall_rule() {
|
||||
nft "add rule inet fw4 PSW2_MANGLE_V6 meta l4proto tcp iif lo $(REDIRECT $REDIR_PORT TPROXY) comment \"本机\""
|
||||
nft "add rule inet fw4 PSW2_MANGLE_V6 meta l4proto tcp iif lo counter return comment \"本机\""
|
||||
}
|
||||
|
||||
for iface in $IFACES; do
|
||||
|
||||
for iface in $(ls ${TMP_IFACE_PATH}); do
|
||||
nft "insert rule inet fw4 $nft_output_chain ip protocol tcp oif $iface counter return"
|
||||
nft "insert rule inet fw4 PSW2_OUTPUT_MANGLE_V6 ip protocol tcp oif $iface counter return"
|
||||
done
|
||||
@ -800,8 +814,8 @@ add_firewall_rule() {
|
||||
nft "add rule inet fw4 PSW2_MANGLE_V6 meta l4proto udp iif lo $(REDIRECT $REDIR_PORT TPROXY) comment \"本机\""
|
||||
nft "add rule inet fw4 PSW2_MANGLE_V6 meta l4proto udp iif lo counter return comment \"本机\""
|
||||
fi
|
||||
|
||||
for iface in $IFACES; do
|
||||
|
||||
for iface in $(ls ${TMP_IFACE_PATH}); do
|
||||
nft "insert rule inet fw4 $nft_output_chain ip protocol udp oif $iface counter return"
|
||||
nft "insert rule inet fw4 PSW2_OUTPUT_MANGLE_V6 ip protocol udp oif $iface counter return"
|
||||
done
|
||||
@ -853,19 +867,20 @@ del_firewall_rule() {
|
||||
|
||||
destroy_nftset $NFTSET_LANLIST
|
||||
destroy_nftset $NFTSET_VPSLIST
|
||||
destroy_nftset $NFTSET_WHITELIST
|
||||
|
||||
destroy_nftset $NFTSET_LANLIST6
|
||||
destroy_nftset $NFTSET_VPSLIST6
|
||||
destroy_nftset $NFTSET_WHITELIST6
|
||||
|
||||
$DIR/app.sh echolog "删除相关防火墙规则完成。"
|
||||
}
|
||||
|
||||
flush_nftset() {
|
||||
del_firewall_rule
|
||||
destroy_nftset $NFTSET_VPSLIST $NFTSET_WHITELIST $NFTSET_LANLIST
|
||||
destroy_nftset $NFTSET_VPSLIST6 $NFTSET_WHITELIST6 $NFTSET_LANLIST6
|
||||
destroy_nftset $NFTSET_VPSLIST $NFTSET_LANLIST
|
||||
destroy_nftset $NFTSET_VPSLIST6 $NFTSET_LANLIST6
|
||||
for _name in $(nft -a list sets | grep -E "passwall2" | awk -F 'set ' '{print $2}' | awk '{print $1}'); do
|
||||
destroy_nftset ${_name}
|
||||
done
|
||||
/etc/init.d/passwall2 reload
|
||||
}
|
||||
|
||||
|
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@ -254,15 +254,16 @@ return view.extend({
|
||||
s.addremove = false;
|
||||
|
||||
s.tab('general', _('General Settings'));
|
||||
s.tab('relay', _('Relay'));
|
||||
s.tab('files', _('Resolv and Hosts Files'));
|
||||
s.tab('pxe_tftp', _('PXE/TFTP Settings'));
|
||||
s.tab('advanced', _('Advanced Settings'));
|
||||
s.tab('leases', _('Static Leases'));
|
||||
s.tab('files', _('Resolv and Hosts Files'));
|
||||
s.tab('hosts', _('Hostnames'));
|
||||
s.tab('ipsets', _('IP Sets'));
|
||||
s.tab('relay', _('Relay'));
|
||||
s.tab('srvhosts', _('SRV'));
|
||||
s.tab('mxhosts', _('MX'));
|
||||
s.tab('ipsets', _('IP Sets'));
|
||||
s.tab('cnamehosts', _('CNAME'));
|
||||
s.tab('pxe_tftp', _('PXE/TFTP Settings'));
|
||||
s.tab('custom_domain', _('Custom Redirect Domain'));
|
||||
|
||||
o = s.taboption('custom_domain', form.SectionValue, 'domain', form.GridSection, 'domain', null,
|
||||
@ -465,7 +466,7 @@ return view.extend({
|
||||
_('Disable IPv6 DNS forwards'),
|
||||
_('Filter IPv6(AAAA) DNS Query Name Resolve'));
|
||||
o.optional = true;
|
||||
|
||||
|
||||
o = s.taboption('advanced', form.Flag, 'quietdhcp',
|
||||
_('Suppress logging'),
|
||||
_('Suppress logging of the routine operation for the DHCP protocol.'));
|
||||
@ -591,7 +592,7 @@ return view.extend({
|
||||
o.optional = true;
|
||||
o.datatype = 'range(0,86400)';
|
||||
o.placeholder = 0;
|
||||
|
||||
|
||||
o = s.taboption('pxe_tftp', form.Flag, 'enable_tftp',
|
||||
_('Enable TFTP server'),
|
||||
_('Enable the built-in single-instance TFTP server.'));
|
||||
@ -729,6 +730,27 @@ return view.extend({
|
||||
so.datatype = 'range(0,65535)';
|
||||
so.placeholder = '0';
|
||||
|
||||
o = s.taboption('cnamehosts', form.SectionValue, '__cname__', form.TableSection, 'cname', null,
|
||||
_('Set an alias for a hostname.'));
|
||||
|
||||
ss = o.subsection;
|
||||
|
||||
ss.addremove = true;
|
||||
ss.anonymous = true;
|
||||
ss.sortable = true;
|
||||
ss.rowcolors = true;
|
||||
ss.nodescriptions = true;
|
||||
|
||||
so = ss.option(form.Value, 'cname', _('Domain'));
|
||||
so.rmempty = false;
|
||||
so.datatype = 'hostname';
|
||||
so.placeholder = 'www.example.com';
|
||||
|
||||
so = ss.option(form.Value, 'target', _('Target'));
|
||||
so.rmempty = false;
|
||||
so.datatype = 'hostname';
|
||||
so.placeholder = 'example.com';
|
||||
|
||||
o = s.taboption('hosts', form.SectionValue, '__hosts__', form.GridSection, 'domain', null,
|
||||
_('Hostnames are used to bind a domain name to an IP address. This setting is redundant for hostnames already configured with static leases, but it can be useful to rebind an FQDN.'));
|
||||
|
||||
|
@ -6,7 +6,7 @@ include $(TOPDIR)/rules.mk
|
||||
|
||||
PKG_NAME:=microsocks
|
||||
PKG_VERSION:=1.0.3
|
||||
PKG_RELEASE:=32
|
||||
PKG_RELEASE:=34
|
||||
|
||||
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
|
||||
PKG_SOURCE_URL:=https://codeload.github.com/rofl0r/microsocks/tar.gz/v$(PKG_VERSION)?
|
||||
|
@ -2,7 +2,7 @@ include $(TOPDIR)/rules.mk
|
||||
|
||||
PKG_NAME:=modeminfo
|
||||
PKG_VERSION:=0.3.3
|
||||
PKG_RELEASE:=26
|
||||
PKG_RELEASE:=27
|
||||
PKG_MAINTAINER:=Konstantine Shevlakov <shevlakov@132lan.ru>
|
||||
|
||||
include $(INCLUDE_DIR)/package.mk
|
||||
|
@ -61,6 +61,10 @@
|
||||
40102;KCell
|
||||
40107;Altel
|
||||
40108;Kazakhtelecom
|
||||
43404;Beeline
|
||||
43405;Ucell
|
||||
43407;MobiUz
|
||||
43408;Uzmobile
|
||||
43701;Beeline
|
||||
43703;Fonex
|
||||
43705;MegaCom
|
||||
|
@ -30,6 +30,7 @@ function modem_data(){
|
||||
ENBx=$(echo $CID | sed -e 's/..$//')
|
||||
ENBID=$(printf %d 0x$ENBx)
|
||||
CELL=$(printf %d 0x${CID: -2})
|
||||
CSQ_RSSI=$(echo "$DATA" | awk -F [:,] '/\+ZRSSI/{print $4}')
|
||||
RSRQ=$(echo "$DATA" | awk -F [:,] '/\+ZRSSI/{print $3}')
|
||||
RSRP=$(echo "$DATA" | awk -F [:,] '/\+ZRSSI/{print $2}')
|
||||
SINR=$(echo "$DATA" | awk -F [:,] '/\+ZRSSI/{printf "%.0f\n", $5}')
|
||||
@ -41,6 +42,7 @@ function modem_data(){
|
||||
SINR=$(echo "$DATA" | awk -F [:,] '/\+ZRSSI/{printf "%.0f\n", $3}')
|
||||
;;
|
||||
0|1|3)
|
||||
CSQ_RSSI=$(echo "$DATA" | awk -F [:,] '/\+ZRSSI/{print $2}')
|
||||
LAC=$(echo "$DATA" | awk -F [:,] '/\+CGREG/{gsub("\"","");print $4}')
|
||||
CID=$(echo "$DATA" | awk -F [:,] '/\+CGREG/{gsub("\"","");print $5}')
|
||||
EARFCN=$(echo "$DATA" | awk -F [:,] '/\+ZCELLINFO/{print $4}')
|
||||
|
@ -10,7 +10,7 @@ include $(INCLUDE_DIR)/kernel.mk
|
||||
|
||||
PKG_NAME:=my-default-settings
|
||||
PKG_VERSION:=1
|
||||
PKG_RELEASE:=206
|
||||
PKG_RELEASE:=208
|
||||
|
||||
include $(INCLUDE_DIR)/package.mk
|
||||
|
||||
|
@ -125,7 +125,7 @@ if [[ ! "$version" || "$version" -lt 1 ]]; then
|
||||
fi
|
||||
}
|
||||
|
||||
if [ -f /etc/config/wireless ]; then
|
||||
if [[ -f /etc/config/wireless ]]; then
|
||||
SSID=${hostname}
|
||||
SSID_PASSWD=""
|
||||
[ "$(uci -q get wireless.radio1.band)" == "5g" ] && uci -q set wireless.radio0.band="2g"
|
||||
|
@ -10,8 +10,8 @@ include $(TOPDIR)/rules.mk
|
||||
PKG_ARCH_quickstart:=$(ARCH)
|
||||
|
||||
PKG_NAME:=quickstart
|
||||
PKG_VERSION:=0.7.12
|
||||
PKG_RELEASE:=60
|
||||
PKG_VERSION:=0.7.13
|
||||
PKG_RELEASE:=61
|
||||
PKG_SOURCE:=$(PKG_NAME)-binary-$(PKG_VERSION).tar.gz
|
||||
PKG_SOURCE_URL:=https://github.com/linkease/istore-packages/releases/download/prebuilt/
|
||||
PKG_HASH:=skip
|
||||
|
@ -6,8 +6,8 @@
|
||||
include $(TOPDIR)/rules.mk
|
||||
|
||||
PKG_NAME:=sing-box
|
||||
PKG_VERSION:=1.3.5
|
||||
PKG_RELEASE:=51
|
||||
PKG_VERSION:=1.3.6
|
||||
PKG_RELEASE:=52
|
||||
|
||||
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
|
||||
PKG_SOURCE_URL:=https://codeload.github.com/SagerNet/sing-box/tar.gz/v$(PKG_VERSION)?
|
||||
|
@ -5,8 +5,8 @@
|
||||
include $(TOPDIR)/rules.mk
|
||||
|
||||
PKG_NAME:=v2rayA
|
||||
PKG_VERSION:=2.1.0
|
||||
PKG_RELEASE:=237
|
||||
PKG_VERSION:=2.1.1
|
||||
PKG_RELEASE:=238
|
||||
|
||||
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
|
||||
PKG_SOURCE_URL:=https://codeload.github.com/v2rayA/v2rayA/tar.gz/v$(PKG_VERSION)?
|
||||
@ -59,7 +59,7 @@ define Download/v2raya-web
|
||||
URL:=https://codeload.github.com/v2rayA/v2raya-web/tar.gz/v$(PKG_VERSION)?
|
||||
URL_FILE:=$(WEB_FILE)
|
||||
FILE:=$(WEB_FILE)
|
||||
HASH:=5fbd8298316167d16aa15b9e8d48c243623cf3a8cfd9b3d36590c35948a93912
|
||||
HASH:=d1293a94a41c3726880d7a230db2be399245fecdbcf98d9dde9bb414b4ec1e19
|
||||
endef
|
||||
|
||||
define Build/Prepare
|
||||
|
Loading…
Reference in New Issue
Block a user