Installing Doggo is straightforward and supported across multiple platforms. Choose the method that best fits your environment:
Homebrew (MacOS):
brew install doggo
Snap (Linux):
snap install doggo
curl -sSL https://doggo.mrkaran.dev/install.sh | bash
docker pull ghcr.io/doggo/doggo:latest
docker run --rm ghcr.io/doggo/doggo <command>
PATH
:
mv doggo /usr/local/bin/
chmod +x /usr/local/bin/doggo
For detailed installation instructions, refer to the Official Installation Guide.
Doggo simplifies the process of querying DNS records with straightforward commands. Here’s how to perform common DNS queries:
To retrieve specific DNS records for a domain, use the following syntax:
doggo <domain> [record-type]
For example, to query the A
record for example.com
:
doggo example.com A
Retrieve all supported DNS record types in a single command using the --any
flag:
doggo example.com --any
Perform a reverse DNS lookup to find the domain associated with an IP address:
doggo --reverse 8.8.8.8
Enable DNSSEC validation to ensure the authenticity of DNS responses:
doggo example.com --dnssec
Note: DNSSEC validation requires the target domain to be properly signed with DNSSEC.
Doggo enhances DNS query security by supporting encrypted protocols. Here's how to use them:
Encrypt DNS queries using TLS to protect against interception and tampering:
doggo example.com @tls://1.1.1.1
Perform DNS queries over HTTPS for added privacy and compatibility with HTTPS infrastructure:
doggo example.com @https://dns.google
Utilize the QUIC protocol to achieve enhanced security and improved performance:
doggo example.com @quic://1.1.1.1
These secure protocols ensure that your DNS queries remain private and are shielded from potential eavesdropping or manipulation.
Doggo provides various options to customize the behavior of DNS queries to suit specific needs:
Customize DNS query parameters using flags:
--aa
: Request an Authoritative Answer.
--ad
: Request Authenticated Data.
--cd
: Disable Checking.
--rd
: Recursion Desired (enabled by default).
Example of disabling checking:
doggo example.com --cd
Set a timeout duration for DNS queries to prevent hanging:
doggo example.com --timeout=5s
Specify which nameservers to use for DNS queries:
doggo example.com --nameserver=8.8.8.8
You can choose to use the system's /etc/resolv.conf
or override it with user-specified nameservers as demonstrated above.
Doggo offers a range of advanced features to enhance DNS querying and analysis:
Compare DNS responses from different resolvers to assess performance and reliability:
doggo example.com @1.1.1.1 @8.8.8.8
Enhance your command-line efficiency with auto-completions for zsh
and fish
shells:
doggo completion zsh > /path/to/zsh_completion
doggo completion fish > /path/to/fish_completion
Enable debugging to troubleshoot DNS queries:
doggo example.com --debug
This will provide detailed logs of the DNS query process, aiding in identifying issues.
Doggo allows users to define how nameservers are queried, offering flexibility in resolver selection:
Strategy | Description |
---|---|
all |
Queries all available nameservers. |
random |
Queries a randomly selected nameserver. |
first |
Queries the first nameserver in the list. |
To specify a resolver strategy, use the --strategy
flag:
doggo example.com --strategy=all
Choosing the appropriate strategy helps in managing load and ensuring reliable DNS responses based on your requirements.
Doggo supports DNSSEC, which adds an authentication layer to DNS queries to verify the integrity and origin of DNS data:
Enable DNSSEC validation using the --dnssec
flag:
doggo example.com --dnssec
DNSSEC helps prevent attacks like DNS spoofing by ensuring that the responses received are legitimate and have not been tampered with.
Doggo is built upon several core principles that ensure it remains a robust, secure, and user-friendly DNS client. Understanding these principles helps users leverage Doggo effectively:
At the heart of Doggo’s design is a commitment to security. By incorporating multiple encryption protocols such as DNS-over-TLS (DoT), DNS-over-HTTPS (DoH), and DNS-over-QUIC (DoQ), Doggo ensures that DNS queries are protected against eavesdropping and tampering. Additionally, support for DNSSEC validation further guarantees the authenticity of DNS responses.
Doggo is crafted to provide an intuitive user experience. Its straightforward command syntax and human-readable output make DNS querying accessible to users of all skill levels. Features like shell completions for popular shells (zsh and fish) enhance usability by streamlining command-line interactions.
Doggo caters to a wide range of use cases through its versatile configurability. Users can customize query parameters, select specific resolvers, and utilize advanced features like multiple resolver comparisons. This flexibility makes Doggo suitable for both simple DNS lookups and complex DNS analysis tasks.
Despite its advanced capabilities, Doggo maintains a simple and lightweight footprint. Its command-line interface is streamlined for efficiency, allowing users to perform DNS queries without unnecessary complexity. This simplicity ensures that Doggo remains accessible and easy to use.
Doggo supports a wide array of DNS record types, protocols, and resolver strategies. This flexibility allows users to tailor their DNS queries to specific needs, whether it’s for standard lookups, security-focused queries, or performance comparisons.
Protecting user privacy is a key priority for Doggo. By leveraging encrypted DNS protocols like DoT and DoH, Doggo ensures that DNS traffic remains private and shielded from potential surveillance or interception. This privacy-focused approach aligns with modern privacy standards and user expectations.
Doggo is designed to operate seamlessly across multiple platforms, including Linux, MacOS, and environments where Docker is available. This cross-platform compatibility ensures that users can integrate Doggo into various workflows and systems without compatibility issues.
Doggo embraces transparency through its open-source nature. Hosted on GitHub, Doggo allows users to inspect, audit, and contribute to its codebase. This openness fosters trust and encourages community-driven enhancements and security reviews.
Ensuring compatibility with standard DNS servers and configurations, Doggo functions seamlessly within existing DNS infrastructures. This compatibility makes it an effective tool for DNS troubleshooting, analysis, and integration into various network environments.
Doggo stands out as a powerful, secure, and user-friendly command-line DNS client tailored for both novices and experts. Its commitment to security through multiple encryption protocols and DNSSEC, combined with its versatile and flexible configuration options, makes it an indispensable tool for DNS querying and analysis. The emphasis on simplicity and user-friendly design ensures that effective DNS management is accessible to all users, while its open-source transparency fosters trust and community collaboration. Whether you’re performing basic DNS lookups, conducting in-depth DNS analysis, or prioritizing privacy and security in your DNS traffic, Doggo provides the features and principles necessary to meet your needs effectively.