VXVX Docs

DNS

DnsConfig, servers, and hijack

DNS is configured in ServerConfig.dns (DnsConfig). Schema: protos/proto/vx/dns/dns.proto.

DnsConfig

FieldTypeDescription
recordsRecord[]Static domain → IP mappings
recordStringsstring[]Alternate record encoding
dnsServersDnsServerConfig[]Named DNS upstreams
internalResolverResolverResolver used when dialing outbounds
requestDomainResolverResolverResolver for incoming DNS requests
concurrentDnsServersConcurrentDnsServer[]Query multiple servers in parallel
serialDnsServersSerialDnsServer[]Try servers one after another
resolversResolver[]Additional named resolvers
dnsHijackDnsHijackConfigHijack rules and fake DNS toggle

Record

FieldDescription
domainHostname
ipStatic answers
proxiedDomainMap this domain to the same IPs as proxiedDomain

Resolver

FieldDescription
dnsServersServer names or addresses
intervalWait between tries (serial behavior)
nameResolver name

DnsServerConfig

Each server has a name and a type oneof:

TypeMessagePurpose
plainDnsServerPlainDnsServerUDP DNS (addresses, useDefaultDns)
tlsDnsServerTlsDnsServerDNS over TLS
dohDnsServerDohDnsServerDNS over HTTPS (url)
quicDnsServerQuicDnsServerDNS over QUIC
fakeDnsServerFakeDnsServerFake-IP pools (poolConfigs: cidr, lruSize)
goDnsServerGoDnsServerGo resolver
emptyDnsServerEmptyDnsServerNo-op / placeholder

Common fields:

FieldDescription
clientIpEDNS client subnet
cacheDurationOverride TTL cache; 0 = use minimum answer TTL
ipTagsDrop answers outside these geo IP sets

DnsHijackConfig

FieldDescription
dnsRulesDnsRuleConfig[] — pick server by domain/tags/type
enableFakeDnsEnable fake DNS for hijacked queries

DnsRuleConfig

FieldDescription
dnsServerNameTarget DnsServerConfig.name
domains, domainTagsMatch query names
includedTypesA, AAAA, HTTPS, …
ruleNameDebug label
  • GeodomainTags and ipTags on rules and servers
  • RouterfakeIp and domain resolution rules
  • Dialer factoryuseInternalResolver

Comments