
Docs •
Bahasa Inggris | 中文
SmartDns-rs? adalah server DNS lokal yang dipenuhi oleh C SmartDNS untuk menerima permintaan permintaan DNS dari klien lokal, memperoleh hasil kueri DNS dari beberapa server DNS hulu, dan mengembalikan hasil akses tercepat ke klien. Menghindari polusi DNS dan meningkatkan kecepatan akses jaringan, mendukung penyaringan iklan berkinerja tinggi.
Beberapa server DNS hulu
Mendukung mengkonfigurasi beberapa server dan permintaan DNS hulu pada saat yang sama. Kueri tidak akan terpengaruh, bahkan jika ada pengecualian server DNS.
Kembalikan alamat IP tercepat
Dukungan Menemukan Alamat IP Akses Tercepat dari Daftar Alamat IP Nama Domain dan Mengembalikannya ke Klien untuk Menghindari Polusi DNS dan Meningkatkan Kecepatan Akses Jaringan.
Dukungan untuk beberapa protokol kueri
Mendukung UDP, TCP, DOT, DOQ, DOH, kueri dan layanan DOH3, dan kueri port non-53, secara efektif menghindari polusi DNS dan melindungi privasi, dan mendukung permintaan DNS atas Socks5, HTTP Proxy.
Spesifikasi Alamat IP Domain
Mendukung Mengkonfigurasi Alamat IP Domain Spesifik untuk mencapai efek pemfilteran iklan, dan menghindari situs web jahat.
Penerusan domain DNS
Mendukung DNS Forwarding, Ipset dan NFTables. Pengaturan Dukungan Hasil domain ke IPSET dan NFTSET SET saat pemeriksaan kecepatan gagal.
Dukungan Multi-Platform Windows / MacOS / Linux
Mendukung pemasangan sebagai layanan dan menjalankannya saat startup.
Dukung IPv4, IPv6 Dual Stack
Mendukung IPv4, Jaringan IPv6, Kueri Dukungan A, Catatan AAAA, Pemilihan IP Dual-Stack, dan Filter Catatan AAAA IPv6.
DNS64
Mendukung terjemahan DNS64.
Kinerja tinggi, konsumsi sumber daya rendah
Model I/O Asynchronous Multi-Threaded Tokio; Hasil kueri cache; Mendukung nama domain yang paling banyak digunakan kedaluwarsa, kueri '0' milidetik, tanpa menghilangkan dampak enkripsi DOH dan dot.
Catatan: Versi C SmartDNS sangat fungsional, tetapi karena hanya mendukung Linux , sementara macOS dan Windows hanya dapat didukung melalui Docker atau WSL. Oleh karena itu, saya ingin mengembangkan versi karat dari SmartDN yang mendukung kompilasi untuk Windows, MacOS, Linux, dan lingkungan Termux Android untuk dijalankan, dan kompatibel dengan konfigurasinya.
Masih sedang dikembangkan, jangan gunakan itu di lingkungan produksi, selamat datang untuk mencoba dan memberikan umpan balik.
Silakan merujuk ke Todo untuk cakupan fungsi
Bangunan malam dapat ditemukan di sini.
MacOS
Jika Anda telah menginstal minuman, Anda dapat langsung menggunakan perintah berikut untuk menginstal.
brew update
brew install smartdns Catatan: Mendengarkan di port 53 memerlukan izin root, jadi sudo diperlukan.
Perintah sudo smartdns service start untuk brew yang diinstal smartdns sama dengan sudo brew services start smartdns .
Jika Anda tidak menginstal brew , cukup unduh paket kompresi program yang dikompilasi dan instal seperti di bawah ini.
Windows / Linux
Pergi ke sini untuk mengunduh paket dan mendekompresnya.
Dapatkan bantuan
./smartdns helpJalankan sebagai latar depan, mudah untuk memeriksa status berjalan
./smartdns run -c ./smartdns.conf -v-v diaktifkan untuk mencetak log debug.Jalankan sebagai layanan latar belakang, jalankan secara otomatis saat startup
Dapatkan bantuan perintah manajemen layanan.
./smartdns service helpCatatan: Diinstal sebagai Layanan Sistem, Izin Administrator / Root diperlukan.
Manajemen layanan kompatibel dengan semua sistem, hubungi SC di Windows; hubungi launchctl atau brew di macOS; Systemd Call atau OpenRc di Linux.
Berikut ini adalah konfigurasi contoh paling sederhana
# 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
Untuk konfigurasi yang lebih canggih, silakan merujuk di sini, dan lihat TODO untuk cakupan fungsi.
Dengan asumsi Anda telah menginstal karat, maka Anda dapat membuka terminal dan menjalankan perintah ini:
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.confUntuk kompilasi silang, disarankan untuk menggunakan silang (membutuhkan Docker).
Perangkat lunak ini tidak akan mungkin tanpa:
Perangkat lunak ini berisi kode dari https://github.com/hickory-dns/hickory-dns, yang dilisensikan di bawah keduanya
Dan kode lain dilisensikan di bawah
Kecuali jika Anda secara eksplisit menyatakan sebaliknya, setiap kontribusi yang secara sengaja diserahkan untuk dimasukkan dalam pekerjaan oleh Anda, sebagaimana didefinisikan dalam lisensi GPL-3.0, harus dilisensikan seperti di atas, tanpa syarat atau ketentuan tambahan apa pun.