
DNSnitch는 네트워크 트래픽을 완전히 제어할 수 있게 해주는 로컬 개인정보 보호 우선 DNS 서버입니다. 수동적 차단 목록과 달리 DNSnitch는 "Default Deny" 철학으로 작동합니다. 즉, 실시간 터미널 대시보드에서 승인할 때까지 모든 알 수 없는 도메인은 기본적으로 차단됩니다.
고지 사항 이 도구는 제가 직접 사용하려고 만든 것이며, 필요하다면 다른 분도 사용할 수 있도록 공개해 둔 것입니다. 버그를 발견하면 이슈를 열어 주세요!
인터랙티브 터미널 DNS 방화벽
DNSnitch는 네트워크 트래픽을 완전히 제어할 수 있게 해주는 로컬, 프라이버시 우선 DNS 서버입니다. 수동적인 차단 목록과 달리 DNSnitch는 "Default Deny" 철학을 따릅니다. 즉, 실시간 터미널 대시보드에서 승인하기 전까지 모든 알 수 없는 도메인은 기본적으로 차단됩니다.
NXDOMAIN을 반환하고 "보류 대기열(Pending Queue)"에 표시됩니다.Apply할 때만 활성화됩니다.F-키를 사용하여 대시보드를 탐색합니다:
PgUp/PgDn으로 기록을 스크롤합니다.Left/Right 화살표로 열(Temp, Once, Perm, Blocked)을 강조하고, Up/Down으로 해당 열을 스크롤합니다.> 는 선택, * 는 스테이징된 변경 사항을 나타냅니다.DNSnitch는 키보드 기반으로 작동합니다. 아래는 콘솔 **[F1]**에서 사용 가능한 전체 명령 목록입니다.
작업을 적용하기 전에 대상을 선택해야 합니다. 보류 중인 요청은 ID로, 수동으로는 도메인 이름으로 선택할 수 있습니다.
| 명령 | 사용 예 | 설명 |
|---|---|---|
s | s | 현재 선택을 해제합니다. |
s <id> | s 1 3 5 | 대기열 ID(F3에서 확인 가능)로 보류 중인 도메인을 선택합니다. |
s <domain> | s google.com | 이름으로 특정 도메인을 선택합니다(대기열에 없어도 됨). 기존 규칙 편집에 유용합니다. 다중 선택을 지원합니다. |
q, ls | q | 대기열 탭 [F3]으로 전환합니다. |
clear | clear | 보류 대기열을 비웁니다(모든 보류 요청을 화면에서 제거). |
도메인이 선택되면 다음 단축키로 상태를 설정합니다.
| 명령 | 사용법 | 설명 |
|---|---|---|
p | p | 선택 항목을 영구 허용(Permanent Allow) 으로 표시합니다. |
t | t | 선택 항목을 임시 허용(Temporary) (5분)으로 표시합니다. |
o | o | 선택 항목을 일회 허용(Allow Once) (다음 요청만)으로 표시합니다. |
b | b | 선택 항목을 차단(Blocked) (블랙리스트)으로 표시합니다. |
rm, del | rm | 선택한 도메인의 규칙을 제거합니다(잊고 새로 시작). |
변경 사항은 적용하기 전까지 활성화되지 않습니다.
| 명령 | 사용법 | 설명 |
|---|---|---|
cc | cc | 구성 확인(Check Config): 스테이징된 변경 사항의 텍스트 요약을 출력합니다. |
d, ditch | d | 폐기(Discard): 작업 영역을 재설정하고 모든 스테이징된 변경 사항을 실행 취소합니다. |
a | a | 적용(Apply): 작업 영역을 실시간 방화벽 데이터베이스에 커밋합니다. |
방화벽이 전체적으로 동작하는 방식을 변경합니다.
| 명령 | 사용법 | 설명 |
|---|---|---|
m dft | m dft | 기본 모드(Default Mode): 알 수 없는 모든 것을 차단합니다(표준 보안). |
m rec | m rec | 기록 모드(Record Mode): 모든 것을 허용하고 고유 도메인을 [F6]에 기록합니다. |
m rbl | m rbl | 기록 + 차단 목록(Record + Blocklist): 알려진 차단 목록을 제외한 모든 것을 허용하고 고유 도메인을 기록합니다. |
crec | crec | 기록 지우기(Clear Records): [F6]의 기록된 도메인 목록을 삭제합니다. |
도메인을 사용자 정의 대상으로 매핑합니다(로컬 DNS 스푸핑).
| 명령 | 사용 예 | 설명 |
|---|---|---|
r | r dev.loc 127.0.0.1 | dev.loc을 로컬 IP로 리디렉션합니다(A 레코드). |
r | r my.net google.com | my.net을 google.com으로 리디렉션합니다(CNAME). |
ur | ur dev.loc | 리디렉션 해제(Unredirect): dev.loc에 대한 사용자 정의 규칙을 제거합니다. |
| 명령 | 사용법 | 설명 |
|---|---|---|
logs | logs | 로그 탭 [F4]으로 전환합니다. |
help | help | 사용 가능한 모든 명령을 나열합니다. |
exit | exit | DNS 서버를 종료합니다. |
example.com에 접속을 시도합니다. 실패합니다.1. example.com이 보입니다.s 1을 입력합니다. (행이 강조됩니다).p를 입력합니다. (행에 [PERM]이 표시됩니다).a를 입력합니다. (적용).google.com을 차단했습니다.s google.com을 입력합니다.rm(제거) 또는 p(영구 허용)를 입력하여 차단을 덮어씁니다.a를 입력합니다.mysite.local로 접속하려고 합니다.r mysite.local 127.0.0.1을 입력합니다.m rec을 입력합니다(모드: Record).m dft를 입력하여 보안 모드로 돌아갑니다.