Arquivo de configuração
See file config.dist.yml for a full example of a YAML configuration file with comments.
dns
O objeto dns configura o comportamento do servidor DNS. Ele tem as seguintes propriedades:
cache
O objeto cache configura o cache dos resultados de inquérito de DNS. Ele tem as seguintes propriedades:
-
enabled: Se os resultados de DNS devem ser armazenados em cache ou não.Exemplo:
true -
size: O tamanho máximo do cache de resultados de DNS em tamanho de dados legível por humanos. Deve ser maior que zero seenabledfortrue.Exemplo:
128 MB -
client_size: O tamanho máximo do cache de resultados de DNS para cada endereço de cliente configurado ou sub-rede em tamanho de dados legível por humanos. Deve ser maior que zero seenabledfortrue.Exemplo:
4 MB
server
O objeto server configura o atendimento de solicitações recebidas. Ele tem as seguintes propriedades:
-
bind_retry: The configuration of the retry mechanism for binding to the listen addresses. Isso é útil se o servidor for iniciado antes que a rede esteja pronta e os endereços ainda não estejam disponíveis, como em algumas edições do Windows quando instalado como um serviço do sistema.noteEsse objeto está disponível desde v0.0.3.
Ele tem as seguintes propriedades:
-
enabled: Se a nova tentativa de vincular está ativada ou não.Exemplo:
true -
interval: O intervalo entre novas tentativas, representado como uma duração legível para humanos.Exemplo:
1s -
count: O número máximo de tentativas após a primeira falha. Ou seja, secountfor4, o número total de tentativas será cinco.Exemplo:
4
-
-
listen_addresses: O conjunto de endereços com portas para escutar.Exemplo de propriedade:
'listen_addresses':- address: '127.0.0.1:53'- address: '[::1]:53' -
pending_requests: Configuração para lidar com solicitações simultâneas duplicadas, usada para mitigar ataques de envenenamento de cache.noteEsse objeto está disponível desde v0.0.4.
-
enabled: Se true, o servidor realizará apenas uma única solicitação para cada pergunta exclusiva. O valor padrão é true.Exemplo:
true
-
bootstrap
O objeto bootstrap configura a resolução dos endereços de servidores upstream. Ele tem as seguintes propriedades:
-
servers: A lista de servidores para resolver os nomes dos servidores upstream.Exemplo de propriedade:
'servers':- address: '8.8.8.8:53'- address: '192.168.1.1:53' -
timeout: O tempo de espera para as solicitações de DNS bootstrap em uma duração legível por humanos.Exemplo:
2 s
upstream
O objeto upstream configura a resolução real das solicitações. Ele tem as seguintes propriedades:
-
groups: O conjunto de servidores upstream identificados pelo nome do grupo. Ele tem as seguintes propriedades:-
address: The upstream server’s address. Ifautodevice.enabledset totruefor this group, the address should be a URL with one ofhttps,tls, orquicscheme.Exemplo:
'8.8.8.8:53' -
autodevice: Represents an automatic connection of a device.noteThe autodevice option must be used only for AdGuard DNS upstreams. Otherwise, we can’t guarantee proper work.
Ele tem as seguintes propriedades:
-
enabled: Defines whether all clients within the current group can be connected automatically.infoThe predefined
privategroup must haveenabledset to false, as it doesn't support autodevice yet. -
profile_id: ID of a profile, in which new devices will be added. -
device_type: A type of device which will be created for new clients.
Exemplo de propriedade:
'autodevice':- enabled: true- profile_id: 'defa5678'- device_type: 'lnx' -
-
match: A lista de critérios para combinar a solicitação. Cada entrada pode conter as seguintes propriedades:-
question_domain: O domínio ou um sufixo do domínio que o conjunto de servidores upstream deve usar para resolver.Exemplo:
'mycompany.local' -
client: O endereço do cliente ou uma sub-rede do endereço do cliente a partir do qual o conjunto de servidores upstream deve resolver solicitações. Deve não ter bits significativos fora da máscara de sub-rede.Exemplo:
'192.0.2.0/24'
noteAs propriedades especificadas dentro de uma única entrada são combinadas com um AND lógico. As entradas são combinadas com um OR lógico.
Exemplo de propriedade:
'match':- question_domain: 'mycompany.local'client: '192.168.1.0/24'- question_domain: 'mycompany.external'- client: '1.2.3.4' -
infogroupsdeve conter pelo menos uma entrada chamadadefault, e opcionalmente uma entrada única chamadaprivate, ambas não devem ter a propriedadematch. Theprivategroup is also used to define the HumanID for clients created byautodevicefeature. If it is not defined, an alternative generation method is used, whereby the HumanID is formed from the IP address.O grupo
defaultserá usado quando não houver correspondências entre outros grupos. O grupoprivateserá usado para resolver as solicitações PTR para os endereços IP privados. Essas consultas serão respondidas comNXDOMAINse nenhum grupoprivateestiver definido. -
-
timeout: O tempo de espera para as solicitações de DNS upstream em uma duração legível por humanos.Exemplo:
2s
fallback
O objeto fallback configura o comportamento do servidor DNS em caso de falha. Ele tem as seguintes propriedades:
-
servers: A lista de servidores a serem usados após o upstream real não responder.Exemplo de propriedade:
'servers':- address: 'tls://94.140.14.140' -
timeout: O tempo de espera para as solicitações de DNS de recuo em uma duração legível por humanos.Exemplo:
2s
debug
O objeto debug configura os recursos de depuração. Ele tem as seguintes propriedades:
pprof
O objeto pprof configura os manipuladores HTTP pprof. Ele tem as seguintes propriedades:
-
port: A porta para escutar solicitações HTTP de depuração em localhost.Exemplo:
6060 -
enabled: Se a depuração do perfil está ativada ou não.Exemplo:
true
log
O objeto log configura o registro. Ele tem as seguintes propriedades:
-
output: A saída para a qual os registros são escritos.noteAs entradas de registro escritas no registro do sistema estão no formato
text(veja abaixo) e usam a data/hora do sistema.Valores possíveis:
-
syslogsignifica que o log do sistema específico da plataforma é usado, que é syslog para Linux e o Log de Eventos para Windows. -
stdoutpara o fluxo de saída padrão. -
stderrpara o fluxo de erros padrão. -
Caminho absoluto para o arquivo de log.
Exemplo:
/home/user/logsExemplo:
C:\Users\user\logs.txtExemplo:
syslog -
-
format: Especifica o formato das entradas de log.Valores possíveis:
-
default: Um formato simples. Exemplo:Serviço INFO iniciado prefix=program addr=127.0.0.1:53 -
json: Um formato JSON estruturado. Exemplo:{"level":"INFO","msg":"serviço iniciado","prefix":"program","addr":"127.0.0.1:53"} -
jsonhybrid: Idêntico ajson, mas com um número limitado de campos. Exemplo:{"level":"INFO","msg":"service started, attrs: prefix=program addr=127.0.0.1:53"} -
text: Um formato de texto estruturado. Exemplo:level=INFO msg="service started" prefix=program addr=127.0.0.1:53
Exemplo:
default -
-
timestamp: Especifica se deve incluir um carimbo de data/hora nas entradas de log.Exemplo:
false -
verbose: Especifica se o log deve ser mais informativo.Exemplo:
false