mirror of
https://github.com/kenzok8/small-package
synced 2025-01-09 04:37:59 +08:00
update 2024-04-28 00:17:40
This commit is contained in:
parent
93246dec9d
commit
a73b58200a
@ -260,6 +260,12 @@ o = s:option(DummyValue, "switch_mode", " ")
|
|||||||
o.template = appname .. "/global/proxy"
|
o.template = appname .. "/global/proxy"
|
||||||
o:depends({ tcp_node = "", ['!reverse'] = true })
|
o:depends({ tcp_node = "", ['!reverse'] = true })
|
||||||
|
|
||||||
|
---- DNS
|
||||||
|
o = s:option(ListValue, "dns_shunt", "DNS " .. translate("Shunt"))
|
||||||
|
o:depends({ tcp_node = "", ['!reverse'] = true })
|
||||||
|
o:value("dnsmasq", "Dnsmasq")
|
||||||
|
o:value("chinadns-ng", "Dnsmasq + ChinaDNS-NG")
|
||||||
|
|
||||||
o = s:option(Flag, "filter_proxy_ipv6", translate("Filter Proxy Host IPv6"), translate("Experimental feature."))
|
o = s:option(Flag, "filter_proxy_ipv6", translate("Filter Proxy Host IPv6"), translate("Experimental feature."))
|
||||||
o.default = "0"
|
o.default = "0"
|
||||||
o:depends({ tcp_node = "", ['!reverse'] = true })
|
o:depends({ tcp_node = "", ['!reverse'] = true })
|
||||||
@ -362,24 +368,18 @@ if has_singbox or has_xray then
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
if api.is_finded("chinadns-ng") then
|
o = s:option(ListValue, "chinadns_ng_default_tag", translate("ChinaDNS-NG Domain Default Tag"))
|
||||||
o = s:option(Flag, "chinadns_ng", translate("ChinaDNS-NG"), translate("The effect is better, recommend."))
|
o.default = "none"
|
||||||
o.default = "0"
|
o:value("none", translate("Default"))
|
||||||
o:depends({ dns_mode = "", ['!reverse'] = true })
|
o:value("gfw", translate("Remote DNS"))
|
||||||
|
o:value("chn", translate("Direct DNS"))
|
||||||
o = s:option(ListValue, "chinadns_ng_default_tag", translate("ChinaDNS-NG Domain Default Tag"))
|
o.description = "<ul>"
|
||||||
o.default = "none"
|
|
||||||
o:value("none", translate("Default"))
|
|
||||||
o:value("gfw", translate("Remote DNS"))
|
|
||||||
o:value("chn", translate("Direct DNS"))
|
|
||||||
o.description = "<ul>"
|
|
||||||
.. "<li>" .. translate("When not matching any domain name list:") .. "</li>"
|
.. "<li>" .. translate("When not matching any domain name list:") .. "</li>"
|
||||||
.. "<li>" .. translate("Default: Forward to both direct and remote DNS, if the direct DNS resolution result is a mainland China ip, then use the direct result, otherwise use the remote result.") .. "</li>"
|
.. "<li>" .. translate("Default: Forward to both direct and remote DNS, if the direct DNS resolution result is a mainland China ip, then use the direct result, otherwise use the remote result.") .. "</li>"
|
||||||
.. "<li>" .. translate("Remote DNS: Can avoid more DNS leaks, but some domestic domain names maybe to proxy!") .. "</li>"
|
.. "<li>" .. translate("Remote DNS: Can avoid more DNS leaks, but some domestic domain names maybe to proxy!") .. "</li>"
|
||||||
.. "<li>" .. translate("Direct DNS: Internet experience may be better, but DNS will be leaked!") .. "</li>"
|
.. "<li>" .. translate("Direct DNS: Internet experience may be better, but DNS will be leaked!") .. "</li>"
|
||||||
.. "</ul>"
|
.. "</ul>"
|
||||||
o:depends({chinadns_ng = true, chn_list = "direct"})
|
o:depends({dns_shunt = "chinadns-ng", tcp_proxy_mode = "proxy", chn_list = "direct"})
|
||||||
end
|
|
||||||
|
|
||||||
o = s:option(ListValue, "use_default_dns", translate("Default DNS"))
|
o = s:option(ListValue, "use_default_dns", translate("Default DNS"))
|
||||||
o.default = "direct"
|
o.default = "direct"
|
||||||
@ -390,10 +390,6 @@ o.description = "<ul>"
|
|||||||
.. "<li>" .. translate("Remote DNS: Can avoid more DNS leaks, but some domestic domain names maybe to proxy!") .. "</li>"
|
.. "<li>" .. translate("Remote DNS: Can avoid more DNS leaks, but some domestic domain names maybe to proxy!") .. "</li>"
|
||||||
.. "<li>" .. translate("Direct DNS: Internet experience may be better, but DNS will be leaked!") .. "</li>"
|
.. "<li>" .. translate("Direct DNS: Internet experience may be better, but DNS will be leaked!") .. "</li>"
|
||||||
.. "</ul>"
|
.. "</ul>"
|
||||||
local _depends = {tcp_proxy_mode = "proxy"}
|
o:depends({dns_shunt = "dnsmasq", tcp_proxy_mode = "proxy", chn_list = "direct"})
|
||||||
if api.is_finded("chinadns-ng") then
|
|
||||||
_depends["chinadns_ng"] = false
|
|
||||||
end
|
|
||||||
o:depends(_depends)
|
|
||||||
|
|
||||||
return m
|
return m
|
||||||
|
@ -261,13 +261,17 @@ end
|
|||||||
|
|
||||||
s:tab("DNS", translate("DNS"))
|
s:tab("DNS", translate("DNS"))
|
||||||
|
|
||||||
|
dns_shunt = s:taboption("DNS", ListValue, "dns_shunt", "DNS " .. translate("Shunt"))
|
||||||
|
dns_shunt:value("dnsmasq", "Dnsmasq")
|
||||||
|
dns_shunt:value("chinadns-ng", "Dnsmasq + ChinaDNS-NG")
|
||||||
|
|
||||||
o = s:taboption("DNS", Flag, "filter_proxy_ipv6", translate("Filter Proxy Host IPv6"), translate("Experimental feature."))
|
o = s:taboption("DNS", Flag, "filter_proxy_ipv6", translate("Filter Proxy Host IPv6"), translate("Experimental feature."))
|
||||||
o.default = "0"
|
o.default = "0"
|
||||||
|
|
||||||
---- DNS Forward Mode
|
---- DNS Forward Mode
|
||||||
dns_mode = s:taboption("DNS", ListValue, "dns_mode", translate("Filter Mode"))
|
dns_mode = s:taboption("DNS", ListValue, "dns_mode", translate("Filter Mode"))
|
||||||
dns_mode:value("tcp", translatef("Requery DNS By %s", "TCP"))
|
|
||||||
dns_mode:value("udp", translatef("Requery DNS By %s", "UDP"))
|
dns_mode:value("udp", translatef("Requery DNS By %s", "UDP"))
|
||||||
|
dns_mode:value("tcp", translatef("Requery DNS By %s", "TCP"))
|
||||||
if api.is_finded("dns2socks") then
|
if api.is_finded("dns2socks") then
|
||||||
dns_mode:value("dns2socks", "dns2socks")
|
dns_mode:value("dns2socks", "dns2socks")
|
||||||
end
|
end
|
||||||
@ -357,7 +361,7 @@ o:depends({dns_mode = "xray"})
|
|||||||
|
|
||||||
o = s:taboption("DNS", Flag, "remote_fakedns", "FakeDNS", translate("Use FakeDNS work in the shunt domain that proxy."))
|
o = s:taboption("DNS", Flag, "remote_fakedns", "FakeDNS", translate("Use FakeDNS work in the shunt domain that proxy."))
|
||||||
o.default = "0"
|
o.default = "0"
|
||||||
o:depends({dns_mode = "sing-box"})
|
o:depends({dns_mode = "sing-box", dns_shunt = "dnsmasq"})
|
||||||
o.validate = function(self, value, t)
|
o.validate = function(self, value, t)
|
||||||
if value and value == "1" then
|
if value and value == "1" then
|
||||||
local _dns_mode = dns_mode:formvalue(t)
|
local _dns_mode = dns_mode:formvalue(t)
|
||||||
@ -371,24 +375,18 @@ o.validate = function(self, value, t)
|
|||||||
return value
|
return value
|
||||||
end
|
end
|
||||||
|
|
||||||
if api.is_finded("chinadns-ng") then
|
o = s:taboption("DNS", ListValue, "chinadns_ng_default_tag", translate("ChinaDNS-NG Domain Default Tag"))
|
||||||
o = s:taboption("DNS", Flag, "chinadns_ng", translate("ChinaDNS-NG"), translate("The effect is better, recommend."))
|
o.default = "none"
|
||||||
o.default = "0"
|
o:value("none", translate("Default"))
|
||||||
o:depends({remote_fakedns = false})
|
o:value("gfw", translate("Remote DNS"))
|
||||||
|
o:value("chn", translate("Direct DNS"))
|
||||||
o = s:taboption("DNS", ListValue, "chinadns_ng_default_tag", translate("ChinaDNS-NG Domain Default Tag"))
|
o.description = "<ul>"
|
||||||
o.default = "none"
|
|
||||||
o:value("none", translate("Default"))
|
|
||||||
o:value("gfw", translate("Remote DNS"))
|
|
||||||
o:value("chn", translate("Direct DNS"))
|
|
||||||
o.description = "<ul>"
|
|
||||||
.. "<li>" .. translate("When not matching any domain name list:") .. "</li>"
|
.. "<li>" .. translate("When not matching any domain name list:") .. "</li>"
|
||||||
.. "<li>" .. translate("Default: Forward to both direct and remote DNS, if the direct DNS resolution result is a mainland China ip, then use the direct result, otherwise use the remote result.") .. "</li>"
|
.. "<li>" .. translate("Default: Forward to both direct and remote DNS, if the direct DNS resolution result is a mainland China ip, then use the direct result, otherwise use the remote result.") .. "</li>"
|
||||||
.. "<li>" .. translate("Remote DNS: Can avoid more DNS leaks, but some domestic domain names maybe to proxy!") .. "</li>"
|
.. "<li>" .. translate("Remote DNS: Can avoid more DNS leaks, but some domestic domain names maybe to proxy!") .. "</li>"
|
||||||
.. "<li>" .. translate("Direct DNS: Internet experience may be better, but DNS will be leaked!") .. "</li>"
|
.. "<li>" .. translate("Direct DNS: Internet experience may be better, but DNS will be leaked!") .. "</li>"
|
||||||
.. "</ul>"
|
.. "</ul>"
|
||||||
o:depends({chinadns_ng = true, chn_list = "direct"})
|
o:depends({dns_shunt = "chinadns-ng", tcp_proxy_mode = "proxy", chn_list = "direct"})
|
||||||
end
|
|
||||||
|
|
||||||
o = s:taboption("DNS", ListValue, "use_default_dns", translate("Default DNS"))
|
o = s:taboption("DNS", ListValue, "use_default_dns", translate("Default DNS"))
|
||||||
o.default = "direct"
|
o.default = "direct"
|
||||||
@ -399,11 +397,7 @@ o.description = "<ul>"
|
|||||||
.. "<li>" .. translate("Remote DNS: Can avoid more DNS leaks, but some domestic domain names maybe to proxy!") .. "</li>"
|
.. "<li>" .. translate("Remote DNS: Can avoid more DNS leaks, but some domestic domain names maybe to proxy!") .. "</li>"
|
||||||
.. "<li>" .. translate("Direct DNS: Internet experience may be better, but DNS will be leaked!") .. "</li>"
|
.. "<li>" .. translate("Direct DNS: Internet experience may be better, but DNS will be leaked!") .. "</li>"
|
||||||
.. "</ul>"
|
.. "</ul>"
|
||||||
local _depends = {tcp_proxy_mode = "proxy"}
|
o:depends({dns_shunt = "dnsmasq", tcp_proxy_mode = "proxy", chn_list = "direct"})
|
||||||
if api.is_finded("chinadns-ng") then
|
|
||||||
_depends["chinadns_ng"] = false
|
|
||||||
end
|
|
||||||
o:depends(_depends)
|
|
||||||
|
|
||||||
o = s:taboption("DNS", Button, "clear_ipset", translate("Clear IPSET"), translate("Try this feature if the rule modification does not take effect."))
|
o = s:taboption("DNS", Button, "clear_ipset", translate("Clear IPSET"), translate("Try this feature if the rule modification does not take effect."))
|
||||||
o.inputstyle = "remove"
|
o.inputstyle = "remove"
|
||||||
|
@ -6,10 +6,10 @@ config global
|
|||||||
option udp_node 'nil'
|
option udp_node 'nil'
|
||||||
option tcp_node_socks_port '1070'
|
option tcp_node_socks_port '1070'
|
||||||
option filter_proxy_ipv6 '1'
|
option filter_proxy_ipv6 '1'
|
||||||
|
option dns_shunt 'chinadns-ng'
|
||||||
option dns_mode 'tcp'
|
option dns_mode 'tcp'
|
||||||
option remote_dns '1.1.1.1'
|
option remote_dns '1.1.1.1'
|
||||||
option use_default_dns 'direct'
|
option use_default_dns 'direct'
|
||||||
option chinadns_ng '1'
|
|
||||||
option chinadns_ng_default_tag 'none'
|
option chinadns_ng_default_tag 'none'
|
||||||
option use_direct_list '1'
|
option use_direct_list '1'
|
||||||
option use_proxy_list '1'
|
option use_proxy_list '1'
|
||||||
|
@ -1297,7 +1297,7 @@ start_dns() {
|
|||||||
;;
|
;;
|
||||||
udp)
|
udp)
|
||||||
use_udp_node_resolve_dns=1
|
use_udp_node_resolve_dns=1
|
||||||
if [ "$CHINADNS_NG" = "1" ] && [ -n "$(first_type chinadns-ng)" ]; then
|
if [ "$DNS_SHUNT" = "chinadns-ng" ] && [ -n "$(first_type chinadns-ng)" ]; then
|
||||||
local china_ng_listen_port=${dns_listen_port}
|
local china_ng_listen_port=${dns_listen_port}
|
||||||
local china_ng_trust_dns="udp://$(get_first_dns REMOTE_DNS 53 | sed 's/:/#/g')"
|
local china_ng_trust_dns="udp://$(get_first_dns REMOTE_DNS 53 | sed 's/:/#/g')"
|
||||||
else
|
else
|
||||||
@ -1307,7 +1307,7 @@ start_dns() {
|
|||||||
;;
|
;;
|
||||||
*)
|
*)
|
||||||
use_tcp_node_resolve_dns=1
|
use_tcp_node_resolve_dns=1
|
||||||
if [ "$CHINADNS_NG" = "1" ] && [ -n "$(first_type chinadns-ng)" ]; then
|
if [ "$DNS_SHUNT" = "chinadns-ng" ] && [ -n "$(first_type chinadns-ng)" ]; then
|
||||||
local china_ng_listen_port=${dns_listen_port}
|
local china_ng_listen_port=${dns_listen_port}
|
||||||
local china_ng_trust_dns="tcp://$(get_first_dns REMOTE_DNS 53 | sed 's/:/#/g')"
|
local china_ng_trust_dns="tcp://$(get_first_dns REMOTE_DNS 53 | sed 's/:/#/g')"
|
||||||
else
|
else
|
||||||
@ -1322,7 +1322,7 @@ start_dns() {
|
|||||||
[ "${use_tcp_node_resolve_dns}" = "1" ] && echolog " * 请确认上游 DNS 支持 TCP 查询,如非直连地址,确保 TCP 代理打开,并且已经正确转发!"
|
[ "${use_tcp_node_resolve_dns}" = "1" ] && echolog " * 请确认上游 DNS 支持 TCP 查询,如非直连地址,确保 TCP 代理打开,并且已经正确转发!"
|
||||||
[ "${use_udp_node_resolve_dns}" = "1" ] && echolog " * 请确认上游 DNS 支持 UDP 查询并已使用 UDP 节点,如上游 DNS 非直连地址,确保 UDP 代理打开,并且已经正确转发!"
|
[ "${use_udp_node_resolve_dns}" = "1" ] && echolog " * 请确认上游 DNS 支持 UDP 查询并已使用 UDP 节点,如上游 DNS 非直连地址,确保 UDP 代理打开,并且已经正确转发!"
|
||||||
|
|
||||||
[ "$CHINADNS_NG" = "1" ] && [ -n "$(first_type chinadns-ng)" ] && {
|
[ "$DNS_SHUNT" = "chinadns-ng" ] && [ -n "$(first_type chinadns-ng)" ] && {
|
||||||
[ "$FILTER_PROXY_IPV6" = "1" ] && DNSMASQ_FILTER_PROXY_IPV6=0
|
[ "$FILTER_PROXY_IPV6" = "1" ] && DNSMASQ_FILTER_PROXY_IPV6=0
|
||||||
[ -z "${china_ng_listen_port}" ] && local china_ng_listen_port=$(expr $dns_listen_port + 1)
|
[ -z "${china_ng_listen_port}" ] && local china_ng_listen_port=$(expr $dns_listen_port + 1)
|
||||||
local china_ng_listen="127.0.0.1#${china_ng_listen_port}"
|
local china_ng_listen="127.0.0.1#${china_ng_listen_port}"
|
||||||
@ -1453,9 +1453,9 @@ acl_app() {
|
|||||||
udp_proxy_mode=${udp_proxy_mode:-proxy}
|
udp_proxy_mode=${udp_proxy_mode:-proxy}
|
||||||
filter_proxy_ipv6=${filter_proxy_ipv6:-0}
|
filter_proxy_ipv6=${filter_proxy_ipv6:-0}
|
||||||
dnsmasq_filter_proxy_ipv6=${filter_proxy_ipv6}
|
dnsmasq_filter_proxy_ipv6=${filter_proxy_ipv6}
|
||||||
|
dns_shunt=${dns_shunt:-dnsmasq}
|
||||||
dns_mode=${dns_mode:-dns2socks}
|
dns_mode=${dns_mode:-dns2socks}
|
||||||
remote_dns=${remote_dns:-1.1.1.1}
|
remote_dns=${remote_dns:-1.1.1.1}
|
||||||
chinadns_ng=${chinadns_ng:-0}
|
|
||||||
use_default_dns=${use_default_dns:-direct}
|
use_default_dns=${use_default_dns:-direct}
|
||||||
[ "$dns_mode" = "sing-box" ] && {
|
[ "$dns_mode" = "sing-box" ] && {
|
||||||
[ "$v2ray_dns_mode" = "doh" ] && remote_dns=${remote_dns_doh:-https://1.1.1.1/dns-query}
|
[ "$v2ray_dns_mode" = "doh" ] && remote_dns=${remote_dns_doh:-https://1.1.1.1/dns-query}
|
||||||
@ -1491,7 +1491,7 @@ acl_app() {
|
|||||||
eval node_${tcp_node}_$(echo -n "${remote_dns}" | md5sum | cut -d " " -f1)=${_dns_port}
|
eval node_${tcp_node}_$(echo -n "${remote_dns}" | md5sum | cut -d " " -f1)=${_dns_port}
|
||||||
}
|
}
|
||||||
|
|
||||||
[ "$chinadns_ng" = "1" ] && [ -n "$(first_type chinadns-ng)" ] && {
|
[ "$dns_shunt" = "chinadns-ng" ] && [ -n "$(first_type chinadns-ng)" ] && {
|
||||||
[ "$filter_proxy_ipv6" = "1" ] && dnsmasq_filter_proxy_ipv6=0
|
[ "$filter_proxy_ipv6" = "1" ] && dnsmasq_filter_proxy_ipv6=0
|
||||||
chinadns_port=$(expr $chinadns_port + 1)
|
chinadns_port=$(expr $chinadns_port + 1)
|
||||||
_china_ng_listen="127.0.0.1#${chinadns_port}"
|
_china_ng_listen="127.0.0.1#${chinadns_port}"
|
||||||
@ -1766,10 +1766,11 @@ LOCALHOST_PROXY=$(config_t_get global localhost_proxy 1)
|
|||||||
LOCALHOST_UDP_PROXY_MODE=$UDP_PROXY_MODE
|
LOCALHOST_UDP_PROXY_MODE=$UDP_PROXY_MODE
|
||||||
}
|
}
|
||||||
CLIENT_PROXY=$(config_t_get global client_proxy 1)
|
CLIENT_PROXY=$(config_t_get global client_proxy 1)
|
||||||
|
DNS_SHUNT=$(config_t_get global dns_shunt dnsmasq)
|
||||||
|
[ -z "$(first_type $DNS_SHUNT)" ] && DNS_SHUNT="dnsmasq"
|
||||||
DNS_MODE=$(config_t_get global dns_mode tcp)
|
DNS_MODE=$(config_t_get global dns_mode tcp)
|
||||||
DNS_CACHE=0
|
DNS_CACHE=0
|
||||||
REMOTE_DNS=$(config_t_get global remote_dns 1.1.1.1:53 | sed 's/#/:/g' | sed -E 's/\:([^:]+)$/#\1/g')
|
REMOTE_DNS=$(config_t_get global remote_dns 1.1.1.1:53 | sed 's/#/:/g' | sed -E 's/\:([^:]+)$/#\1/g')
|
||||||
CHINADNS_NG=$(config_t_get global chinadns_ng 0)
|
|
||||||
USE_DEFAULT_DNS=$(config_t_get global use_default_dns direct)
|
USE_DEFAULT_DNS=$(config_t_get global use_default_dns direct)
|
||||||
FILTER_PROXY_IPV6=$(config_t_get global filter_proxy_ipv6 0)
|
FILTER_PROXY_IPV6=$(config_t_get global filter_proxy_ipv6 0)
|
||||||
dns_listen_port=${DNS_PORT}
|
dns_listen_port=${DNS_PORT}
|
||||||
|
Loading…
Reference in New Issue
Block a user