diff --git a/client/src/__locales/be.json b/client/src/__locales/be.json
index e3be1a060c5..b22023ef2aa 100644
--- a/client/src/__locales/be.json
+++ b/client/src/__locales/be.json
@@ -144,7 +144,7 @@
"descr": "Апісанне",
"details": "Падрабязнасці",
"dhcp_add_static_lease": "Дадаць статычную арэнду",
- "dhcp_config_saved": "Канфігурацыя DHCP-сервера паспяхова захавана",
+ "dhcp_config_saved": "Канфігурацыя DHCP паспяхова захавана",
"dhcp_description": "Калі ваш роўтар не падае налады DHCP, вы можаце выкарыстоўваць уласны ўбудаваны DHCP-сервер AdGuard.",
"dhcp_disable": "Адключыць сервер DHCP",
"dhcp_dynamic_ip_found": "Ваша сістэма выкарыстоўвае дынамічную канфігурацыю IP-адраса для інтэрфейсу <0>{{interfaceName}}0>. Неабходна задаць статычны IP-адрас для выкарыстання сервера DHCP. Ваш бягучы IP-адрас: <0>{{ipAddress}}0>. AdGuard Home аўтаматычна прызначыць яго ў якасці статычнага, калі вы націснеце кнопку «Уключыць DHCP».",
diff --git a/client/src/__locales/fr.json b/client/src/__locales/fr.json
index 376d08e628c..19b91893669 100644
--- a/client/src/__locales/fr.json
+++ b/client/src/__locales/fr.json
@@ -63,7 +63,7 @@
"blocking_mode_refused": "REFUSED : Répondre avec le code REFUSED",
"blocklist": "Liste de blocage",
"bootstrap_dns": "Serveurs DNS d'amorçage",
- "bootstrap_dns_desc": "Les adresses IP des serveurs DNS utilisées pour résoudre les adresses IP des résolveurs DoH/DoT que vous spécifiez comme en amont. Les commentaires ne sont pas autorisés.",
+ "bootstrap_dns_desc": "Les adresses IP des serveurs DNS utilisés pour résoudre les noms d'hôte des résolveurs en amont DNS-over-HTTPS/DNS-over-TLS. Saisissez une adresse IP par ligne. Les commentaires doivent commencer sur une nouvelle ligne par le caractère #. Les lignes vides et les commentaires sont ignorés.",
"cache_cleared": "Le cache DNS a été vidé",
"cache_enabled": "Activer le cache",
"cache_enabled_desc": "Stockez les réponses DNS localement.",
diff --git a/client/src/__locales/hr.json b/client/src/__locales/hr.json
index 67075fd858e..661e27db1da 100644
--- a/client/src/__locales/hr.json
+++ b/client/src/__locales/hr.json
@@ -63,7 +63,7 @@
"blocking_mode_refused": "REFUSED: Odgovorite s REFUSED kôdom",
"blocklist": "Popis nedopuštenih",
"bootstrap_dns": "Bootstrap DNS poslužitelji",
- "bootstrap_dns_desc": "IP adrese DNS poslužitelja koji se koriste za rješavanje IP adresa DoH/DoT razrjeđivača koje navedete kao uzvodne. Komentari nisu dopušteni.",
+ "bootstrap_dns_desc": "IP adrese DNS poslužitelja koje se upotrebljavaju za razrješavanje naziva glavnih računala uzvodnih DNS-over-HTTPS/DNS-over-TLS razrješivača. Unesite po jednu IP adresu u svaki redak. Komentari moraju započeti u novom retku znakom #. Prazni retci i komentari se zanemaruju.\nOpen AI • ChatGPT Pre-Translate\nIP adrese DNS poslužitelja koji se koriste za razrješavanje naziva hostova uzvodnih DoH/DoT razrješivača. Unesite jednu IP adresu po retku. Komentari moraju započeti u novom retku sa znakom #. Prazni retci i komentari se zanemaruju.",
"cache_cleared": "DNS predmemorija je uspješno izbrisana",
"cache_enabled": "Omogući predmemoriju",
"cache_enabled_desc": "Pohrani DNS Odgovore lokalno.",
diff --git a/client/src/__locales/it.json b/client/src/__locales/it.json
index 89512d87fae..56ef044b8bb 100644
--- a/client/src/__locales/it.json
+++ b/client/src/__locales/it.json
@@ -63,7 +63,7 @@
"blocking_mode_refused": "REFUSED: Risposta con codice di REFUSED",
"blocklist": "Lista nera",
"bootstrap_dns": "Server DNS bootstrap",
- "bootstrap_dns_desc": "Indirizzi IP dei server DNS utilizzati per risolvere gli indirizzi IP dei resolver DoH/DoT specificati come upstream. I commenti non sono ammessi.",
+ "bootstrap_dns_desc": "Indirizzi IP dei server DNS utilizzati per risolvere i nomi host dei resolver upstream DoH/DoT. Inserisci un indirizzo IP per riga. I commenti devono iniziare su una nuova riga con #. Le righe vuote e i commenti vengono ignorati.",
"cache_cleared": "Cache DNS è stata cancellata correttamente",
"cache_enabled": "Abilita la cache",
"cache_enabled_desc": "Memorizza localmente le risposte DNS.",
diff --git a/client/src/__locales/nl.json b/client/src/__locales/nl.json
index b4334200f83..146c9a6a887 100644
--- a/client/src/__locales/nl.json
+++ b/client/src/__locales/nl.json
@@ -560,7 +560,7 @@
"query_log": "Query log",
"query_log_clear": "Querylogboeken wissen",
"query_log_cleared": "Het querylogboek is succesvol gewist",
- "query_log_configuration": "Logbestanden instellingen",
+ "query_log_configuration": "Logboeken instellingen",
"query_log_confirm_clear": "Weet je zeker dat je het hele querylogboek wilt wissen?",
"query_log_disabled": "Het query logboek is uitgeschakeld en kan worden geconfigureerd in de <0>instellingen0>",
"query_log_enable": "Log bestanden inschakelen",
diff --git a/client/src/__locales/pt-br.json b/client/src/__locales/pt-br.json
index c44feb75de3..f92694bf9cb 100644
--- a/client/src/__locales/pt-br.json
+++ b/client/src/__locales/pt-br.json
@@ -63,7 +63,7 @@
"blocking_mode_refused": "REFUSED: responder com o código REFUSED",
"blocklist": "Lista de bloqueio",
"bootstrap_dns": "Servidores DNS de inicialização",
- "bootstrap_dns_desc": "Endereços IP de servidores DNS usados para resolver endereços IP dos resolvedores DoH/DoT que você especifica como upstreams. Comentários não são permitidos.",
+ "bootstrap_dns_desc": "Endereços IP de servidores DNS usados para resolver os nomes de host dos resolvedores upstream DoH/DoT. Insira um endereço IP por linha. Comentários devem começar em uma nova linha com #. Linhas vazias e comentários são ignorados.",
"cache_cleared": "Cache DNS limpo com sucesso",
"cache_enabled": "Ativar cache",
"cache_enabled_desc": "Armazenar as respostas DNS localmente.",
diff --git a/client/src/__locales/pt-pt.json b/client/src/__locales/pt-pt.json
index 0dd6c20d420..391588ff184 100644
--- a/client/src/__locales/pt-pt.json
+++ b/client/src/__locales/pt-pt.json
@@ -63,7 +63,7 @@
"blocking_mode_refused": "REFUSED: responder com o código REFUSED",
"blocklist": "Lista de bloqueio",
"bootstrap_dns": "Servidores DNS de arranque",
- "bootstrap_dns_desc": "Endereços IP de servidores DNS usados para resolver endereços IP dos resolvedores DoH/DoT que você especifica como upstreams. Comentários não são permitidos.",
+ "bootstrap_dns_desc": "Endereços IP de servidores DNS usados para resolver os nomes de host dos resolvedores upstream DoH/DoT. Insira um endereço IP por linha. Comentários devem começar numa nova linha com #. Linhas vazias e comentários são ignorados.",
"cache_cleared": "O cache DNS foi apagado com sucesso",
"cache_enabled": "Ativar cache",
"cache_enabled_desc": "Armazene as respostas DNS localmente.",
diff --git a/client/src/helpers/filters/filters.ts b/client/src/helpers/filters/filters.ts
index d9f90d1ceb7..45f664d6060 100644
--- a/client/src/helpers/filters/filters.ts
+++ b/client/src/helpers/filters/filters.ts
@@ -71,9 +71,9 @@ export default {
"source": "https://adguardteam.github.io/HostlistsRegistry/assets/filter_43.txt"
},
"KOR_list_kr": {
- "name": "KOR: List-KR DNS",
+ "name": "KOR: filterslists-KO",
"categoryId": "regional",
- "homepage": "https://github.com/List-KR/List-KR",
+ "homepage": "https://github.com/FilteringDev/filterslists-KO",
"source": "https://adguardteam.github.io/HostlistsRegistry/assets/filter_25.txt"
},
"KOR_youslist": {
diff --git a/client/src/helpers/trackers/trackers.json b/client/src/helpers/trackers/trackers.json
index 875cd3c9fec..e6adc1d497f 100644
--- a/client/src/helpers/trackers/trackers.json
+++ b/client/src/helpers/trackers/trackers.json
@@ -1,5 +1,5 @@
{
- "timeUpdated": "2026-02-09T10:25:05.786Z",
+ "timeUpdated": "2026-09-21T10:11:33.965Z",
"categories": {
"0": "audio_video_player",
"1": "comments",
@@ -22364,6 +22364,7 @@
"gcp.gvt2.com": "google_cloud_platform",
"storage.googleapis.com": "google_cloud_storage",
"adsensecustomsearchads.com": "google_custom_search",
+ "syndicatedsearch.goog": "google_custom_search",
"dns.google": "google_dns",
"dns.google.com": "google_dns",
"google-public-dns-a.google.com": "google_dns",
diff --git a/go.mod b/go.mod
index e5fc4ca15ee..09b4d7c1341 100644
--- a/go.mod
+++ b/go.mod
@@ -3,7 +3,7 @@ module github.com/AdguardTeam/AdGuardHome
go 1.26.8
require (
- github.com/AdguardTeam/dnscrypt v0.0.2
+ github.com/AdguardTeam/dnscrypt v0.0.3
github.com/AdguardTeam/dnsproxy v0.84.2
github.com/AdguardTeam/golibs v0.35.15
github.com/AdguardTeam/urlfilter v0.23.4
diff --git a/go.sum b/go.sum
index e8e65cb12f2..031c2ef552b 100644
--- a/go.sum
+++ b/go.sum
@@ -4,12 +4,8 @@ cloud.google.com/go/auth v0.23.1 h1:1tPpBPG02lQHmoiAvs9egyCASqXP0xgobptjZzov/Jg=
cloud.google.com/go/auth v0.23.1/go.mod h1:4DhBRcqvtljQN3dJ57qtqbib5ZGCYE5f2crfiiC2EM0=
cloud.google.com/go/compute/metadata v0.9.0 h1:pDUj4QMoPejqq20dK0Pg2N4yG9zIkYGdBtwLoEkH9Zs=
cloud.google.com/go/compute/metadata v0.9.0/go.mod h1:E0bWwX5wTnLPedCKqk3pJmVgCBSM6qQI1yTBdEb3C10=
-github.com/AdguardTeam/dnscrypt v0.0.2 h1:kIFCyjYofKHug7RwPGOjVga81P0/zOQdbUN+7p+I95M=
-github.com/AdguardTeam/dnscrypt v0.0.2/go.mod h1:qCFs51rLfNzEDZqb6nz1tocVLnEearJ1zng6O3I6ecA=
-github.com/AdguardTeam/dnsproxy v0.84.1 h1:Ge1UdyVNswKn0BKrV5qp+o/V0tF0N6wYcxaGYujDeEg=
-github.com/AdguardTeam/dnsproxy v0.84.1/go.mod h1:nZlktYebWcLO613q1j2N0bZ5BEnHPuqXAyW6O9vIhDU=
-github.com/AdguardTeam/dnsproxy v0.84.2-0.20260827044600-ec403a1b112c h1:1J0V6c4jwBefxhDmYY2fPGo/abUUDE9lpiPUdxJ7oUM=
-github.com/AdguardTeam/dnsproxy v0.84.2-0.20260827044600-ec403a1b112c/go.mod h1:nZlktYebWcLO613q1j2N0bZ5BEnHPuqXAyW6O9vIhDU=
+github.com/AdguardTeam/dnscrypt v0.0.3 h1:o2Zg+/CRCPS2lPobMzYs59aE3RNdMKfOBk34bPbbUbg=
+github.com/AdguardTeam/dnscrypt v0.0.3/go.mod h1:qCFs51rLfNzEDZqb6nz1tocVLnEearJ1zng6O3I6ecA=
github.com/AdguardTeam/dnsproxy v0.84.2 h1:VlGPQhVEHPy2xgqet4r6iXHFCPZ8+BtTnRx/+nSs/wQ=
github.com/AdguardTeam/dnsproxy v0.84.2/go.mod h1:6kCM5M/gtuQr/0BjtnReHlK6+N0BTee+WHOq3m1JNq4=
github.com/AdguardTeam/golibs v0.35.15 h1:KjksvvzlQqxdNvrz+O3FgMbZKZAQdcoCkgBz0mR7wFQ=
diff --git a/internal/filtering/servicelist.go b/internal/filtering/servicelist.go
index 5adfbc8a9a7..241d697beb6 100644
--- a/internal/filtering/servicelist.go
+++ b/internal/filtering/servicelist.go
@@ -747,6 +747,16 @@ var blockedServices = []blockedService{{
"||starplus.com^",
},
GroupID: "streaming",
+}, {
+ ID: "dola",
+ Name: "Dola",
+ IconSVG: []byte(""),
+ Rules: []string{
+ "||cici.com^",
+ "||ciciai.com^",
+ "||dola.com^",
+ },
+ GroupID: "ai",
}, {
ID: "douban",
Name: "Douban",
@@ -2503,6 +2513,24 @@ var blockedServices = []blockedService{{
"||url.cn^",
},
GroupID: "streaming",
+}, {
+ ID: "questionai",
+ Name: "QuestionAI",
+ IconSVG: []byte(""),
+ Rules: []string{
+ "||questionai.ai^",
+ "||questionai.com^",
+ },
+ GroupID: "ai",
+}, {
+ ID: "qwen",
+ Name: "Qwen",
+ IconSVG: []byte(""),
+ Rules: []string{
+ "||qwen.ai^",
+ "||qwenlm.ai^",
+ },
+ GroupID: "ai",
}, {
ID: "rakuten_viki",
Name: "Rakuten Viki",
diff --git a/internal/home/dns.go b/internal/home/dns.go
index 345c0765c6a..83414cda3f0 100644
--- a/internal/home/dns.go
+++ b/internal/home/dns.go
@@ -387,6 +387,11 @@ func newDNSCryptConfig(
return nil, fmt.Errorf("decoding dnscrypt config: %w", err)
}
+ err = rc.Validate()
+ if err != nil {
+ return nil, fmt.Errorf("validating dnscrypt config: %w", err)
+ }
+
cert, err := rc.NewCert()
if err != nil {
return nil, fmt.Errorf("creating dnscrypt cert: %w", err)