DNSCrypt command-line interface
April 23, 2026 ยท View on GitHub
Besides the programming interface, DNSCrypt has command-line interface.
Contents
Server
Starts DNSCrypt server with specified parameters. Config can be generated using generate or convert commands.
Options
-
-c/--config <path>: Path to the server configuration file.Default:
config.yaml -
-f/--forward <addr>: Default upstream for server.Default:
94.140.14.140:53 -
-l/--listen <addr>: Server listening addresses.Default:
0.0.0.0:443 -
-t/--timeout <duration>: Timeout for server to request upstream.Default:
10s
Example
dnscrypt server --config config.yaml --listen 0.0.0.0:443 --listen 0.0.0.0:8888 --forward 8.8.8.8:53 --timeout 5s
This server can be requested using lookup command, or dnslookup tool. For DNSCrypt stamp generation see https://dnscrypt.info/stamps.
Lookup
Performs DNS lookup via DNSCrypt using stamp or raw server parameters.
Options
-
-a/--addr <addr>: Resolver address (IP[:port]).Default: No default value. If stamp is not specified, this option is required.
-
-d/--domain <domain>: Domain to resolve.Default: No default value, option is required.
-
-n/--network <proto>: Network protocol (tcp/udp).Default:
udp -
-pk/--public-key <key>: DNSCrypt resolver public key.Default: No default value. If stamp is not specified, this option is required.
-
-pn/--provider-name <name>: DNSCrypt provider name.Default: No default value. If stamp is not specified, this option is required.
-
-s/--stamp <stamp>: DNSCrypt resolver stamp.Default: No default value.
-
-t/--type <type>: DNS query type.Default:
A
Example
dnscrypt lookup --domain example.org --stamp sdns://...
dnscrypt lookup --domain example.org --public-key <key> --provider-name 2.dnscrypt-cert.example.org --addr 1.2.3.4:443
Generate
Generates DNSCrypt resolver config.
Options
-
-o/--out <path>: Output file path.Default:
config.yaml -
-pk/--private-key <key>: Server hex-encoded private key.Default: No default value. If option is not specified, new private key will be generated.
-
-pn/--provider-name <name>: DNSCrypt provider name.Default: No default value, option is required.
-
-t/--ttl <duration>: Certificate time-to-live.Default:
8760h.
Example
dnscrypt generate --provider-name 2.dnscrypt-cert.example.org --out config.yaml
dnscrypt generate --provider-name 2.dnscrypt-cert.example.org --private-key <hex-key> --out config.yaml
Convert
Generates DNSCrypt resolver config from keys generated with dnscrypt-wrapper.
Options
-
-o/--out <path>: Output file path.Default:
config.yaml -
-pk/--private-key <path>: Path to file with server private key.Default: No default value, option is required.
-
-pn/--provider-name <name>: DNSCrypt provider name.Default: No default value, option is required.
-
-r/--resolver-secret <path>: Path to file with short-term privacy key.Default: No default value, option is required.
-
-t/--ttl <duration>: Certificate time-to-live.Default:
8760h.
Example
dnscrypt convert --provider-name 2.dnscrypt-cert.example.org --private-key secret.key --resolver-secret crypt_secret.key --out config.yaml
Common options
Help
-h/--help: makes DNSCrypt print out a help message to standard output and exit with a success status-code.
Verbose
-v/--verbose: Enables verbose logging.
Version
--version: makes DNSCrypt print out the version of the application to standard output and exit with a success status-code.