%ipv4%,%ipv6%: regular DNS (over UDP)",
+ "upstream_example_udp_port": "%ipv4%,%ipv6%: regular DNS (over UDP, with port)",
+ "upstream_example_udp_hostname": "%value%: regular DNS (over UDP, hostname)",
+ "upstream_example_tcp": "%ipv4%,%ipv6%: regular DNS (over TCP)",
+ "upstream_example_tcp_port": "%ipv4%,%ipv6%: regular DNS (over TCP, with port)",
+ "upstream_example_tcp_hostname": "%value%: regular DNS (over TCP, hostname)",
+ "upstream_example_upstream_dot": "%value%: encrypted DNS-over-TLS",
+ "upstream_example_upstream_doh": "%value%: encrypted DNS-over-HTTPS",
+ "upstream_example_upstream_doh3": "%value%: encrypted DNS-over-HTTPS with forced HTTP/3 and no fallback to HTTP/2",
+ "upstream_example_upstream_doq": "%value%: encrypted DNS-over-QUIC",
+ "upstream_example_upstream_sdns": "%value%: DNS Stamps for DNSCrypt or %value%: an upstream for specific domains",
+ "upstream_example_multiple_upstreams_reserved": "%value%: multiple upstreams for specific domains",
+ "upstream_example_upstream_comment": "%value%: a comment.",
+ "upstream_fallback_title": "Fallback DNS servers, one per line",
+ "upstream_fallback_title_faq": "Fallback DNS servers to use when upstream DNS servers are unavailable. Use the same syntax as for the upstream DNS servers",
+ "ip_addresses_placeholder": "Enter IP addresses, one per line",
+ "upstream_bootstrap_dns_title": "Bootstrap DNS servers, one per line",
+ "upstream_bootstrap_dns_faq": "IP addresses of DNS servers used to resolve the IP addresses of DoH/DoT upstream resolvers. Comments are not allowed",
+ "upstream_ptr": "Private reverse DNS servers, one per line",
+ "upstream_ptr_faq_1": "AdGuard Home uses these DNS servers for private PTR, SOA, and NS requests. Private requests come from clients with a private IP address and ask for an ARPA domain that contains a subnet from a private IP address range, such as %value%",
+ "upstream_ptr_faq_2": "If this field is empty, the default DNS resolvers of your OS will be used, except for the AdGuard Home IP addresses",
+ "upstream_ptr_faq_3": "By default, AdGuard Home uses the following reverse DNS resolvers: %value_1% and %value_2%",
+ "upstream_private_ptr_resolvers_title": "Use private reverse DNS resolvers",
+ "upstream_private_ptr_resolvers_desc": "Resolve PTR, SOA, and NS requests for ARPA domains containing private IP addresses through private upstream servers, DHCP, /etc/hosts, and so on. If disabled, AdGuard Home will respond to all such requests with NXDOMAIN",
+ "upstream_enable_reverse_lookup_title": "Enable reverse lookup of client IP addresses",
+ "upstream_enable_reverse_lookup_desc": "Reverse-resolve client IP addresses to their hostnames by sending PTR queries to appropriate resolvers: private DNS servers for local clients, or upstream servers for clients with public IP addresses",
+ "upstream_timeout": "Upstream timeout, in seconds",
+ "upstream_timeout_faq": "Time to wait for a response from the upstream server",
+ "upstream_timeout_placeholder": "Enter the upstream server timeout duration",
+ "apply": "Apply",
+ "test_upstreams": "Test upstreams",
+ "server_config_title": "DNS server configuration",
+ "server_config_rate_limit": "Rate limit, RPS",
+ "server_config_rate_limit_faq": "The number of requests per second allowed per client. A value of 0 means no limit",
+ "server_config_rate_limit_placeholder": "Enter rate limit",
+ "server_config_subnet_len_ipv4": "Subnet prefix length for IPv4 addresses",
+ "server_config_subnet_len_ipv4_faq": "Subnet prefix length for IPv4 addresses used for rate limiting. The default is 24",
+ "server_config_subnet_len_ipv6": "Subnet prefix length for IPv6 addresses",
+ "server_config_subnet_len_ipv6_faq": "Subnet prefix length for IPv6 addresses used for rate limiting. The default is 56",
+ "server_config_subnet_len_placeholder": "Enter prefix length",
+ "server_config_rate_limit_whitelist": "Rate-limiting allowlist",
+ "server_config_rate_limit_whitelist_faq": "IP addresses excluded from rate limiting",
+ "server_config_edns_enable": "Enable EDNS client subnet",
+ "server_config_edns_cs_desc": "Add the EDNS Client Subnet (ECS) option to upstream requests and log the values sent by the clients in the query log",
+ "server_config_edns_use_custom_ip": "Use custom IP address for EDNS",
+ "server_config_edns_use_custom_ip_desc": "Replace the client IP address with the custom IP address below",
+ "enter_ip_address_placeholder": "Enter IP address",
+ "server_config_dnssec_enable": "Enable DNSSEC",
+ "server_config_dnssec_enable_desc": "Set the DNSSEC flag in outbound DNS queries and check the result. Requires a DNSSEC-enabled resolver",
+ "server_config_disable_ipv6": "Disable resolving of IPv6 addresses",
+ "server_config_disable_ipv6_desc": "Drop all DNS queries for IPv6 addresses (type AAAA) and remove IPv6 hints from HTTPS responses",
+ "server_config_blocking_mode": "Blocking mode",
+ "server_config_default": "Default",
+ "server_config_blocking_mode_default_desc": "Default: Respond with 0.0.0.0 for A and :: for AAAA if blocked by Adblock-style rule. Respond with the IP address specified in the rule if blocked by /etc/hosts-style rule",
+ "server_config_refused": "REFUSED",
+ "server_config_blocking_mode_refused_desc": "REFUSED: Respond with REFUSED code",
+ "server_config_nxdomain": "NXDOMAIN",
+ "server_config_blocking_mode_nxdomain_desc": "NXDOMAIN: Respond with NXDOMAIN code",
+ "server_config_null_ip": "Null IP address",
+ "server_config_blocking_mode_null_ip_desc": "Null IP address: Respond with 0.0.0.0 for A and :: for AAAA",
+ "server_config_custom_ip": "Custom IP address",
+ "server_config_blocking_mode_custom_ip_desc": "Custom IP address: Respond with a manually set IP address",
+ "server_config_blocking_mode_ipv4": "Blocking IPv4",
+ "server_config_blocking_mode_ipv4_placeholder": "Enter IPv4 address",
+ "server_config_blocking_mode_ipv4_faq": "IP address to return for a blocked A request",
+ "server_config_blocking_mode_ipv6": "Blocking IPv6",
+ "server_config_blocking_mode_ipv6_placeholder": "Enter IPv6 address",
+ "server_config_blocking_mode_ipv6_faq": "IP address to return for a blocked AAAA request",
+ "server_config_blocking_mode_ttl": "Blocked response TTL, in seconds",
+ "server_config_blocking_mode_ttl_faq": "Specifies how long clients should cache a filtered response",
+ "cache_config_title": "DNS cache configuration",
+ "cache_config_size": "Cache size, in bytes",
+ "cache_config_size_faq": "DNS cache size. To disable caching, leave empty",
+ "cache_config_min_ttl": "Override minimum TTL, in seconds",
+ "cache_config_min_ttl_faq": "The minimum time-to-live (TTL) value for entries in the DNS cache",
+ "cache_config_min_ttl_placeholder": "Enter minimum TTL",
+ "cache_config_max_ttl": "Override maximum TTL, in seconds",
+ "cache_config_max_ttl_faq": "The maximum time-to-live (TTL) value for entries in the DNS cache",
+ "cache_config_max_ttl_placeholder": "Enter maximum TTL",
+ "cache_config_optimistic": "Optimistic caching",
+ "cache_config_optimistic_desc": "AdGuard Home will respond from the cache even if the entries have expired and will try to update them",
+ "cache_config_clear": "Clear cache",
+ "cache_enabled": "Enable cache",
+ "cache_enabled_desc": "Store DNS responses locally",
+ "access_settings_title": "Access settings",
+ "access_settings_allowed_title": "Allowed clients, one per line",
+ "access_settings_allowed_faq": "A list of CIDRs, IP addresses, or ClientIDs. If this field has entries, AdGuard Home will accept requests only from these clients",
+ "access_settings_disallowed_title": "Disallowed clients, one per line",
+ "access_settings_disallowed_faq": "A list of CIDRs, IP addresses, or ClientIDs. If this field has entries, AdGuard Home will drop requests from these clients. This field is ignored if there are entries in Allowed clients",
+ "access_settings_blocked_title": "Disallowed domains, one per line",
+ "access_settings_blocked_faq_1": "AdGuard Home will drop DNS queries matching these domains. Such queries don’t appear in the query log. You can enter exact domain names, wildcards, or URL filter rules, such as example.org, *.example.org, or ||example.org^",
+ "access_settings_blocked_faq_2": "Not to be confused with filters"
}
diff --git a/client_v2/src/common/controls/Checkbox/Checkbox.module.pcss b/client_v2/src/common/controls/Checkbox/Checkbox.module.pcss
index 6bce1db5..01515b37 100644
--- a/client_v2/src/common/controls/Checkbox/Checkbox.module.pcss
+++ b/client_v2/src/common/controls/Checkbox/Checkbox.module.pcss
@@ -7,6 +7,18 @@
&.disabled {
cursor: default;
}
+
+ &.center {
+ align-items: center;
+ }
+
+ &.start {
+ align-items: flex-start;
+ }
+
+ &.end {
+ align-items: flex-end;
+ }
}
.input {
diff --git a/client_v2/src/common/controls/Checkbox/Checkbox.tsx b/client_v2/src/common/controls/Checkbox/Checkbox.tsx
index 0ae0eb3a..9c3afe05 100644
--- a/client_v2/src/common/controls/Checkbox/Checkbox.tsx
+++ b/client_v2/src/common/controls/Checkbox/Checkbox.tsx
@@ -12,6 +12,7 @@ type Props = ComponentProps<'input'> & {
onClick?: (e: MouseEvent