Skip to content

Commit

Permalink
luci: add chinadns-ng domain default tag config (xiaorouji#2854)
Browse files Browse the repository at this point in the history
  • Loading branch information
ztbh authored Oct 16, 2023
1 parent 97e11cf commit a953315
Show file tree
Hide file tree
Showing 5 changed files with 34 additions and 2 deletions.
11 changes: 11 additions & 0 deletions luci-app-passwall/luasrc/model/cbi/passwall/client/acl_config.lua
Original file line number Diff line number Diff line change
Expand Up @@ -334,6 +334,17 @@ if api.is_finded("chinadns-ng") then
o:depends({ tcp_proxy_mode = "chnroute", dns_mode = "dns2socks" })
o:depends({ tcp_proxy_mode = "chnroute", dns_mode = "xray" })
o:depends({ tcp_proxy_mode = "chnroute", dns_mode = "sing-box" })
chinadns_ng_default_tag = s:option(ListValue, "chinadns_ng_default_tag", translate("ChinaDNS-NG Domain Default Tag"))
chinadns_ng_default_tag.default = "smart"
chinadns_ng_default_tag:value("smart", translate("Smart DNS"))
chinadns_ng_default_tag:value("gfw", translate("Remote DNS"))
chinadns_ng_default_tag:value("chn", translate("Direct DNS"))
chinadns_ng_default_tag.description = "<ul>"
.. "<li>" .. translate("Forward to both remote and direct 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("Direct DNS Internet experience may be better, but DNS will be leaked!") .. "</li>"
.. "</ul>"
chinadns_ng_default_tag:depends("chinadns_ng", true)
end

if has_chnlist then
Expand Down
11 changes: 11 additions & 0 deletions luci-app-passwall/luasrc/model/cbi/passwall/client/global.lua
Original file line number Diff line number Diff line change
Expand Up @@ -382,6 +382,17 @@ o.rmempty = false
if api.is_finded("chinadns-ng") then
o = s:taboption("DNS", Flag, "chinadns_ng", translate("ChinaDNS-NG"), translate("The effect is better, but will increase the memory."))
o.default = "0"
chinadns_ng_default_tag = s:taboption("DNS", ListValue, "chinadns_ng_default_tag", translate("ChinaDNS-NG Domain Default Tag"))
chinadns_ng_default_tag.default = "smart"
chinadns_ng_default_tag:value("smart", translate("Smart DNS"))
chinadns_ng_default_tag:value("gfw", translate("Remote DNS"))
chinadns_ng_default_tag:value("chn", translate("Direct DNS"))
chinadns_ng_default_tag.description = "<ul>"
.. "<li>" .. translate("Forward to both remote and direct 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("Direct DNS Internet experience may be better, but DNS will be leaked!") .. "</li>"
.. "</ul>"
chinadns_ng_default_tag:depends("chinadns_ng", true)
o:depends({dns_mode = "dns2socks"})
o:depends({dns_mode = "dns2tcp"})
o:depends({dns_mode = "sing-box", remote_fakedns = false})
Expand Down
9 changes: 9 additions & 0 deletions luci-app-passwall/po/zh-cn/passwall.po
Original file line number Diff line number Diff line change
Expand Up @@ -169,6 +169,15 @@ msgstr "远程DNS可以避免更多的DNS泄露,但会导致规则列表外的
msgid "Direct DNS Internet experience may be better, but DNS will be leaked!"
msgstr "直连DNS上网体验可能会更佳,但是会泄露DNS!"

msgid "ChinaDNS-NG Domain Default Tag"
msgstr "ChinaDNS-NG 域名默认标签"

msgid "Smart DNS"
msgstr "智能 DNS"

msgid "Forward to both remote and direct DNS, if the direct DNS resolution result is a mainland China ip, then use the direct result, otherwise use the remote result"
msgstr "同时转发给远程和直连DNS,如果直连DNS解析结果是大陆ip,则使用直连结果,否则使用远程结果"

msgid "Filter Proxy Host IPv6"
msgstr "过滤代理域名 IPv6"

Expand Down
1 change: 1 addition & 0 deletions luci-app-passwall/root/usr/share/passwall/0_default_config
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@ config global
option when_chnroute_default_dns 'direct'
option tcp_proxy_mode 'chnroute'
option udp_proxy_mode 'chnroute'
option chinadns_ng_default_tag 'smart'
option localhost_tcp_proxy_mode 'default'
option localhost_udp_proxy_mode 'default'
option acl_enable '0'
Expand Down
4 changes: 2 additions & 2 deletions luci-app-passwall/root/usr/share/passwall/app.sh
Original file line number Diff line number Diff line change
Expand Up @@ -485,7 +485,7 @@ run_chinadns_ng() {

echolog " | - (chinadns-ng) 最高支持4级域名过滤..."

local _default_tag
local _default_tag=$(config_t_get global chinadns_ng_default_tag smart)
local _extra_param=""
[ -n "$_chnlist" ] && {
[ -s "${RULES_PATH}/chnlist" ] && {
Expand All @@ -510,7 +510,7 @@ run_chinadns_ng() {
#当只有使用gfwlist模式时设置默认DNS为本地直连
[ -n "$_gfwlist" ] && [ -z "$_chnlist" ] && _default_tag="chn"
}
[ -n "$_default_tag" ] && _extra_param="${_extra_param} -d ${_default_tag}"
[ -n "$_default_tag" ] && [ "$_default_tag" != "smart" ] && _extra_param="${_extra_param} -d ${_default_tag}"

_log_path="/dev/null"
ln_run "$(first_type chinadns-ng)" chinadns-ng "$_log_path" -v -b 127.0.0.1 -l "${_listen_port}" ${_dns_china:+-c "${_dns_china}"} ${_dns_trust:+-t "${_dns_trust}"} ${_extra_param} -f ${_no_ipv6_rules:+-N=${_no_ipv6_rules}}
Expand Down

0 comments on commit a953315

Please sign in to comment.