doggo - 현대적 DNS 클라이언트 치트시트
doggo는 명령줄을 위한 현대적 DNS 클라이언트 — dig의 친숙하고 색상화된 대안으로 깔끔한 표 형식 또는 JSON 출력을 제공합니다. 기존 UDP/TCP 쿼리 이외에도 현대적 암호화된 전송을 지원합니다: DNS-over-HTTPS (DoH), DNS-over-TLS (DoT), DNS-over-QUIC (DoQ), 그리고 DNSCrypt. Go로 작성되었으며 단일 바이너리로 배포되고, 빠른 조회 및 스크립트된 DNS 진단 모두에 유용합니다.
설치
| 플랫폼 | 명령어 |
|---|
| Go install | go install github.com/mr-karan/doggo/cmd/doggo@latest |
| macOS (Homebrew) | brew install doggo |
| Arch Linux | sudo pacman -S doggo |
| Docker | docker run --rm ghcr.io/mr-karan/doggo doggo example.com |
| 바이너리 | GitHub Releases 페이지에서 다운로드 |
기본 쿼리
| 명령어 | 설명 |
|---|
doggo example.com | 기본 A 레코드 조회 |
doggo example.com MX | 특정 레코드 타입 쿼리 |
doggo example.com A AAAA MX | 여러 레코드 타입 동시 쿼리 |
doggo example.com @1.1.1.1 | 특정 해석기 사용 |
doggo --help | 전체 옵션 목록 |
doggo --version | 버전 |
레코드 타입
| 예제 | 반환 값 |
|---|
doggo example.com A | IPv4 주소 |
doggo example.com AAAA | IPv6 주소 |
doggo example.com MX | 메일 서버 |
doggo example.com TXT | TXT 레코드 (SPF, DKIM, 검증) |
doggo example.com NS | 네임 서버 |
doggo example.com CNAME | 정규 이름 |
doggo example.com SOA | 권한의 시작 |
doggo example.com CAA | 인증 기관 인증 |
암호화 및 대체 전송
| 명령어 | 전송 |
|---|
doggo example.com @https://cloudflare-dns.com/dns-query | DNS-over-HTTPS (DoH) |
doggo example.com @tls://1.1.1.1 | DNS-over-TLS (DoT) |
doggo example.com @quic://dns.adguard.com | DNS-over-QUIC (DoQ) |
doggo example.com @sdns://... | DNSCrypt (stamp) |
doggo example.com @udp://1.1.1.1 | 명시적 UDP |
doggo example.com @tcp://1.1.1.1 | 명시적 TCP |
출력 제어
| 옵션 | 설명 |
|---|
--json | JSON 출력 (스크립트에 좋음) |
--short | 답변 값만 출력 |
--color=false | 색상화 출력 비활성화 |
--time | 쿼리 왕복 시간 표시 |
-4 / -6 | IPv4 / IPv6 전송 강제 |
역방향 및 고급
| 명령어 | 설명 |
|---|
doggo --reverse 1.1.1.1 | 역방향 DNS (PTR) 조회 |
doggo example.com --ndots=1 | ndots 해석 동작 제어 |
doggo example.com --search | 시스템 검색 목록 사용 |
doggo example.com --aa | 권한 있는 답변 요청 |
doggo example.com --do | DNSSEC OK 비트 설정 |
일반적인 워크플로우
# 빠르고 인간이 읽을 수 있는 답변만
doggo --short example.com
# 메일 설정 한눈에 확인
doggo example.com MX TXT
# DoH 해석기 테스트 및 시간 측정
doggo example.com @https://dns.google/dns-query --time
# 모니터링용 스크립트 친화적 JSON
doggo example.com A --json | jq '.responses[].answers'
# IP에 대한 역방향 레코드 확인
doggo --reverse 8.8.8.8 --short
doggo vs dig vs dog
| 기능 | doggo | dig | dog |
|---|
| 색상화 출력 | 예 | 아니오 | 예 |
| JSON 출력 | 예 | 아니오 | 예 |
| DoH / DoT / DoQ | 예 | 제한적 | 예 |
| DNSCrypt | 예 | 아니오 | 아니오 |
| 단일 바이너리 | 예 (Go) | 시스템 pkg | 예 (Rust) |
리소스