
เอกสาร•
ภาษาอังกฤษ | 中文
smartdns-rs? เป็นเซิร์ฟเวอร์ DNS ในท้องถิ่นที่ Imspired โดย C SmartDNS เพื่อรับคำขอสอบถาม DNS จากลูกค้าในท้องถิ่นรับผลลัพธ์การสืบค้น DNS จากเซิร์ฟเวอร์ DNS หลายต้นและส่งคืนผลลัพธ์การเข้าถึงที่เร็วที่สุดไปยังไคลเอนต์ หลีกเลี่ยงมลพิษ DNS และปรับปรุงความเร็วในการเข้าถึงเครือข่ายรองรับการกรองโฆษณาประสิทธิภาพสูง
เซิร์ฟเวอร์ DNS อัพสตรีมหลายตัว
รองรับการกำหนดค่าเซิร์ฟเวอร์ DNS หลายตัวและการสืบค้นหลายต้นในเวลาเดียวกันการสืบค้นจะไม่ได้รับผลกระทบแม้ว่าจะมีข้อยกเว้นเซิร์ฟเวอร์ DNS ก็ตาม
ส่งคืนที่อยู่ IP ที่เร็วที่สุด
รองรับการค้นหาที่อยู่ IP การเข้าถึงที่เร็วที่สุดจากรายการที่อยู่ IP ของชื่อโดเมนและส่งคืนไปยังไคลเอนต์เพื่อหลีกเลี่ยงมลพิษ DNS และปรับปรุงความเร็วในการเข้าถึงเครือข่าย
รองรับโปรโตคอลการสืบค้นหลายรายการ
รองรับ UDP, TCP, DOT, DOQ, DOH, Queries และบริการ DOH3 และแบบสอบถามพอร์ตที่ไม่ใช่ 53 หลีกเลี่ยงมลพิษ DNS และปกป้องความเป็นส่วนตัวและสนับสนุนการค้นหา DNS ผ่าน Socks5, HTTP Proxy
ข้อมูลจำเพาะที่อยู่ IP ของโดเมน
รองรับการกำหนดค่าที่อยู่ IP ของโดเมนเฉพาะเพื่อให้ได้ผลของการกรองโฆษณาและหลีกเลี่ยงเว็บไซต์ที่เป็นอันตราย
การส่งต่อโดเมน DNS
รองรับการส่งต่อ DNS, iPset และ Nftables รองรับการตั้งค่าผลลัพธ์โดเมนเป็นชุด IPSET และ NFTSET เมื่อการตรวจสอบความเร็วล้มเหลว
การสนับสนุนหลายแพลตฟอร์ม Windows / MacOS / Linux
รองรับการติดตั้งเป็นบริการและเรียกใช้เมื่อเริ่มต้น
รองรับ IPv4, IPv6 Dual Stack
รองรับเครือข่าย IPv4, IPv6, Support Query A, AAAA Record, Dual-Stack IP Selection และตัวกรอง IPv6 AAAA
DNS64
รองรับการแปล DNS64
ประสิทธิภาพสูงการใช้ทรัพยากรต่ำ
โมเดล I/O แบบหลายเธรดที่ใช้ Tokio Caches Query ผลลัพธ์; รองรับชื่อโดเมนที่ใช้มากที่สุดหมดอายุการตรวจสอบล่วงหน้าการสืบค้น '0' มิลลิวินาทีโดยไม่กำจัดผลกระทบของการเข้ารหัส DOH และ DOT
หมายเหตุ: SmartDNS รุ่น C นั้นใช้งานได้ดีมาก แต่เนื่องจากรองรับ Linux เท่านั้นในขณะที่ MacOS และ Windows สามารถรองรับได้ผ่าน Docker หรือ WSL เท่านั้น ดังนั้นฉันต้องการพัฒนา SmartDNS เวอร์ชันสนิมที่รองรับการรวบรวมสภาพแวดล้อม Windows, MacOS, Linux และ Android Termux เพื่อเรียกใช้และเข้ากันได้กับการกำหนดค่า
มันยังอยู่ระหว่างการพัฒนาโปรดอย่าใช้ในสภาพแวดล้อมการผลิตยินดีต้อนรับเพื่อลองและให้ข้อเสนอแนะ
โปรดดูที่ Todo สำหรับการครอบคลุมฟังก์ชั่น
การสร้างทุกคืนสามารถพบได้ที่นี่
แม็กอส
หากคุณติดตั้ง Brew คุณสามารถใช้คำสั่งต่อไปนี้เพื่อติดตั้งโดยตรง
brew update
brew install smartdns หมายเหตุ: การฟังในพอร์ต 53 ต้องได้รับอนุญาตรูทดังนั้นจำเป็นต้องใช้ sudo
sudo smartdns service start สำหรับ brew ที่ติดตั้ง smartdns นั้นเหมือนกับ sudo brew services start smartdns
หากคุณไม่ได้ติดตั้ง brew เพียงดาวน์โหลดแพ็คเกจการบีบอัดโปรแกรมที่รวบรวมและติดตั้งดังนี้
Windows / Linux
ไปที่นี่เพื่อดาวน์โหลดแพ็คเกจและบีบอัดมัน
รับความช่วยเหลือ
./smartdns helpวิ่งเป็นเบื้องหน้าง่ายต่อการตรวจสอบสถานะการทำงาน
./smartdns run -c ./smartdns.conf -v-v เปิดใช้งานเพื่อพิมพ์บันทึกการดีบักเรียกใช้เป็นบริการพื้นหลังทำงานโดยอัตโนมัติเมื่อเริ่มต้น
รับความช่วยเหลือจากคำสั่งการจัดการบริการ
./smartdns service helpหมายเหตุ: ติดตั้งเป็นบริการระบบจำเป็นต้องมีการอนุญาตผู้ดูแลระบบ / รูท
การจัดการบริการเข้ากันได้กับทุกระบบโทร SC บน Windows; โทร launchctl หรือ brew บน macOS; Call Systemd หรือ OpenRc บน Linux
ต่อไปนี้เป็นตัวอย่างการกำหนดค่าที่ง่ายที่สุด
# 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สำหรับการรวบรวมข้ามขอแนะนำให้ใช้ Cross (ต้องใช้ Docker)
ซอฟต์แวร์นี้คงเป็นไปไม่ได้หากไม่มี:
ซอฟต์แวร์นี้มีรหัสจาก https://github.com/hickory-dns/hickory-dns ซึ่งได้รับใบอนุญาตภายใต้ทั้งสองอย่าง
และรหัสอื่น ๆ ได้รับอนุญาตภายใต้
หากคุณไม่ได้ระบุอย่างชัดเจนการบริจาคใด ๆ ที่ส่งโดยเจตนาเพื่อรวมไว้ในงานโดยคุณตามที่กำหนดไว้ในใบอนุญาต GPL-3.0 จะได้รับใบอนุญาตดังกล่าวข้างต้นโดยไม่มีข้อกำหนดหรือเงื่อนไขเพิ่มเติมใด ๆ