
문서 •
영어 | 中文
smartdns-rs? C SMARTDNS가 현지 클라이언트로부터 DNS 쿼리 요청을 수락하고 여러 업스트림 DNS 서버에서 DNS 쿼리 결과를 얻고 클라이언트에 가장 빠른 액세스 결과를 반환합니다. DNS 오염을 피하고 네트워크 액세스 속도 향상은 고성능 광고 필터링을 지원합니다.
다중 업스트림 DNS 서버
DNS 서버 예외가 있더라도 여러 업스트림 DNS 서버 및 쿼리 구성을 지원합니다.
가장 빠른 IP 주소를 반환하십시오
도메인 이름의 IP 주소 목록에서 가장 빠른 액세스 IP 주소를 찾고 DNS 오염을 피하고 네트워크 액세스 속도를 향상시키기 위해 클라이언트로 반환합니다.
여러 쿼리 프로토콜을 지원합니다
UDP, TCP, DOT, DOQ, DOH, DOH3 쿼리 및 서비스 및 비 53 포트 쿼리를 지원하여 DNS 오염을 효과적으로 피하고 개인 정보 보호를 보호하고 HTTP 프록시를 통해 쿼리 DNS를 지원합니다.
도메인 IP 주소 사양
광고 필터링의 효과를 달성하고 악의적 인 웹 사이트를 피하기 위해 특정 도메인의 IP 주소 구성을 지원합니다.
DNS 도메인 전달
DNS 전달, IPSET 및 NFTABLE를 지원합니다. 지원 도메인 결과를 IPSET 및 NFTSET 설정 속도 검사에 실패하면 설정을 설정합니다.
Windows / MacOS / Linux 멀티 플랫폼 지원
서비스로 설치하고 시작시 실행을 지원합니다.
IPv4, IPv6 듀얼 스택을 지원합니다
IPv4, IPv6 네트워크, 지원 쿼리 A, AAAA 레코드, 듀얼 스택 IP 선택 및 필터 IPv6 AAAA 레코드를 지원합니다.
DNS64
DNS64 번역을 지원합니다.
고성능, 낮은 자원 소비
Tokio 기반 다중 스레드 비동기 I/O 모델; 쿼리 결과를 캐시합니다. DOH 및 DOT 암호화의 영향을 제거하지 않고 가장 많이 사용되는 도메인 이름 만료 프리 페치, 쿼리 '0' 밀리 초.
참고 : SmartDNS의 C 버전은 매우 기능적이지만 Linux 만 지원하기 때문에 MacOS와 Windows는 Docker 또는 WSL을 통해서만 지원할 수 있습니다. 따라서 Windows, MacOS, Linux 및 Android Termux 환경에 대한 컴파일을 지원하는 SmartDNS의 Rust 버전을 개발하고 있으며 구성과 호환됩니다.
아직 개발 중이며 프로덕션 환경에서 사용하지 말고 피드백을 제공하고 피드백을 제공 할 수 있습니다.
함수 커버리지는 TODO를 참조하십시오
야간 빌드는 여기에서 찾을 수 있습니다.
마코스
Brew를 설치 한 경우 다음 명령을 직접 사용하여 설치할 수 있습니다.
brew update
brew install smartdns 참고 : 포트 53에서 청취하려면 루트 권한이 필요하므로 sudo 필요합니다.
brew 설치 smartdns 에 대한 sudo smartdns service start 명령은 sudo brew services start smartdns 와 동일합니다.
brew 설치되어 있지 않은 경우 컴파일 된 프로그램 압축 패키지를 다운로드하여 아래처럼 설치하십시오.
Windows / Linux
여기로 이동하여 패키지를 다운로드하고 압축 해제하십시오.
도움을 받으십시오
./smartdns help전경으로 실행되며 실행 상태를 쉽게 확인하십시오
./smartdns run -c ./smartdns.conf -v-v 디버그 로그를 인쇄 할 수 있습니다.배경 서비스로 실행하고 시작시 자동으로 실행하십시오
서비스 관리 명령의 도움을 받으십시오.
./smartdns service help참고 : 시스템 서비스로 설치되면 관리자 / 루트 권한이 필요합니다.
서비스 관리는 모든 시스템과 호환되며 Windows에서 SC를 호출하십시오. MacOS에서 launchctl 또는 brew 호출하십시오. Linux에서 Systemd 또는 OpenRc 호출하십시오.
다음은 가장 간단한 예제 구성입니다
# Listen on local port 53
bind 127.0.0.1:53
# Configure bootstrap-dns, if not configured, call the system_conf,
# it is recommended to configure, so that it will be encrypted.
server https://1.1.1.1/dns-query -bootstrap-dns -exclude-default-group
server https://8.8.8.8/dns-query -bootstrap-dns -exclude-default-group
# Configure default upstream server
server https://cloudflare-dns.com/dns-query
server https://dns.quad9.net/dns-query
server https://dns.google/dns-query
# Configure the Office(Home) upstream server
server 192.168.1.1 -exclude-default-group -group office
# Domain names ending with ofc are forwarded to the office group for resolution
nameserver /ofc/office
# Set static IP for domain name
address /test.example.com/1.2.3.5
# Block Domains (Ad Blocking)
address /ads.example.com/#
# The following features are not yet supported in the [C SmartDNS](https://github.com/pymumu/smartdns) and are only applicable to SmartDNS-rs.
# Configure DoH3
server-h3 1.1.1.1
# Configure DoQ
server-quic unfiltered.adguard-dns.com
보다 고급 구성은 여기를 참조하고 기능 범위에 대해서는 TODO를 참조하십시오.
Rust를 설치했다고 가정하면 터미널을 열고이 명령을 실행할 수 있습니다.
git clone https://github.com/mokeyish/smartdns-rs.git
cd smartdns-rs
# install https://github.com/casey/just
cargo install just
# build
just build --release
# print help
./target/release/smartdns --help
# run
sudo ./target/release/smartdns run -c ./etc/smartdns/smartdns.conf교차 컴파일의 경우 크로스를 사용하는 것이 좋습니다 (Docker 필요).
이 소프트웨어는 다음 없이는 불가능했을 것입니다.
이 소프트웨어에는 https://github.com/hickory-dns/hickory-dns의 코드가 포함되어 있으며,이 소프트로어는 중 하나에 따라 라이센스가 부여됩니다.
다른 코드는 라이센스가 부여됩니다
귀하가 명시 적으로 명시 적으로 명시하지 않는 한, GPL-3.0 라이센스에 정의 된대로 귀하의 작업에 포함시키기 위해 의도적으로 제출 된 기부금은 추가 약관이나 조건없이 위와 같이 라이센스가 부여됩니다.