AdguardTeam / dnsproxy

Simple DNS proxy with DoH, DoT, DoQ and DNSCrypt support
Apache License 2.0
2.44k stars 247 forks source link

Syntax for config.yaml is not apparent / not as advertised #420

Open cmjordan42 opened 1 month ago

cmjordan42 commented 1 month ago

In /config.yaml.dist it's advertised that to find out the expected syntax for the values in the yaml file, "all the options available can be seen with ./dnsproxy --help". The values offered by --help are not actually valid. I dove into /main.go to try to back into the expected yaml syntax, and dnsproxy appears to parse/accept the yaml file, but it does not start as expected.

  1. Please consider publishing the yaml syntax.
  2. In my case, I'm attempting to start a docker container of adguard/dnsproxy with multiple secure DNS methods and forwarding them upstream to a local DNS server. What is it expecting that I am not properly specifying?

config.yaml:

upstream:
  - "10.1.0.3:53"
fallback:
  - "8.8.8.8"
https-port:
  - 443
tls-port:
  - 853
quic-port:
  - 1853
dnscrypt-port:
  - 2853
ratelimit: 20
upd-buf-size: 1024
ratelimit-subnet-len-ipv4: 24
ratelimit-subnet-len-ipv6: 64
refuse-any: true
tls-cert: "/etc/letsencrypt/live/domain.name.replaced/fullchain.pem"
tls-key: "/etc/letsencrypt/live/domain.name.replaced/privkey.pem"

log from dnsproxy starting with that config:

dnsproxy config path: /opt/dnsproxy/config.yaml
2024/09/17 01:30:18.112330 INFO dnsproxy starting version=v0.73.2 revision=011f37a branch=HEAD commit_time=1726113961
2024/09/17 01:30:18.116575 INFO ratelimit is enabled prefix=dnsproxy rps=20 ipv4_subnet_mask_len=24 ipv6_subnet_mask_len=64
2024/09/17 01:30:18.121138 INFO server will refuse requests of type any prefix=dnsproxy
2024/09/17 01:30:18.121281 INFO upstream mode is set prefix=dnsproxy mode=load_balance
2024/09/17 01:30:18.121337 INFO cache disabled prefix=dnsproxy
2024/09/17 01:30:18.121461 INFO starting dns proxy server prefix=dnsproxy
2024/09/17 01:30:18.121545 INFO creating udp server socket prefix=dnsproxy addr=0.0.0.0:53
2024/09/17 01:30:18.121931 INFO listening to udp prefix=dnsproxy addr=[::]:53
2024/09/17 01:30:18.123777 INFO creating tcp server socket prefix=dnsproxy addr=0.0.0.0:53
2024/09/17 01:30:18.124116 INFO listening to tcp prefix=dnsproxy addr=[::]:53
2024/09/17 01:30:18.128051 INFO entering udp listener loop prefix=dnsproxy addr=[::]:53
2024/09/17 01:30:18.128231 INFO entering listener loop prefix=dnsproxy proto=tcp addr=[::]:53

Thanks.

greygoody commented 1 month ago

same here , I need to have a config based setup and I'm constantly confused here

jeff47 commented 2 weeks ago

Ditto... options for the config.yaml are not documented. Very frustrating!