luci-app-passwall: bump to 3.9-52
This commit is contained in:
parent
abd6a285cb
commit
4ffc3cdfbe
@ -7,8 +7,8 @@ include $(TOPDIR)/rules.mk
|
|||||||
|
|
||||||
PKG_NAME:=luci-app-passwall
|
PKG_NAME:=luci-app-passwall
|
||||||
PKG_VERSION:=3.9
|
PKG_VERSION:=3.9
|
||||||
PKG_RELEASE:=51
|
PKG_RELEASE:=52
|
||||||
PKG_DATE:=20200903
|
PKG_DATE:=20200905
|
||||||
|
|
||||||
PKG_BUILD_DIR := $(BUILD_DIR)/$(PKG_NAME)-$(PKG_VERSION)
|
PKG_BUILD_DIR := $(BUILD_DIR)/$(PKG_NAME)-$(PKG_VERSION)
|
||||||
|
|
||||||
@ -17,13 +17,9 @@ include $(INCLUDE_DIR)/package.mk
|
|||||||
define Package/$(PKG_NAME)/config
|
define Package/$(PKG_NAME)/config
|
||||||
menu "Configuration"
|
menu "Configuration"
|
||||||
|
|
||||||
config PACKAGE_$(PKG_NAME)_INCLUDE_ipt2socks
|
|
||||||
bool "Include ipt2socks"
|
|
||||||
default y
|
|
||||||
|
|
||||||
config PACKAGE_$(PKG_NAME)_INCLUDE_Shadowsocks
|
config PACKAGE_$(PKG_NAME)_INCLUDE_Shadowsocks
|
||||||
bool "Include Shadowsocks"
|
bool "Include Shadowsocks"
|
||||||
default n
|
default y
|
||||||
|
|
||||||
config PACKAGE_$(PKG_NAME)_INCLUDE_ShadowsocksR
|
config PACKAGE_$(PKG_NAME)_INCLUDE_ShadowsocksR
|
||||||
bool "Include ShadowsocksR"
|
bool "Include ShadowsocksR"
|
||||||
@ -35,7 +31,7 @@ config PACKAGE_$(PKG_NAME)_INCLUDE_ShadowsocksR_Server
|
|||||||
|
|
||||||
config PACKAGE_$(PKG_NAME)_INCLUDE_V2ray
|
config PACKAGE_$(PKG_NAME)_INCLUDE_V2ray
|
||||||
bool "Include V2ray"
|
bool "Include V2ray"
|
||||||
default y
|
default y if i386||x86_64||arm||aarch64
|
||||||
|
|
||||||
config PACKAGE_$(PKG_NAME)_INCLUDE_Trojan_Plus
|
config PACKAGE_$(PKG_NAME)_INCLUDE_Trojan_Plus
|
||||||
bool "Include Trojan_Plus"
|
bool "Include Trojan_Plus"
|
||||||
@ -43,7 +39,7 @@ config PACKAGE_$(PKG_NAME)_INCLUDE_Trojan_Plus
|
|||||||
|
|
||||||
config PACKAGE_$(PKG_NAME)_INCLUDE_Trojan_GO
|
config PACKAGE_$(PKG_NAME)_INCLUDE_Trojan_GO
|
||||||
bool "Include Trojan_GO"
|
bool "Include Trojan_GO"
|
||||||
default n
|
default y if i386||x86_64||arm||aarch64
|
||||||
|
|
||||||
config PACKAGE_$(PKG_NAME)_INCLUDE_Brook
|
config PACKAGE_$(PKG_NAME)_INCLUDE_Brook
|
||||||
bool "Include Brook"
|
bool "Include Brook"
|
||||||
@ -59,11 +55,7 @@ config PACKAGE_$(PKG_NAME)_INCLUDE_haproxy
|
|||||||
|
|
||||||
config PACKAGE_$(PKG_NAME)_INCLUDE_ChinaDNS_NG
|
config PACKAGE_$(PKG_NAME)_INCLUDE_ChinaDNS_NG
|
||||||
bool "Include ChinaDNS-NG"
|
bool "Include ChinaDNS-NG"
|
||||||
default y
|
default n
|
||||||
|
|
||||||
config PACKAGE_$(PKG_NAME)_INCLUDE_pdnsd
|
|
||||||
bool "Include pdnsd"
|
|
||||||
default y
|
|
||||||
|
|
||||||
config PACKAGE_$(PKG_NAME)_INCLUDE_https_dns_proxy
|
config PACKAGE_$(PKG_NAME)_INCLUDE_https_dns_proxy
|
||||||
bool "Include Https DNS Proxy(DoH)"
|
bool "Include Https DNS Proxy(DoH)"
|
||||||
@ -71,15 +63,15 @@ config PACKAGE_$(PKG_NAME)_INCLUDE_https_dns_proxy
|
|||||||
|
|
||||||
config PACKAGE_$(PKG_NAME)_INCLUDE_dns2socks
|
config PACKAGE_$(PKG_NAME)_INCLUDE_dns2socks
|
||||||
bool "Include dns2socks"
|
bool "Include dns2socks"
|
||||||
default y
|
default n
|
||||||
|
|
||||||
config PACKAGE_$(PKG_NAME)_INCLUDE_v2ray-plugin
|
config PACKAGE_$(PKG_NAME)_INCLUDE_v2ray-plugin
|
||||||
bool "Include v2ray-plugin (Shadowsocks plugin)"
|
bool "Include v2ray-plugin (Shadowsocks plugin)"
|
||||||
default n
|
default y if i386||x86_64||arm||aarch64
|
||||||
|
|
||||||
config PACKAGE_$(PKG_NAME)_INCLUDE_simple-obfs
|
config PACKAGE_$(PKG_NAME)_INCLUDE_simple-obfs
|
||||||
bool "Include simple-obfs (Shadowsocks plugin)"
|
bool "Include simple-obfs (Shadowsocks plugin)"
|
||||||
default n
|
default y if i386||x86_64||arm||aarch64
|
||||||
|
|
||||||
endmenu
|
endmenu
|
||||||
endef
|
endef
|
||||||
@ -91,7 +83,8 @@ define Package/$(PKG_NAME)
|
|||||||
PKGARCH:=all
|
PKGARCH:=all
|
||||||
DEPENDS:=+libmbedtls +iptables-mod-tproxy +ip +ipset +coreutils +coreutils-base64 +coreutils-nohup +luci-lib-jsonc \
|
DEPENDS:=+libmbedtls +iptables-mod-tproxy +ip +ipset +coreutils +coreutils-base64 +coreutils-nohup +luci-lib-jsonc \
|
||||||
+curl +ca-certificates +resolveip +unzip +dnsmasq-full +tcping +libuci-lua \
|
+curl +ca-certificates +resolveip +unzip +dnsmasq-full +tcping +libuci-lua \
|
||||||
+PACKAGE_$(PKG_NAME)_INCLUDE_ipt2socks:ipt2socks \
|
+ipt2socks \
|
||||||
|
+pdnsd-alt \
|
||||||
+PACKAGE_$(PKG_NAME)_INCLUDE_Shadowsocks:shadowsocks-libev-ss-redir \
|
+PACKAGE_$(PKG_NAME)_INCLUDE_Shadowsocks:shadowsocks-libev-ss-redir \
|
||||||
+PACKAGE_$(PKG_NAME)_INCLUDE_Shadowsocks:shadowsocks-libev-ss-local \
|
+PACKAGE_$(PKG_NAME)_INCLUDE_Shadowsocks:shadowsocks-libev-ss-local \
|
||||||
+PACKAGE_$(PKG_NAME)_INCLUDE_ShadowsocksR:shadowsocksr-libev-alt \
|
+PACKAGE_$(PKG_NAME)_INCLUDE_ShadowsocksR:shadowsocksr-libev-alt \
|
||||||
@ -104,7 +97,6 @@ define Package/$(PKG_NAME)
|
|||||||
+PACKAGE_$(PKG_NAME)_INCLUDE_kcptun:kcptun-client \
|
+PACKAGE_$(PKG_NAME)_INCLUDE_kcptun:kcptun-client \
|
||||||
+PACKAGE_$(PKG_NAME)_INCLUDE_haproxy:haproxy \
|
+PACKAGE_$(PKG_NAME)_INCLUDE_haproxy:haproxy \
|
||||||
+PACKAGE_$(PKG_NAME)_INCLUDE_ChinaDNS_NG:chinadns-ng \
|
+PACKAGE_$(PKG_NAME)_INCLUDE_ChinaDNS_NG:chinadns-ng \
|
||||||
+PACKAGE_$(PKG_NAME)_INCLUDE_pdnsd:pdnsd-alt \
|
|
||||||
+PACKAGE_$(PKG_NAME)_INCLUDE_https_dns_proxy:https-dns-proxy \
|
+PACKAGE_$(PKG_NAME)_INCLUDE_https_dns_proxy:https-dns-proxy \
|
||||||
+PACKAGE_$(PKG_NAME)_INCLUDE_dns2socks:dns2socks \
|
+PACKAGE_$(PKG_NAME)_INCLUDE_dns2socks:dns2socks \
|
||||||
+PACKAGE_$(PKG_NAME)_INCLUDE_v2ray-plugin:v2ray-plugin \
|
+PACKAGE_$(PKG_NAME)_INCLUDE_v2ray-plugin:v2ray-plugin \
|
||||||
|
|||||||
@ -24,10 +24,6 @@ uci:foreach(appname, "nodes", function(e)
|
|||||||
end)
|
end)
|
||||||
|
|
||||||
local socks_table = {}
|
local socks_table = {}
|
||||||
socks_table[#socks_table + 1] = {
|
|
||||||
id = "",
|
|
||||||
remarks = "127.0.0.1:9050 - dns2sock" .. translate(" Default")
|
|
||||||
}
|
|
||||||
uci:foreach(appname, "socks", function(s)
|
uci:foreach(appname, "socks", function(s)
|
||||||
if s.enabled == "1" and s.node then
|
if s.enabled == "1" and s.node then
|
||||||
local id, remarks
|
local id, remarks
|
||||||
@ -101,6 +97,15 @@ end
|
|||||||
|
|
||||||
s:tab("DNS", translate("DNS"))
|
s:tab("DNS", translate("DNS"))
|
||||||
|
|
||||||
|
if api.is_finded("chinadns-ng") then
|
||||||
|
o = s:taboption("DNS", Flag, "chinadns_ng", translate("Use ChinaDNS-NG"), translate("When checked, forced to be set to dnsmasq upstream DNS."))
|
||||||
|
o.default = "0"
|
||||||
|
|
||||||
|
o = s:taboption("DNS", Flag, "fair_mode", translate("ChinaDNS-NG Fair Mode"))
|
||||||
|
o.default = "1"
|
||||||
|
o:depends("chinadns_ng", "1")
|
||||||
|
end
|
||||||
|
|
||||||
o = s:taboption("DNS", Value, "up_china_dns", translate("Resolver For Local/WhiteList Domains") .. "(UDP)")
|
o = s:taboption("DNS", Value, "up_china_dns", translate("Resolver For Local/WhiteList Domains") .. "(UDP)")
|
||||||
o.description = translate("IP:Port mode acceptable, multi value split with english comma.") .. "<br />" .. translate("When the selection is not the default, this DNS is forced to be set to dnsmasq upstream DNS.")
|
o.description = translate("IP:Port mode acceptable, multi value split with english comma.") .. "<br />" .. translate("When the selection is not the default, this DNS is forced to be set to dnsmasq upstream DNS.")
|
||||||
o.default = "default"
|
o.default = "default"
|
||||||
@ -118,24 +123,18 @@ o:value("1.2.4.8", "1.2.4.8 (CNNIC DNS)")
|
|||||||
o:value("210.2.4.8", "210.2.4.8 (CNNIC DNS)")
|
o:value("210.2.4.8", "210.2.4.8 (CNNIC DNS)")
|
||||||
o:value("180.76.76.76", "180.76.76.76 (" .. translate("Baidu") .. "DNS)")
|
o:value("180.76.76.76", "180.76.76.76 (" .. translate("Baidu") .. "DNS)")
|
||||||
|
|
||||||
---- DoH URL
|
---- DoH
|
||||||
o = s:taboption("DNS", Value, "up_china_dns_doh_url", translate("DoH request address"))
|
o = s:taboption("DNS", Value, "up_china_dns_doh", translate("DoH request address"))
|
||||||
o.default = "https://dns.alidns.com/dns-query"
|
o.description = translate("When custom, Please follow the format strictly:") .. "<br />" .. "https://dns.alidns.com/dns-query,223.5.5.5,223.6.6.6<br />" .. "https://doh.pub/dns-query,119.29.29.29"
|
||||||
o:depends("up_china_dns", "https-dns-proxy")
|
o:value("https://dns.alidns.com/dns-query,223.5.5.5,223.6.6.6", "AliDNS")
|
||||||
|
o:value("https://doh.pub/dns-query,119.29.29.29,119.28.28.28", "DNSPod")
|
||||||
---- DoH Bootstrap
|
o.default = "https://dns.alidns.com/dns-query,223.5.5.5,223.6.6.6"
|
||||||
o = s:taboption("DNS", Value, "up_china_dns_doh_bootstrap", translate("DoH bootstrap DNS"), translate("The Bootstrap DNS server is used to resolve the IP address of the DoH resolver you specify as the upstream."))
|
|
||||||
o.default = "223.5.5.5,223.6.6.6"
|
|
||||||
o:depends("up_china_dns", "https-dns-proxy")
|
o:depends("up_china_dns", "https-dns-proxy")
|
||||||
|
|
||||||
---- DNS Forward Mode
|
---- DNS Forward Mode
|
||||||
o = s:taboption("DNS", Value, "dns_mode", translate("Filter Mode"))
|
o = s:taboption("DNS", ListValue, "dns_mode", translate("Filter Mode"))
|
||||||
o.description = translate("When the selection is chinadns-ng, forced to be set to dnsmasq upstream DNS.")
|
|
||||||
o.rmempty = false
|
o.rmempty = false
|
||||||
o:reset_values()
|
o:reset_values()
|
||||||
if api.is_finded("chinadns-ng") then
|
|
||||||
o:value("chinadns-ng", "ChinaDNS-NG")
|
|
||||||
end
|
|
||||||
if api.is_finded("pdnsd") then
|
if api.is_finded("pdnsd") then
|
||||||
o:value("pdnsd", "pdnsd")
|
o:value("pdnsd", "pdnsd")
|
||||||
end
|
end
|
||||||
@ -145,69 +144,45 @@ end
|
|||||||
if api.is_finded("https-dns-proxy") then
|
if api.is_finded("https-dns-proxy") then
|
||||||
o:value("https-dns-proxy", "https-dns-proxy(DoH)")
|
o:value("https-dns-proxy", "https-dns-proxy(DoH)")
|
||||||
end
|
end
|
||||||
|
o:value("udp", translatef("Requery DNS By %s", translate("UDP Node")))
|
||||||
o:value("nonuse", translate("No Filter"))
|
o:value("nonuse", translate("No Filter"))
|
||||||
|
o:value("custom", translate("Custom DNS"))
|
||||||
|
|
||||||
|
---- Custom DNS
|
||||||
|
o = s:taboption("DNS", Value, "custom_dns", translate("Custom DNS"))
|
||||||
|
o.default = "127.0.0.1#5353"
|
||||||
|
o:depends({dns_mode = "custom"})
|
||||||
|
|
||||||
o = s:taboption("DNS", ListValue, "up_trust_pdnsd_dns", translate("Resolver For The List Proxied"))
|
o = s:taboption("DNS", ListValue, "up_trust_pdnsd_dns", translate("Resolver For The List Proxied"))
|
||||||
-- o.description = translate("You can use other resolving DNS services as trusted DNS, Example: dns2socks, dns-forwarder... 127.0.0.1#5353<br />Only use two at most, english comma separation, If you do not fill in the # and the following port, you are using port 53.")
|
-- o.description = translate("You can use other resolving DNS services as trusted DNS, Example: dns2socks, dns-forwarder... 127.0.0.1#5353<br />Only use two at most, english comma separation, If you do not fill in the # and the following port, you are using port 53.")
|
||||||
o.default = ""
|
o.default = "tcp"
|
||||||
if api.is_finded("pdnsd") then
|
o:value("tcp", translatef("Requery DNS By %s", translate("TCP Node")))
|
||||||
o:value("", "pdnsd + " .. translate("Access Filtered DNS By ") .. translate("TCP Node"))
|
o:value("udp", translatef("Requery DNS By %s", translate("UDP Node")))
|
||||||
end
|
|
||||||
o:value("udp", translate("Access Filtered DNS By ") .. translate("UDP Node"))
|
|
||||||
if api.is_finded("dns2socks") then
|
|
||||||
o:value("dns2socks", "dns2socks")
|
|
||||||
end
|
|
||||||
o:depends("dns_mode", "pdnsd")
|
o:depends("dns_mode", "pdnsd")
|
||||||
|
|
||||||
o = s:taboption("DNS", ListValue, "up_trust_chinadns_ng_dns", translate("Resolver For The List Proxied") .. "(UDP)")
|
|
||||||
o.default = "pdnsd"
|
|
||||||
if api.is_finded("pdnsd") then
|
|
||||||
o:value("pdnsd", "pdnsd, " .. translate("Access Filtered DNS By ") .. translate("TCP Node"))
|
|
||||||
end
|
|
||||||
o:value("udp", translate("Access Filtered DNS By ") .. translate("UDP Node"))
|
|
||||||
if api.is_finded("dns2socks") then
|
|
||||||
o:value("dns2socks", "dns2socks")
|
|
||||||
end
|
|
||||||
if api.is_finded("https-dns-proxy") then
|
|
||||||
o:value("https-dns-proxy", "https-dns-proxy(DoH)")
|
|
||||||
end
|
|
||||||
o:depends("dns_mode", "chinadns-ng")
|
|
||||||
|
|
||||||
o = s:taboption("DNS", ListValue, "up_trust_doh_dns", translate("Resolver For The List Proxied"))
|
o = s:taboption("DNS", ListValue, "up_trust_doh_dns", translate("Resolver For The List Proxied"))
|
||||||
o:value("tcp", translate("Access Filtered DNS By ") .. translate("TCP Node"))
|
o:value("tcp", translatef("Requery DNS By %s", translate("TCP Node")))
|
||||||
o:value("socks", translate("Access Filtered DNS By ") .. translate("Socks Node"))
|
o:value("socks", translatef("Requery DNS By %s", translate("Socks Node")))
|
||||||
o:depends("dns_mode", "https-dns-proxy")
|
o:depends("dns_mode", "https-dns-proxy")
|
||||||
o:depends({dns_mode = "chinadns-ng", up_trust_chinadns_ng_dns = "https-dns-proxy"})
|
|
||||||
|
|
||||||
---- Upstream trust DNS Mode for ChinaDNS-NG
|
o = s:taboption("DNS", Value, "socks_server", translate("Socks Server"), translate("Make sure socks service is available on this address."))
|
||||||
o = s:taboption("DNS", Value, "socks_server", translate("Socks Server"), translate("Make sure socks service is available on this address if 'dns2socks' selected."))
|
|
||||||
o.default = ""
|
|
||||||
for k, v in pairs(socks_table) do o:value(v.id, v.remarks) end
|
for k, v in pairs(socks_table) do o:value(v.id, v.remarks) end
|
||||||
o:depends({dns_mode = "pdnsd", up_trust_pdnsd_dns = "dns2socks"})
|
|
||||||
o:depends({dns_mode = "dns2socks"})
|
o:depends({dns_mode = "dns2socks"})
|
||||||
o:depends({dns_mode = "chinadns-ng", up_trust_chinadns_ng_dns = "dns2socks"})
|
|
||||||
o:depends({dns_mode = "https-dns-proxy", up_trust_doh_dns = "socks"})
|
o:depends({dns_mode = "https-dns-proxy", up_trust_doh_dns = "socks"})
|
||||||
o:depends({dns_mode = "chinadns-ng", up_trust_chinadns_ng_dns = "https-dns-proxy", up_trust_doh_dns = "socks"})
|
|
||||||
|
|
||||||
o = s:taboption("DNS", Flag, "fair_mode", translate("ChinaDNS-NG Fair Mode"))
|
---- DoH
|
||||||
o.default = "1"
|
o = s:taboption("DNS", Value, "up_trust_doh", translate("DoH request address"))
|
||||||
o:depends({dns_mode = "chinadns-ng"})
|
o.description = translate("When custom, Please follow the format strictly:") .. "<br />" .. "https://dns.google/dns-query,8.8.8.8,8.8.4.4<br />" .. "https://doh.opendns.com/dns-query,208.67.222.222"
|
||||||
|
o:value("https://dns.adguard.com/dns-query,176.103.130.130,176.103.130.131", "AdGuard")
|
||||||
---- DoH URL
|
o:value("https://cloudflare-dns.com/dns-query,1.1.1.1,1.0.0.1", "Cloudflare")
|
||||||
o = s:taboption("DNS", Value, "doh_url", translate("DoH request address"))
|
o:value("https://security.cloudflare-dns.com/dns-query,1.1.1.2,1.0.0.2", "Cloudflare-Security")
|
||||||
o.default = "https://dns.google/dns-query"
|
o:value("https://doh.opendns.com/dns-query,208.67.222.222,208.67.220.220", "OpenDNS")
|
||||||
|
o:value("https://dns.google/dns-query,8.8.8.8,8.8.4.4", "Google")
|
||||||
|
o:value("https://doh.libredns.gr/dns-query,116.202.176.26", "LibreDNS")
|
||||||
|
o:value("https://doh.libredns.gr/ads,116.202.176.26", "LibreDNS (No Ads)")
|
||||||
|
o:value("https://dns.quad9.net/dns-query,9.9.9.9,149.112.112.112", "Quad9-Recommended")
|
||||||
|
o.default = "https://dns.google/dns-query,8.8.8.8,8.8.4.4"
|
||||||
o:depends({dns_mode = "https-dns-proxy"})
|
o:depends({dns_mode = "https-dns-proxy"})
|
||||||
o:depends({dns_mode = "chinadns-ng", up_trust_chinadns_ng_dns = "https-dns-proxy"})
|
|
||||||
|
|
||||||
---- DoH Bootstrap
|
|
||||||
o = s:taboption("DNS", Value, "doh_bootstrap", translate("DoH bootstrap DNS"), translate("The Bootstrap DNS server is used to resolve the IP address of the DoH resolver you specify as the upstream."))
|
|
||||||
o.default = "8.8.4.4"
|
|
||||||
o:value("8.8.4.4", "8.8.4.4 (Google DNS)")
|
|
||||||
o:value("8.8.8.8", "8.8.8.8 (Google DNS)")
|
|
||||||
o:value("208.67.222.222", "208.67.222.222 (Open DNS)")
|
|
||||||
o:value("208.67.220.220", "208.67.220.220 (Open DNS)")
|
|
||||||
o:depends({dns_mode = "https-dns-proxy"})
|
|
||||||
o:depends({dns_mode = "chinadns-ng", up_trust_chinadns_ng_dns = "https-dns-proxy"})
|
|
||||||
|
|
||||||
---- DNS Forward
|
---- DNS Forward
|
||||||
o = s:taboption("DNS", Value, "dns_forward", translate("Filtered DNS(For Proxied Domains)"), translate("IP:Port mode acceptable, the 1st for 'dns2socks' if split with english comma."))
|
o = s:taboption("DNS", Value, "dns_forward", translate("Filtered DNS(For Proxied Domains)"), translate("IP:Port mode acceptable, the 1st for 'dns2socks' if split with english comma."))
|
||||||
@ -218,16 +193,14 @@ o:value("208.67.222.222", "208.67.222.222 (Open DNS)")
|
|||||||
o:value("208.67.220.220", "208.67.220.220 (Open DNS)")
|
o:value("208.67.220.220", "208.67.220.220 (Open DNS)")
|
||||||
o:depends({dns_mode = "dns2socks"})
|
o:depends({dns_mode = "dns2socks"})
|
||||||
o:depends({dns_mode = "pdnsd"})
|
o:depends({dns_mode = "pdnsd"})
|
||||||
o:depends({dns_mode = "chinadns-ng", up_trust_chinadns_ng_dns = "pdnsd"})
|
o:depends({dns_mode = "udp"})
|
||||||
o:depends({dns_mode = "chinadns-ng", up_trust_chinadns_ng_dns = "udp"})
|
|
||||||
o:depends({dns_mode = "chinadns-ng", up_trust_chinadns_ng_dns = "dns2socks"})
|
|
||||||
|
|
||||||
|
--[[
|
||||||
o = s:taboption("DNS", Flag, "dns_cache", translate("Cache Resolved"))
|
o = s:taboption("DNS", Flag, "dns_cache", translate("Cache Resolved"))
|
||||||
o.default = "1"
|
o.default = "1"
|
||||||
o:depends({dns_mode = "chinadns-ng", up_trust_chinadns_ng_dns = "pdnsd"})
|
|
||||||
o:depends({dns_mode = "chinadns-ng", up_trust_chinadns_ng_dns = "dns2socks"})
|
|
||||||
o:depends({dns_mode = "dns2socks"})
|
o:depends({dns_mode = "dns2socks"})
|
||||||
o:depends({dns_mode = "pdnsd"})
|
o:depends({dns_mode = "pdnsd"})
|
||||||
|
]]--
|
||||||
|
|
||||||
o = s:taboption("DNS", Flag, "use_chnlist", translate("Use ChinaList"), translate("Only useful in non-gfwlist mode.") .. "<br />" .. translate("When used, the domestic DNS will be used only when the chnlist rule is hit, and the domain name that misses the rule will be resolved by remote DNS."))
|
o = s:taboption("DNS", Flag, "use_chnlist", translate("Use ChinaList"), translate("Only useful in non-gfwlist mode.") .. "<br />" .. translate("When used, the domestic DNS will be used only when the chnlist rule is hit, and the domain name that misses the rule will be resolved by remote DNS."))
|
||||||
o.default = "0"
|
o.default = "0"
|
||||||
|
|||||||
@ -145,6 +145,9 @@ msgstr "过滤模式"
|
|||||||
msgid "No Filter"
|
msgid "No Filter"
|
||||||
msgstr "不过滤"
|
msgstr "不过滤"
|
||||||
|
|
||||||
|
msgid "Custom DNS"
|
||||||
|
msgstr "自定义DNS"
|
||||||
|
|
||||||
msgid "IP:Port mode ecceptable for specify other filtered name services."
|
msgid "IP:Port mode ecceptable for specify other filtered name services."
|
||||||
msgstr "定义接受 IP:Port 形式的输入,以指定其它域名服务的过滤服务。"
|
msgstr "定义接受 IP:Port 形式的输入,以指定其它域名服务的过滤服务。"
|
||||||
|
|
||||||
@ -157,8 +160,14 @@ msgstr "接受 IP:Port 形式的输入,多个以英文逗号分隔。"
|
|||||||
msgid "When the selection is not the default, this DNS is forced to be set to dnsmasq upstream DNS."
|
msgid "When the selection is not the default, this DNS is forced to be set to dnsmasq upstream DNS."
|
||||||
msgstr "当选择的不是默认,则将此DNS强制设置为dnsmasq上游DNS。"
|
msgstr "当选择的不是默认,则将此DNS强制设置为dnsmasq上游DNS。"
|
||||||
|
|
||||||
msgid "When the selection is chinadns-ng, forced to be set to dnsmasq upstream DNS."
|
msgid "When custom, Please follow the format strictly:"
|
||||||
msgstr "当选择的是ChinaDNS-NG,则将强制设置为dnsmasq上游DNS。"
|
msgstr "当自定义时,请严格遵循以下格式:"
|
||||||
|
|
||||||
|
msgid "Use ChinaDNS-NG"
|
||||||
|
msgstr "使用ChinaDNS-NG"
|
||||||
|
|
||||||
|
msgid "When checked, forced to be set to dnsmasq upstream DNS."
|
||||||
|
msgstr "当勾选,则将强制设置为dnsmasq上游DNS。"
|
||||||
|
|
||||||
msgid "Use ChinaList"
|
msgid "Use ChinaList"
|
||||||
msgstr "使用chnlist"
|
msgstr "使用chnlist"
|
||||||
@ -178,8 +187,8 @@ msgstr "百度"
|
|||||||
msgid "Resolver For The List Proxied"
|
msgid "Resolver For The List Proxied"
|
||||||
msgstr "解析被代理的域名列表"
|
msgstr "解析被代理的域名列表"
|
||||||
|
|
||||||
msgid "Access Filtered DNS By"
|
msgid "Requery DNS By %s"
|
||||||
msgstr "由过滤DNS解析,经过"
|
msgstr "通过%s请求DNS"
|
||||||
|
|
||||||
msgid "Forward To Socks Server"
|
msgid "Forward To Socks Server"
|
||||||
msgstr "转发至 Socks 服务器"
|
msgstr "转发至 Socks 服务器"
|
||||||
@ -190,8 +199,8 @@ msgstr "Socks服务器"
|
|||||||
msgid "Misconfigured"
|
msgid "Misconfigured"
|
||||||
msgstr "配置不当"
|
msgstr "配置不当"
|
||||||
|
|
||||||
msgid "Make sure socks service is available on this address if 'dns2socks' selected."
|
msgid "Make sure socks service is available on this address."
|
||||||
msgstr "如启用了 'dns2socks' 请确保此Socks服务可用。"
|
msgstr "请确保此Socks服务可用。"
|
||||||
|
|
||||||
msgid "ChinaDNS-NG Fair Mode"
|
msgid "ChinaDNS-NG Fair Mode"
|
||||||
msgstr "ChinaDNS-NG 公平模式"
|
msgstr "ChinaDNS-NG 公平模式"
|
||||||
|
|||||||
@ -6,7 +6,7 @@ config global
|
|||||||
option dns_mode 'pdnsd'
|
option dns_mode 'pdnsd'
|
||||||
option up_china_dns 'default'
|
option up_china_dns 'default'
|
||||||
option dns_forward '8.8.4.4'
|
option dns_forward '8.8.4.4'
|
||||||
option use_chnlist '1'
|
option use_chnlist '0'
|
||||||
option use_tcp_node_resolve_dns '1'
|
option use_tcp_node_resolve_dns '1'
|
||||||
option tcp_proxy_mode 'chnroute'
|
option tcp_proxy_mode 'chnroute'
|
||||||
option udp_proxy_mode 'chnroute'
|
option udp_proxy_mode 'chnroute'
|
||||||
|
|||||||
@ -46,7 +46,7 @@ config_t_get() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
get_enabled_anonymous_secs() {
|
get_enabled_anonymous_secs() {
|
||||||
uci -q show "${CONFIG}" | grep "${1}\[.*\.enabled='1'" | cut -d'.' -sf2
|
uci -q show "${CONFIG}" | grep "${1}\[.*\.enabled='1'" | cut -d '.' -sf2
|
||||||
}
|
}
|
||||||
|
|
||||||
get_host_ip() {
|
get_host_ip() {
|
||||||
@ -282,6 +282,7 @@ load_config() {
|
|||||||
NO_PROXY=1
|
NO_PROXY=1
|
||||||
}
|
}
|
||||||
|
|
||||||
|
CHINADNS_NG=$(config_t_get global chinadns_ng 0)
|
||||||
DNS_MODE=$(config_t_get global dns_mode pdnsd)
|
DNS_MODE=$(config_t_get global dns_mode pdnsd)
|
||||||
DNS_FORWARD=$(config_t_get global dns_forward 8.8.4.4:53 | sed 's/:/#/g')
|
DNS_FORWARD=$(config_t_get global dns_forward 8.8.4.4:53 | sed 's/:/#/g')
|
||||||
DNS_CACHE=$(config_t_get global dns_cache 1)
|
DNS_CACHE=$(config_t_get global dns_cache 1)
|
||||||
@ -597,7 +598,7 @@ start_crontab() {
|
|||||||
if [ "$autoupdate" = "1" ]; then
|
if [ "$autoupdate" = "1" ]; then
|
||||||
local t="0 $dayupdate * * $weekupdate"
|
local t="0 $dayupdate * * $weekupdate"
|
||||||
[ "$weekupdate" = "7" ] && t="0 $dayupdate * * *"
|
[ "$weekupdate" = "7" ] && t="0 $dayupdate * * *"
|
||||||
echo "$t lua $APP_PATH/rule_update.lua nil log > /dev/null 2>&1 &" >>/etc/crontabs/root
|
echo "$t lua $APP_PATH/rule_update.lua log > /dev/null 2>&1 &" >>/etc/crontabs/root
|
||||||
echolog "配置定时任务:自动更新规则。"
|
echolog "配置定时任务:自动更新规则。"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
@ -630,30 +631,78 @@ stop_crontab() {
|
|||||||
|
|
||||||
start_dns() {
|
start_dns() {
|
||||||
if [ "${LOCAL_DNS}" = "https-dns-proxy" ]; then
|
if [ "${LOCAL_DNS}" = "https-dns-proxy" ]; then
|
||||||
up_china_dns_doh_url=$(config_t_get global up_china_dns_doh_url "https://dns.alidns.com/dns-query")
|
_doh=$(config_t_get global up_china_dns_doh "https://dns.alidns.com/dns-query,223.5.5.5,223.6.6.6,2400:3200::1,2400:3200:baba::1")
|
||||||
up_china_dns_doh_bootstrap=$(config_t_get global up_china_dns_doh_bootstrap "223.5.5.5,223.6.6.6")
|
_doh_url=$(echo $_doh | awk -F ',' '{print $1}')
|
||||||
ln_start_bin "$(first_type https-dns-proxy)" https-dns-proxy -a 127.0.0.1 -p "${LOCAL_DOH_PORT}" -b "${up_china_dns_doh_bootstrap}" -r "${up_china_dns_doh_url}" -4
|
_doh_bootstrap=$(echo $_doh | cut -d ',' -sf 2-)
|
||||||
|
ln_start_bin "$(first_type https-dns-proxy)" https-dns-proxy -a 127.0.0.1 -p "${LOCAL_DOH_PORT}" -b "${_doh_bootstrap}" -r "${_doh_url}" -4
|
||||||
LOCAL_DNS="127.0.0.1#${LOCAL_DOH_PORT}"
|
LOCAL_DNS="127.0.0.1#${LOCAL_DOH_PORT}"
|
||||||
|
unset _doh _doh_url _doh_bootstrap
|
||||||
fi
|
fi
|
||||||
|
|
||||||
local dns2socks_socks_server dns2socks_forward dns2sock_cache doh_port pdnsd_port pdnsd_forward other_port up_trust_pdnsd_dns msg
|
local pdnsd_forward other_port up_trust_pdnsd_dns msg
|
||||||
local global chnlist returnhome china_ng_chn china_ng_gfw chnlist_param gfwlist_param extra_mode up_trust_chinadns_ng_dns
|
local global chnlist returnhome china_ng_chn china_ng_gfw chnlist_param gfwlist_param extra_mode
|
||||||
dns2socks_socks_server=$(echo $(config_t_get global socks_server 127.0.0.1:9050) | sed "s/#/:/g")
|
dns_listen_port=${DNS_PORT}
|
||||||
dns2socks_forward=$(get_first_dns DNS_FORWARD 53 | sed 's/#/:/g')
|
|
||||||
dns2socks_listen="127.0.0.1:${DNS_PORT}"
|
|
||||||
[ "$DNS_CACHE" == "0" ] && dns2sock_cache="/d"
|
|
||||||
doh_port=${DNS_PORT}
|
|
||||||
pdnsd_port=${DNS_PORT}
|
|
||||||
pdnsd_forward=${DNS_FORWARD}
|
pdnsd_forward=${DNS_FORWARD}
|
||||||
china_ng_chn="${LOCAL_DNS}"
|
|
||||||
other_port=$(expr $DNS_PORT + 1)
|
other_port=$(expr $DNS_PORT + 1)
|
||||||
china_ng_gfw="127.0.0.1#${other_port}"
|
china_ng_gfw="127.0.0.1#${other_port}"
|
||||||
|
china_ng_chn="${LOCAL_DNS}"
|
||||||
returnhome=$(echo "${TCP_PROXY_MODE}${LOCALHOST_TCP_PROXY_MODE}${UDP_PROXY_MODE}${LOCALHOST_UDP_PROXY_MODE}" | grep "returnhome")
|
returnhome=$(echo "${TCP_PROXY_MODE}${LOCALHOST_TCP_PROXY_MODE}${UDP_PROXY_MODE}${LOCALHOST_UDP_PROXY_MODE}" | grep "returnhome")
|
||||||
global=$(echo "${TCP_PROXY_MODE}${LOCALHOST_TCP_PROXY_MODE}${UDP_PROXY_MODE}${LOCALHOST_UDP_PROXY_MODE}" | grep "global")
|
global=$(echo "${TCP_PROXY_MODE}${LOCALHOST_TCP_PROXY_MODE}${UDP_PROXY_MODE}${LOCALHOST_UDP_PROXY_MODE}" | grep "global")
|
||||||
chnlist=$(echo "${TCP_PROXY_MODE}${LOCALHOST_TCP_PROXY_MODE}${UDP_PROXY_MODE}${LOCALHOST_UDP_PROXY_MODE}" | grep "chnroute")
|
chnlist=$(echo "${TCP_PROXY_MODE}${LOCALHOST_TCP_PROXY_MODE}${UDP_PROXY_MODE}${LOCALHOST_UDP_PROXY_MODE}" | grep "chnroute")
|
||||||
[ -n "${returnhome}" ] && china_ng_chn="${china_ng_gfw}" && china_ng_gfw="${LOCAL_DNS}"
|
[ -n "${returnhome}" ] && china_ng_chn="${china_ng_gfw}" && china_ng_gfw="${LOCAL_DNS}"
|
||||||
sed -n 's/^ipset=\/\.\?\([^/]*\).*$/\1/p' "${RULES_PATH}/gfwlist.conf" | sort -u > "${TMP_PATH}/gfwlist.txt"
|
sed -n 's/^ipset=\/\.\?\([^/]*\).*$/\1/p' "${RULES_PATH}/gfwlist.conf" | sort -u > "${TMP_PATH}/gfwlist.txt"
|
||||||
echolog "过滤服务配置:准备接管域名解析[$?]..."
|
echolog "过滤服务配置:准备接管域名解析[$?]..."
|
||||||
|
|
||||||
|
[ "$CHINADNS_NG" = "1" ] && {
|
||||||
|
echolog " | - (chinadns-ng) 只支持2~4级的域名过滤..."
|
||||||
|
[ -z "${global}${chnlist}" ] && echolog " | - (chinadns-ng) 此模式下,列表外的域名查询会同时发送给本地DNS(可切换到Pdnsd + TCP节点模式解决)..."
|
||||||
|
[ -n "${returnhome}" ] && msg="本地" || msg="代理"
|
||||||
|
[ -z "${global}${chnlist}" ] && echolog " | - (chinadns-ng) 列表外域名查询的结果,不在中国IP段内(chnroute/chnroute6)时,只采信${msg} DNS 的应答..."
|
||||||
|
echolog " | - (chinadns-ng) 上游 DNS (${china_ng_gfw}) 有一定概率会比 DNS (${china_ng_chn}) 先返回的话(比如 DNS 的本地查询缓存),启用 '公平模式' 可以优先接受${msg} DNS 的中国IP段内(chnroute/chnroute6)的应答..."
|
||||||
|
if [ "$DNS_MODE" = "pdnsd" ]; then
|
||||||
|
msg="pdnsd"
|
||||||
|
elif [ "$DNS_MODE" = "dns2socks" ]; then
|
||||||
|
#[ -n "${global}${chnlist}" ] && TUN_DNS=${china_ng_gfw}
|
||||||
|
msg="dns2socks"
|
||||||
|
elif [ "$DNS_MODE" = "https-dns-proxy" ]; then
|
||||||
|
msg="https-dns-proxy(DoH)"
|
||||||
|
elif [ "$DNS_MODE" = "udp" ]; then
|
||||||
|
use_udp_node_resolve_dns=1
|
||||||
|
if [ -z "${returnhome}" ]; then
|
||||||
|
china_ng_gfw="${DNS_FORWARD}"
|
||||||
|
else
|
||||||
|
china_ng_chn="${DNS_FORWARD}"
|
||||||
|
fi
|
||||||
|
msg="udp"
|
||||||
|
elif [ "$DNS_MODE" = "custom" ]; then
|
||||||
|
custom_dns=$(config_t_get global custom_dns)
|
||||||
|
china_ng_gfw="$(echo ${custom_dns} | sed 's/:/#/g')"
|
||||||
|
msg="自定义DNS"
|
||||||
|
fi
|
||||||
|
chnlist_param=
|
||||||
|
[ "$USE_CHNLIST" = "1" ] && {
|
||||||
|
cp -a "${RULES_PATH}/chnlist" "${TMP_PATH}/chnlist"
|
||||||
|
if [ -z "${returnhome}" ]; then
|
||||||
|
cat "${RULES_PATH}/direct_host" >> "${TMP_PATH}/chnlist"
|
||||||
|
echolog " | - [$?](chinadns-ng) 域名白名单合并到中国域名表"
|
||||||
|
cat "${RULES_PATH}/proxy_host" >> "${TMP_PATH}/gfwlist.txt"
|
||||||
|
echolog " | - [$?](chinadns-ng) 代理域名表合并到防火墙域名表"
|
||||||
|
gfwlist_param="${TMP_PATH}/gfwlist.txt"
|
||||||
|
else
|
||||||
|
echolog " | - (chinadns-ng) 白名单不与中国域名表合并"
|
||||||
|
cat "${RULES_PATH}/proxy_host" >> "${TMP_PATH}/chnlist"
|
||||||
|
echolog " | - [$?](chinadns-ng) 忽略防火墙域名表,代理域名表合并到中国域名表"
|
||||||
|
fi
|
||||||
|
chnlist_param="${TMP_PATH}/chnlist"
|
||||||
|
chnlist_param=${chnlist_param:+-m "${chnlist_param}" -M}
|
||||||
|
}
|
||||||
|
[ "$(config_t_get global fair_mode 1)" = "1" ] && extra_mode="-f"
|
||||||
|
ln_start_bin "$(first_type chinadns-ng)" chinadns-ng -l "${dns_listen_port}" ${china_ng_chn:+-c "${china_ng_chn}"} ${chnlist_param} ${china_ng_gfw:+-t "${china_ng_gfw}"} ${gfwlist_param:+-g "${gfwlist_param}"} $extra_mode
|
||||||
|
echolog " + 过滤服务:ChinaDNS-NG(:${dns_listen_port}${extra_mode}) + ${msg}:中国域名列表:${china_ng_chn:-D114.114.114.114},防火墙域名列表:${china_ng_gfw:-D8.8.8.8}"
|
||||||
|
#[ -n "${global}${chnlist}" ] && [ -z "${returnhome}" ] && TUN_DNS="${china_ng_gfw}"
|
||||||
|
dns_listen_port=${other_port}
|
||||||
|
}
|
||||||
|
|
||||||
case "$DNS_MODE" in
|
case "$DNS_MODE" in
|
||||||
nonuse)
|
nonuse)
|
||||||
echolog " - 被禁用,设置为非 '默认DNS' 并开启广告过滤可以按本插件内置的广告域名表进行过滤..."
|
echolog " - 被禁用,设置为非 '默认DNS' 并开启广告过滤可以按本插件内置的广告域名表进行过滤..."
|
||||||
@ -675,11 +724,7 @@ start_dns() {
|
|||||||
;;
|
;;
|
||||||
pdnsd)
|
pdnsd)
|
||||||
up_trust_pdnsd_dns=$(config_t_get global up_trust_pdnsd_dns "nil")
|
up_trust_pdnsd_dns=$(config_t_get global up_trust_pdnsd_dns "nil")
|
||||||
if [ "$up_trust_pdnsd_dns" = "dns2socks" ]; then
|
if [ "$up_trust_pdnsd_dns" = "udp" ]; then
|
||||||
[ -n "${returnhome}" ] && pdnsd_forward=${china_ng_chn} || pdnsd_forward=${china_ng_gfw}
|
|
||||||
dns2socks_listen=${pdnsd_forward}
|
|
||||||
msg="dns2socks"
|
|
||||||
elif [ "$up_trust_pdnsd_dns" = "udp" ]; then
|
|
||||||
use_udp_node_resolve_dns=1
|
use_udp_node_resolve_dns=1
|
||||||
msg="UDP节点"
|
msg="UDP节点"
|
||||||
elif [ "${up_trust_pdnsd_dns}" = "nil" ]; then
|
elif [ "${up_trust_pdnsd_dns}" = "nil" ]; then
|
||||||
@ -687,82 +732,50 @@ start_dns() {
|
|||||||
fi
|
fi
|
||||||
echolog " - 域名解析:pdnsd + 使用(${msg})解析域名..."
|
echolog " - 域名解析:pdnsd + 使用(${msg})解析域名..."
|
||||||
;;
|
;;
|
||||||
chinadns-ng)
|
udp)
|
||||||
up_trust_chinadns_ng_dns=$(config_t_get global up_trust_chinadns_ng_dns "pdnsd")
|
use_udp_node_resolve_dns=1
|
||||||
echolog " | - (chinadns-ng) 只支持2~4级的域名过滤..."
|
msg="直接使用UDP节点请求DNS"
|
||||||
[ -z "${global}${chnlist}" ] && echolog " | - (chinadns-ng) 此模式下,列表外的域名查询会同时发送给本地DNS(可切换到Pdnsd + TCP节点模式解决)..."
|
|
||||||
[ -n "${returnhome}" ] && msg="本地" || msg="代理"
|
|
||||||
[ -z "${global}${chnlist}" ] && echolog " | - (chinadns-ng) 列表外域名查询的结果,不在中国IP段内(chnroute/chnroute6)时,只采信${msg} DNS 的应答..."
|
|
||||||
echolog " | - (chinadns-ng) 上游 DNS (${china_ng_gfw}) 有一定概率会比 DNS (${china_ng_chn}) 先返回的话(比如 DNS 的本地查询缓存),启用 '公平模式' 可以优先接受${msg} DNS 的中国IP段内(chnroute/chnroute6)的应答..."
|
|
||||||
if [ "$up_trust_chinadns_ng_dns" = "pdnsd" ]; then
|
|
||||||
pdnsd_port=${other_port}
|
|
||||||
msg="pdnsd"
|
|
||||||
elif [ "$up_trust_chinadns_ng_dns" = "dns2socks" ]; then
|
|
||||||
dns2socks_listen=${china_ng_gfw}
|
|
||||||
#[ -n "${global}${chnlist}" ] && TUN_DNS="${dns2socks_listen}"
|
|
||||||
msg="dns2socks"
|
|
||||||
elif [ "$up_trust_chinadns_ng_dns" = "https-dns-proxy" ]; then
|
|
||||||
doh_port=${other_port}
|
|
||||||
msg="https-dns-proxy(DoH)"
|
|
||||||
elif [ "$up_trust_chinadns_ng_dns" = "udp" ]; then
|
|
||||||
use_udp_node_resolve_dns=1
|
|
||||||
if [ -z "${returnhome}" ]; then
|
|
||||||
china_ng_gfw=${DNS_FORWARD}
|
|
||||||
else
|
|
||||||
china_ng_chn="${DNS_FORWARD}"
|
|
||||||
fi
|
|
||||||
msg="udp"
|
|
||||||
fi
|
|
||||||
chnlist_param=
|
|
||||||
[ "$USE_CHNLIST" = "1" ] && {
|
|
||||||
cp -a "${RULES_PATH}/chnlist" "${TMP_PATH}/chnlist"
|
|
||||||
if [ -z "${returnhome}" ]; then
|
|
||||||
cat "${RULES_PATH}/direct_host" >> "${TMP_PATH}/chnlist"
|
|
||||||
echolog " | - [$?](chinadns-ng) 域名白名单合并到中国域名表"
|
|
||||||
cat "${RULES_PATH}/proxy_host" >> "${TMP_PATH}/gfwlist.txt"
|
|
||||||
echolog " | - [$?](chinadns-ng) 代理域名表合并到防火墙域名表"
|
|
||||||
gfwlist_param="${TMP_PATH}/gfwlist.txt"
|
|
||||||
else
|
|
||||||
echolog " | - (chinadns-ng) 白名单不与中国域名表合并"
|
|
||||||
cat "${RULES_PATH}/proxy_host" >> "${TMP_PATH}/chnlist"
|
|
||||||
echolog " | - [$?](chinadns-ng) 忽略防火墙域名表,代理域名表合并到中国域名表"
|
|
||||||
fi
|
|
||||||
chnlist_param="${TMP_PATH}/chnlist"
|
|
||||||
chnlist_param=${chnlist_param:+-m "${chnlist_param}" -M}
|
|
||||||
}
|
|
||||||
[ "$(config_t_get global fair_mode 1)" = "1" ] && extra_mode="-f"
|
|
||||||
ln_start_bin "$(first_type chinadns-ng)" chinadns-ng -l "${DNS_PORT}" ${china_ng_chn:+-c "${china_ng_chn}"} ${chnlist_param} ${china_ng_gfw:+-t "${china_ng_gfw}"} ${gfwlist_param:+-g "${gfwlist_param}"} $extra_mode
|
|
||||||
echolog " + 过滤服务:ChinaDNS-NG(:${DNS_PORT}${extra_mode}) + ${msg}:中国域名列表:${china_ng_chn:-D114.114.114.114},防火墙域名列表:${china_ng_gfw:-D8.8.8.8}"
|
|
||||||
#[ -n "${global}${chnlist}" ] && [ -z "${returnhome}" ] && TUN_DNS="${china_ng_gfw}"
|
|
||||||
;;
|
;;
|
||||||
*)
|
custom)
|
||||||
TUN_DNS="$(echo ${DNS_MODE} | sed 's/:/#/g')"
|
[ "$CHINADNS_NG" != "1" ] && {
|
||||||
DNS_MODE="other_dns"
|
custom_dns=$(config_t_get global custom_dns)
|
||||||
echolog " - 域名解析:指定DNS服务器(支持UDP查询)解析域名:${TUN_DNS}"
|
TUN_DNS="$(echo ${custom_dns} | sed 's/:/#/g')"
|
||||||
|
echolog " - 域名解析 直接使用UDP协议自定义DNS($TUN_DNS)解析..."
|
||||||
|
}
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
if [ -n "$(echo ${DNS_MODE}${up_trust_chinadns_ng_dns} | grep pdnsd)" ]; then
|
if [ -n "$(echo ${DNS_MODE} | grep pdnsd)" ]; then
|
||||||
gen_pdnsd_config "${pdnsd_port}" "${pdnsd_forward}"
|
gen_pdnsd_config "${dns_listen_port}" "${pdnsd_forward}"
|
||||||
ln_start_bin "$(first_type pdnsd)" pdnsd --daemon -c "${TMP_PATH}/pdnsd/pdnsd.conf" -d
|
ln_start_bin "$(first_type pdnsd)" pdnsd --daemon -c "${TMP_PATH}/pdnsd/pdnsd.conf" -d
|
||||||
fi
|
fi
|
||||||
if [ -n "$(echo ${DNS_MODE}${up_trust_chinadns_ng_dns} | grep 'https-dns-proxy')" ]; then
|
if [ -n "$(echo ${DNS_MODE} | grep 'https-dns-proxy')" ]; then
|
||||||
doh_url=$(config_t_get global doh_url "https://dns.google/dns-query")
|
up_trust_doh=$(config_t_get global up_trust_doh "https://dns.google/dns-query,8.8.8.8,8.8.4.4")
|
||||||
doh_bootstrap=$(config_t_get global doh_bootstrap "8.8.4.4")
|
_doh_url=$(echo $up_trust_doh | awk -F ',' '{print $1}')
|
||||||
|
_doh_bootstrap=$(echo $up_trust_doh | cut -d ',' -sf 2-)
|
||||||
|
|
||||||
up_trust_doh_dns=$(config_t_get global up_trust_doh_dns "tcp")
|
up_trust_doh_dns=$(config_t_get global up_trust_doh_dns "tcp")
|
||||||
if [ "$up_trust_doh_dns" = "socks" ]; then
|
if [ "$up_trust_doh_dns" = "socks" ]; then
|
||||||
socks_server=$(echo $(config_t_get global socks_server 127.0.0.1:9050) | sed "s/#/:/g")
|
socks_server=$(echo $(config_t_get global socks_server 127.0.0.1:9050) | sed "s/#/:/g")
|
||||||
ln_start_bin "$(first_type https-dns-proxy)" https-dns-proxy -a 127.0.0.1 -p "${doh_port}" -b "${doh_bootstrap}" -r "${doh_url}" -4 -t socks5h://${socks_server}
|
ln_start_bin "$(first_type https-dns-proxy)" https-dns-proxy -a 127.0.0.1 -p "${dns_listen_port}" -b "${_doh_bootstrap}" -r "${_doh_url}" -4 -t socks5h://${socks_server}
|
||||||
elif [ "${up_trust_doh_dns}" = "tcp" ]; then
|
elif [ "${up_trust_doh_dns}" = "tcp" ]; then
|
||||||
DNS_FORWARD=${doh_bootstrap}:443
|
DNS_FORWARD=""
|
||||||
ln_start_bin "$(first_type https-dns-proxy)" https-dns-proxy -a 127.0.0.1 -p "${doh_port}" -b "${doh_bootstrap}" -r "${doh_url}" -4
|
_doh_bootstrap_dns=$(echo $_doh_bootstrap | sed "s/,/ /g")
|
||||||
|
for _dns in $_doh_bootstrap_dns; do
|
||||||
|
_dns=$(echo $_dns | awk -F ':' '{print $1}'):443
|
||||||
|
[ -n "$DNS_FORWARD" ] && DNS_FORWARD=${DNS_FORWARD},${_dns} || DNS_FORWARD=${_dns}
|
||||||
|
done
|
||||||
|
ln_start_bin "$(first_type https-dns-proxy)" https-dns-proxy -a 127.0.0.1 -p "${dns_listen_port}" -b "${_doh_bootstrap}" -r "${_doh_url}" -4
|
||||||
|
unset _dns _doh_bootstrap_dns
|
||||||
fi
|
fi
|
||||||
|
unset _doh_url _doh_bootstrap
|
||||||
fi
|
fi
|
||||||
if [ -n "$(echo ${DNS_MODE}${up_trust_chinadns_ng_dns}${up_trust_pdnsd_dns} | grep dns2socks)" ]; then
|
if [ -n "$(echo ${DNS_MODE}${up_trust_pdnsd_dns} | grep dns2socks)" ]; then
|
||||||
dns2socks_listen=$(echo "${dns2socks_listen}" | sed 's/#/:/g')
|
local dns2socks_socks_server=$(echo $(config_t_get global socks_server 127.0.0.1:9050) | sed "s/#/:/g")
|
||||||
ln_start_bin "$(first_type dns2socks)" dns2socks "$dns2socks_socks_server" "$dns2socks_forward" "$dns2socks_listen" $dns2sock_cache
|
local dns2socks_forward=$(get_first_dns DNS_FORWARD 53 | sed 's/#/:/g')
|
||||||
echolog " - dns2sock(${dns2socks_listen}${dns2sock_cache}),${dns2socks_socks_server:-127.0.0.1:9050} -> ${dns2socks_forward-D46.182.19.48:53}"
|
[ "$DNS_CACHE" == "0" ] && local dns2sock_cache="/d"
|
||||||
#[ "${DNS_MODE}" = "chinadns-ng" ] && [ -n "${global}${chnlist}" ] && [ -z "${returnhome}" ] && TUN_DNS=$(echo "${dns2socks_listen}" | sed 's/:/#/g')
|
ln_start_bin "$(first_type dns2socks)" dns2socks "$dns2socks_socks_server" "$dns2socks_forward" "127.0.0.1:$dns_listen_port" $dns2sock_cache
|
||||||
|
echolog " - dns2sock(127.0.0.1:${dns_listen_port}${dns2sock_cache}),${dns2socks_socks_server:-127.0.0.1:9050} -> ${dns2socks_forward-D46.182.19.48:53}"
|
||||||
|
#[ "$CHINADNS_NG" = "1" ] && [ -n "${global}${chnlist}" ] && [ -z "${returnhome}" ] && TUN_DNS=$(echo "${dns_listen_port}" | sed 's/:/#/g')
|
||||||
fi
|
fi
|
||||||
[ "${use_udp_node_resolve_dns}" = "1" ] && echolog " * 要求代理 DNS 请求,如上游 DNS 非直连地址,确保 UDP 代理打开,并且已经正确转发"
|
[ "${use_udp_node_resolve_dns}" = "1" ] && echolog " * 要求代理 DNS 请求,如上游 DNS 非直连地址,确保 UDP 代理打开,并且已经正确转发"
|
||||||
[ "${use_tcp_node_resolve_dns}" = "1" ] && echolog " * 请确认上游 DNS 支持 TCP 查询,如非直连地址,确保 TCP 代理打开,并且已经正确转发"
|
[ "${use_tcp_node_resolve_dns}" = "1" ] && echolog " * 请确认上游 DNS 支持 TCP 查询,如非直连地址,确保 TCP 代理打开,并且已经正确转发"
|
||||||
@ -798,7 +811,7 @@ add_dnsmasq() {
|
|||||||
#始终用国内DNS解析直连(白名单)列表
|
#始终用国内DNS解析直连(白名单)列表
|
||||||
fwd_dns="${LOCAL_DNS}"
|
fwd_dns="${LOCAL_DNS}"
|
||||||
#如果使用Chinadns-NG直接交给Chinadns-NG处理
|
#如果使用Chinadns-NG直接交给Chinadns-NG处理
|
||||||
[ "${DNS_MODE}" = "chinadns-ng" ] && unset fwd_dns
|
[ "$CHINADNS_NG" = "1" ] && unset fwd_dns
|
||||||
#如果没使用chnlist直接使用默认DNS
|
#如果没使用chnlist直接使用默认DNS
|
||||||
[ "${USE_CHNLIST}" = "0" ] && unset fwd_dns
|
[ "${USE_CHNLIST}" = "0" ] && unset fwd_dns
|
||||||
sort -u "${RULES_PATH}/direct_host" | gen_dnsmasq_items "whitelist" "${fwd_dns}" "${TMP_DNSMASQ_PATH}/direct_host.conf"
|
sort -u "${RULES_PATH}/direct_host" | gen_dnsmasq_items "whitelist" "${fwd_dns}" "${TMP_DNSMASQ_PATH}/direct_host.conf"
|
||||||
@ -810,7 +823,7 @@ add_dnsmasq() {
|
|||||||
[ -n "${returnhome}" ] || [ -n "${chnlist}" ] && {
|
[ -n "${returnhome}" ] || [ -n "${chnlist}" ] && {
|
||||||
[ -n "${global}" ] && unset fwd_dns
|
[ -n "${global}" ] && unset fwd_dns
|
||||||
#如果使用Chinadns-NG直接交给Chinadns-NG处理
|
#如果使用Chinadns-NG直接交给Chinadns-NG处理
|
||||||
[ "${DNS_MODE}" = "chinadns-ng" ] && unset fwd_dns
|
[ "$CHINADNS_NG" = "1" ] && unset fwd_dns
|
||||||
#如果使用回国模式,设置dns为远程DNS。
|
#如果使用回国模式,设置dns为远程DNS。
|
||||||
[ -n "${returnhome}" ] && fwd_dns="${TUN_DNS}"
|
[ -n "${returnhome}" ] && fwd_dns="${TUN_DNS}"
|
||||||
sort -u "${RULES_PATH}/chnlist" | gen_dnsmasq_items "chnroute" "${fwd_dns}" "${TMP_DNSMASQ_PATH}/chinalist_host.conf"
|
sort -u "${RULES_PATH}/chnlist" | gen_dnsmasq_items "chnroute" "${fwd_dns}" "${TMP_DNSMASQ_PATH}/chinalist_host.conf"
|
||||||
@ -821,7 +834,7 @@ add_dnsmasq() {
|
|||||||
#始终使用远程DNS解析代理(黑名单)列表
|
#始终使用远程DNS解析代理(黑名单)列表
|
||||||
fwd_dns="${TUN_DNS}"
|
fwd_dns="${TUN_DNS}"
|
||||||
#如果使用Chinadns-NG直接交给Chinadns-NG处理
|
#如果使用Chinadns-NG直接交给Chinadns-NG处理
|
||||||
[ "${DNS_MODE}" = "chinadns-ng" ] && unset fwd_dns
|
[ "$CHINADNS_NG" = "1" ] && unset fwd_dns
|
||||||
#如果使用chnlist直接使用默认DNS
|
#如果使用chnlist直接使用默认DNS
|
||||||
[ "${USE_CHNLIST}" = "1" ] && unset fwd_dns
|
[ "${USE_CHNLIST}" = "1" ] && unset fwd_dns
|
||||||
sort -u "${RULES_PATH}/proxy_host" | gen_dnsmasq_items "blacklist" "${fwd_dns}" "${TMP_DNSMASQ_PATH}/proxy_host.conf"
|
sort -u "${RULES_PATH}/proxy_host" | gen_dnsmasq_items "blacklist" "${fwd_dns}" "${TMP_DNSMASQ_PATH}/proxy_host.conf"
|
||||||
@ -831,7 +844,7 @@ add_dnsmasq() {
|
|||||||
[ -z "${returnhome}" ] && {
|
[ -z "${returnhome}" ] && {
|
||||||
fwd_dns="${TUN_DNS}"
|
fwd_dns="${TUN_DNS}"
|
||||||
#如果使用Chinadns-NG直接交给Chinadns-NG处理
|
#如果使用Chinadns-NG直接交给Chinadns-NG处理
|
||||||
[ "${DNS_MODE}" = "chinadns-ng" ] && unset fwd_dns
|
[ "$CHINADNS_NG" = "1" ] && unset fwd_dns
|
||||||
#如果使用chnlist直接使用默认DNS
|
#如果使用chnlist直接使用默认DNS
|
||||||
[ "${USE_CHNLIST}" = "1" ] && unset fwd_dns
|
[ "${USE_CHNLIST}" = "1" ] && unset fwd_dns
|
||||||
sort -u "${TMP_PATH}/gfwlist.txt" | gen_dnsmasq_items "gfwlist" "${fwd_dns}" "${TMP_DNSMASQ_PATH}/gfwlist.conf"
|
sort -u "${TMP_PATH}/gfwlist.txt" | gen_dnsmasq_items "gfwlist" "${fwd_dns}" "${TMP_DNSMASQ_PATH}/gfwlist.conf"
|
||||||
@ -843,7 +856,7 @@ add_dnsmasq() {
|
|||||||
[ "$(config_t_get global_subscribe subscribe_proxy 0)" = "1" ] && {
|
[ "$(config_t_get global_subscribe subscribe_proxy 0)" = "1" ] && {
|
||||||
fwd_dns="${TUN_DNS}"
|
fwd_dns="${TUN_DNS}"
|
||||||
#如果使用Chinadns-NG直接交给Chinadns-NG处理
|
#如果使用Chinadns-NG直接交给Chinadns-NG处理
|
||||||
[ "${DNS_MODE}" = "chinadns-ng" ] && unset fwd_dns
|
[ "$CHINADNS_NG" = "1" ] && unset fwd_dns
|
||||||
#如果使用chnlist直接使用默认DNS
|
#如果使用chnlist直接使用默认DNS
|
||||||
[ "${USE_CHNLIST}" = "1" ] && unset fwd_dns
|
[ "${USE_CHNLIST}" = "1" ] && unset fwd_dns
|
||||||
items=$(get_enabled_anonymous_secs "@subscribe_list")
|
items=$(get_enabled_anonymous_secs "@subscribe_list")
|
||||||
@ -865,7 +878,7 @@ add_dnsmasq() {
|
|||||||
[ -n "${chnlist}" ] && msg="中国列表以外"
|
[ -n "${chnlist}" ] && msg="中国列表以外"
|
||||||
[ -n "${returnhome}" ] && msg="中国列表"
|
[ -n "${returnhome}" ] && msg="中国列表"
|
||||||
[ -n "${global}" ] && msg="全局"
|
[ -n "${global}" ] && msg="全局"
|
||||||
if [ "${DNS_MODE}" = "chinadns-ng" ]; then
|
if [ "$CHINADNS_NG" = "1" ]; then
|
||||||
#直接交给Chinadns-ng处理
|
#直接交给Chinadns-ng处理
|
||||||
servers="${TUN_DNS}" && msg="chinadns-ng"
|
servers="${TUN_DNS}" && msg="chinadns-ng"
|
||||||
else
|
else
|
||||||
@ -1009,7 +1022,7 @@ start_haproxy() {
|
|||||||
sort_items="${sort_items}${IFS}${lport} ${item}"
|
sort_items="${sort_items}${IFS}${lport} ${item}"
|
||||||
done
|
done
|
||||||
|
|
||||||
items=$(echo "${sort_items}" | sort -n | cut -d' ' -sf 2)
|
items=$(echo "${sort_items}" | sort -n | cut -d ' ' -sf 2)
|
||||||
|
|
||||||
unset lport
|
unset lport
|
||||||
local haproxy_port lbss lbort lbweight export backup
|
local haproxy_port lbss lbort lbweight export backup
|
||||||
@ -1017,7 +1030,7 @@ start_haproxy() {
|
|||||||
for item in ${items}; do
|
for item in ${items}; do
|
||||||
unset haproxy_port lbort bbackup
|
unset haproxy_port lbort bbackup
|
||||||
|
|
||||||
eval $(uci -q show "${CONFIG}.${item}" | cut -d'.' -sf 3-)
|
eval $(uci -q show "${CONFIG}.${item}" | cut -d '.' -sf 3-)
|
||||||
get_ip_port_from "$lbss" bip bport
|
get_ip_port_from "$lbss" bip bport
|
||||||
|
|
||||||
[ "$lbort" = "default" ] && lbort=$bport || bport=$lbort
|
[ "$lbort" = "default" ] && lbort=$bport || bport=$lbort
|
||||||
|
|||||||
@ -75,7 +75,7 @@ do
|
|||||||
done
|
done
|
||||||
|
|
||||||
#dns
|
#dns
|
||||||
if [ "$dns_mode" != "nonuse" ]; then
|
if [ "$dns_mode" != "nonuse" ] && [ "$dns_mode" != "custom" ]; then
|
||||||
icount=$(netstat -apn | grep 7913 | wc -l)
|
icount=$(netstat -apn | grep 7913 | wc -l)
|
||||||
if [ $icount = 0 ]; then
|
if [ $icount = 0 ]; then
|
||||||
/etc/init.d/passwall restart
|
/etc/init.d/passwall restart
|
||||||
|
|||||||
@ -55,8 +55,7 @@ end
|
|||||||
|
|
||||||
local log = function(...)
|
local log = function(...)
|
||||||
if arg1 then
|
if arg1 then
|
||||||
local result = os.date("%Y-%m-%d %H:%M:%S: ") ..
|
local result = os.date("%Y-%m-%d %H:%M:%S: ") .. table.concat({...}, " ")
|
||||||
table.concat({...}, " ")
|
|
||||||
if arg1 == "log" then
|
if arg1 == "log" then
|
||||||
local f, err = io.open("/var/log/passwall.log", "a")
|
local f, err = io.open("/var/log/passwall.log", "a")
|
||||||
if f and err == nil then
|
if f and err == nil then
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user