feat: Add domain_resolver and detour parameters to DNS server configurations in sing-box manager script
This commit is contained in:
@@ -87,6 +87,8 @@ sing_box_cm_configure_dns() {
|
|||||||
# tag: string, identifier for the DNS server
|
# tag: string, identifier for the DNS server
|
||||||
# server_address: string, IP address or hostname of the DNS server
|
# server_address: string, IP address or hostname of the DNS server
|
||||||
# server_port: string or number, port of the DNS server
|
# server_port: string or number, port of the DNS server
|
||||||
|
# domain_resolver: string, domain resolver to use for resolving domain names
|
||||||
|
# detour: string, tag of the upstream outbound
|
||||||
# Outputs:
|
# Outputs:
|
||||||
# Writes updated JSON configuration to stdout
|
# Writes updated JSON configuration to stdout
|
||||||
# Example:
|
# Example:
|
||||||
@@ -97,17 +99,25 @@ sing_box_cm_add_udp_dns_server() {
|
|||||||
local tag="$2"
|
local tag="$2"
|
||||||
local server_address="$3"
|
local server_address="$3"
|
||||||
local server_port="$4"
|
local server_port="$4"
|
||||||
|
local domain_resolver="$5"
|
||||||
|
local detour="$6"
|
||||||
|
|
||||||
echo "$config" | jq \
|
echo "$config" | jq \
|
||||||
--arg tag "$tag" \
|
--arg tag "$tag" \
|
||||||
--arg server_address "$server_address" \
|
--arg server_address "$server_address" \
|
||||||
--arg server_port "$server_port" \
|
--arg server_port "$server_port" \
|
||||||
'.dns.servers += [{
|
--arg domain_resolver "$domain_resolver" \
|
||||||
type: "udp",
|
--arg detour "$detour" \
|
||||||
tag: $tag,
|
'.dns.servers += [(
|
||||||
server: $server_address,
|
{
|
||||||
server_port: ($server_port | tonumber)
|
type: "udp",
|
||||||
}]'
|
tag: $tag,
|
||||||
|
server: $server_address,
|
||||||
|
server_port: ($server_port | tonumber)
|
||||||
|
}
|
||||||
|
+ (if $detour != "" then { detour: $detour } else {} end)
|
||||||
|
+ (if $domain_resolver != "" then { domain_resolver: $domain_resolver } else {} end)
|
||||||
|
)]'
|
||||||
}
|
}
|
||||||
|
|
||||||
#######################################
|
#######################################
|
||||||
@@ -117,6 +127,8 @@ sing_box_cm_add_udp_dns_server() {
|
|||||||
# tag: string, identifier for the DNS server
|
# tag: string, identifier for the DNS server
|
||||||
# server_address: string, IP address or hostname of the DNS server
|
# server_address: string, IP address or hostname of the DNS server
|
||||||
# server_port: string or number, port of the DNS server
|
# server_port: string or number, port of the DNS server
|
||||||
|
# domain_resolver: string, domain resolver to use for resolving domain names
|
||||||
|
# detour: string, tag of the upstream outbound
|
||||||
# Outputs:
|
# Outputs:
|
||||||
# Writes updated JSON configuration to stdout
|
# Writes updated JSON configuration to stdout
|
||||||
# Example:
|
# Example:
|
||||||
@@ -127,17 +139,25 @@ sing_box_cm_add_tls_dns_server() {
|
|||||||
local tag="$2"
|
local tag="$2"
|
||||||
local server_address="$3"
|
local server_address="$3"
|
||||||
local server_port="$4"
|
local server_port="$4"
|
||||||
|
local domain_resolver="$5"
|
||||||
|
local detour="$6"
|
||||||
|
|
||||||
echo "$config" | jq \
|
echo "$config" | jq \
|
||||||
--arg tag "$tag" \
|
--arg tag "$tag" \
|
||||||
--arg server_address "$server_address" \
|
--arg server_address "$server_address" \
|
||||||
--arg server_port "$server_port" \
|
--arg server_port "$server_port" \
|
||||||
'.dns.servers += [{
|
--arg domain_resolver "$domain_resolver" \
|
||||||
type: "tls",
|
--arg detour "$detour" \
|
||||||
tag: $tag,
|
'.dns.servers += [(
|
||||||
server: $server_address,
|
{
|
||||||
server_port: ($server_port | tonumber)
|
type: "tls",
|
||||||
}]'
|
tag: $tag,
|
||||||
|
server: $server_address,
|
||||||
|
server_port: ($server_port | tonumber)
|
||||||
|
}
|
||||||
|
+ (if $detour != "" then { detour: $detour } else {} end)
|
||||||
|
+ (if $domain_resolver != "" then { domain_resolver: $domain_resolver } else {} end)
|
||||||
|
)]'
|
||||||
}
|
}
|
||||||
|
|
||||||
#######################################
|
#######################################
|
||||||
@@ -149,6 +169,8 @@ sing_box_cm_add_tls_dns_server() {
|
|||||||
# server_port: string or number, port of the DNS server
|
# server_port: string or number, port of the DNS server
|
||||||
# path: string, optional URL path for HTTPS DNS requests
|
# path: string, optional URL path for HTTPS DNS requests
|
||||||
# headers: string, optional additional headers for HTTPS DNS requests
|
# headers: string, optional additional headers for HTTPS DNS requests
|
||||||
|
# domain_resolver: string, domain resolver to use for resolving domain names
|
||||||
|
# detour: string, tag of the upstream outbound
|
||||||
# Outputs:
|
# Outputs:
|
||||||
# Writes updated JSON configuration to stdout
|
# Writes updated JSON configuration to stdout
|
||||||
# Example:
|
# Example:
|
||||||
@@ -161,6 +183,8 @@ sing_box_cm_add_https_dns_server() {
|
|||||||
local server_port="$4"
|
local server_port="$4"
|
||||||
local path="$5"
|
local path="$5"
|
||||||
local headers="$6"
|
local headers="$6"
|
||||||
|
local domain_resolver="$7"
|
||||||
|
local detour="$6"
|
||||||
|
|
||||||
echo "$config" | jq \
|
echo "$config" | jq \
|
||||||
--arg tag "$tag" \
|
--arg tag "$tag" \
|
||||||
@@ -168,6 +192,8 @@ sing_box_cm_add_https_dns_server() {
|
|||||||
--arg server_port "$server_port" \
|
--arg server_port "$server_port" \
|
||||||
--arg path "$path" \
|
--arg path "$path" \
|
||||||
--arg headers "$headers" \
|
--arg headers "$headers" \
|
||||||
|
--arg domain_resolver "$domain_resolver" \
|
||||||
|
--arg detour "$detour" \
|
||||||
'.dns.servers += [(
|
'.dns.servers += [(
|
||||||
{
|
{
|
||||||
type: "https",
|
type: "https",
|
||||||
@@ -177,6 +203,8 @@ sing_box_cm_add_https_dns_server() {
|
|||||||
}
|
}
|
||||||
+ (if $path != "" then { path: $path } else {} end)
|
+ (if $path != "" then { path: $path } else {} end)
|
||||||
+ (if $headers != "" then { headers: $headers } else {} end)
|
+ (if $headers != "" then { headers: $headers } else {} end)
|
||||||
|
+ (if $detour != "" then { detour: $detour } else {} end)
|
||||||
|
+ (if $domain_resolver != "" then { domain_resolver: $domain_resolver } else {} end)
|
||||||
)]'
|
)]'
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user