Developed and maintained by MyNOC.ID
🇮🇩 Bahasa Indonesia | 🇬🇧 English
SmartDNS adalah platform DNS Resolver otomatis berperforma tinggi yang dirancang untuk lingkungan:
- ISP
- Enterprise
- VPS
- Self-Hosted
- Network Infrastructure
SmartDNS dibangun menggunakan Unbound sebagai recursive DNS resolver dan dnsdist sebagai DNS load balancer / frontend.
Installer secara otomatis mendeteksi hardware server, menghitung konfigurasi tuning yang sesuai, memasang recursive DNS resolver, mengaktifkan fitur keamanan dan blocklist, serta menyiapkan monitoring dan scheduler.
Mulai dari v1.0.0, SmartDNS juga memiliki sistem Telemetry dan Heartbeat untuk membantu monitoring instalasi dan versi software.
- One Command Installation
- Automatic Hardware Detection
- Smart CPU & RAM Tuning
- Recursive DNS Resolver menggunakan Unbound
- High Performance DNS Load Balancer menggunakan dnsdist
- DNSSEC Validation
- DNS Packet Cache
- IPv4 & IPv6 Support
- DNS Blocklist
- Domain Whitelist
- Domain Insecure Support
- DNSDist Web Management
- Automatic Blocklist Update
- Automatic Health Check
- Automatic Timezone Configuration
- Automatic Hostname Configuration
- Smart Scheduler menggunakan Cron
- Interactive Installation Wizard
- Automatic Heartbeat setiap 5 menit
- Built-in Telemetry
- Monitoring Dashboard
- Node Inventory
- Statistics Dashboard
SmartDNS kini dilengkapi Web UI untuk memantau dan mengelola layanan dari browser.
Fitur yang tersedia:
- System Overview — informasi server dan status layanan.
- Real-time Monitoring — CPU, RAM, swap, disk usage, disk I/O/wait, network RX/TX, dan PPS.
- Domain Blocklist Search — mencari domain pada blocklist.
- DNSDist Configuration — melihat dan mengelola konfigurasi DNSDist yang didukung UI.
- Unbound Configuration — melihat dan mengelola konfigurasi Unbound yang didukung UI.
- Blocklist Sources — melihat sumber blocklist.
- Active Services — memantau status service.
- Live Analytics dan Query Log — melihat aktivitas serta query DNS.
- DNS Resolution Test Suite — menjalankan pengujian resolusi DNS.
- Tools & Maintenance — akses ke tools pemeliharaan dan Patch Update SmartDNS.
- GitHub Shortcut — membuka repository SmartDNS.
Web UI tersedia di http://IP-SERVER:5000. Login menggunakan username admin dan password yang sama dengan DNSDist Web UI pada port 8083.
SmartDNS v1.0.3 telah diuji pada:
| Operating System | Status |
|---|---|
| Ubuntu 22.04 LTS | ✅ Supported |
| Ubuntu 24.04 LTS | ✅ Supported |
| Debian 12 | ✅ Supported |
| Component | Minimum |
|---|---|
| CPU | 2 Core |
| RAM | 2 GB |
| Storage | 10 GB SSD |
| Network | Public IPv4 |
| Root Access | Required |
| Component | Recommended |
|---|---|
| CPU | 4 Core or Higher |
| RAM | 4 GB or Higher |
| Storage | 20 GB SSD |
| Network | IPv4 + IPv6 |
| OS | Ubuntu 22.04 LTS |
Clone repository:
git clone https://github.com/ichandkusuma/SmartDNS.gitMasuk ke directory:
cd SmartDNSJalankan installer:
bash install.shInstaller akan melakukan:
- Detect operating system
- Detect CPU dan RAM
- Detect virtualization
- Detect network interface
- Detect Internet connectivity
- Calculate Smart Tuning
- Install required packages
- Configure Unbound
- Configure dnsdist
- Install DNS blocklist
- Configure scheduler
- Configure telemetry
- Validate configuration
- Restart services
- Run DNS health check
Pembaruan dan konfigurasi ulang:
cd SmartDNS
git pull
bash install.shJika diminta untuk melakukan pembaruan paksa, gunakan perintah berikut.
cd SmartDNS
git fetch origin
git reset --hard origin/main
bash install.shUntuk existing installation, update menggunakan:
cd SmartDNS
bash update.sh --patchExisting installation akan mempertahankan:
- UUID
- Telemetry Data
- Runtime Information
- Existing Configuration
- Scheduler
Installer secara otomatis mengatur:
- Hostname
- Timezone
- CPU Threads
- Cache Size
- DNSSEC
- IPv6
- Packet Cache
- DNSDist Web Password
- DNSDist API Key
- Recursive Port
- Frontend Port
- Spoof IPv4
- Spoof IPv6
- Resolver ACL
- UUID
- Heartbeat Registration
| Service | Port |
|---|---|
| DNS Resolver | 53 |
| Recursive Resolver | 5300 |
| DNSDist Web UI | 8083 |
| SmartDNS Management Web UI | 5000 |
- DNSSEC Validation
- Recursive Resolver
- DNS Cache
- IPv4 & IPv6 Support
- DNS Blocklist
- Domain Whitelist
- Domain Insecure
- DNSDist Web UI
SmartDNS menyediakan DNS blocklist yang dapat diperbarui secara otomatis.
Blocklist akan:
- Download source
- Validate downloaded content
- Extract domain
- Normalize domain
- Remove duplicate entries
- Generate CDB database
- Reload dnsdist
Blocklist dapat diperbarui secara manual menggunakan:
bash data/update-blocklist.shAutomatic update dijalankan menggunakan Cron Scheduler.
| Task | Schedule |
|---|---|
| Heartbeat | Every 5 Minutes |
| Blocklist Update | Daily |
Jadwal update dibuat otomatis oleh installer dan dapat disesuaikan dengan environment masing-masing.
Saat installation, SmartDNS secara otomatis menghasilkan:
- UUID
- DNSDist Secret Key
- DNSDist API Key
- DNSDist Web Password
- Optimized Cache Size
- Optimized Thread Count
- Resolver ACL
- Installation Metadata
SmartDNS mengirimkan heartbeat secara otomatis setiap 5 menit.
Informasi yang dikumpulkan meliputi:
- Version
- UUID
- Operating System
- CPU
- Memory
- DNSSEC Status
- IPv6 Status
- Query Log Status
- Smart Tuning
- First Seen
- Last Seen
SmartDNS tidak mengumpulkan:
- DNS Queries
- Customer Traffic
- Resolver Cache
- Personal Information
systemctl restart unbound
systemctl restart dnsdistsystemctl status unbound
systemctl status dnsdistdig @127.0.0.1 google.com
dig @::1 google.comdig @127.0.0.1 -p 5300 google.comunbound-checkconf
dnsdist --check-config/usr/local/bin/smartdns-heartbeatcat /var/lib/smartdns/install.jsoncat /var/lib/smartdns/install.envgrep -oP 'password="\K[^"]+' /etc/dnsdist/dnsdist.confSmartDNS/
├── cache/
├── data/
├── docs/
│ └── images/
│ ├── banner.png
│ └── social-preview.png
├── engine/
├── lib/
├── output/
├── scripts/
├── templates/
├── VERSION
├── install.sh
├── update.sh
└── README.md
Lihat CHANGELOG.md untuk riwayat versi dan catatan rilis.
MIT License
Dipersembahkan oleh MyNOC.ID
SmartDNS ditujukan untuk:
- Lingkungan pendidikan
- Lingkungan laboratorium
- Lingkungan perusahaan
- Lingkungan ISP
- Infrastruktur DNS yang dihosting sendiri
Selalu validasi konfigurasi di lingkungan Anda sendiri sebelum menerapkannya ke lingkungan produksi.
Made with ❤️ in Indonesia by MyNOC.ID
SmartDNS is a high-performance automated DNS Resolver platform designed for:
- ISP
- Enterprise
- VPS
- Self-Hosted
- Network Infrastructure
SmartDNS is built around Unbound as the recursive DNS resolver and dnsdist as the DNS load balancer / frontend.
The installer automatically detects server hardware, calculates optimized tuning parameters, deploys the recursive DNS resolver, configures security and blocklist features, and prepares monitoring and scheduler services.
Starting from v1.0.0, SmartDNS also includes built-in Telemetry and Heartbeat monitoring to help manage installations and software versions.
- One Command Installation
- Automatic Hardware Detection
- Smart CPU & RAM Tuning
- Recursive DNS Resolver using Unbound
- High Performance DNS Load Balancer using dnsdist
- DNSSEC Validation
- DNS Packet Cache
- IPv4 & IPv6 Support
- DNS Blocklist
- Domain Whitelist
- Domain Insecure Support
- DNSDist Web Management
- Automatic Blocklist Update
- Automatic Health Check
- Automatic Timezone Configuration
- Automatic Hostname Configuration
- Smart Scheduler using Cron
- Interactive Installation Wizard
- Automatic Heartbeat every 5 minutes
- Built-in Telemetry
- Monitoring Dashboard
- Node Inventory
- Statistics Dashboard
SmartDNS now includes a Web UI to monitor and manage services from a browser.
Available features:
- System Overview — server information and service status.
- Real-time Monitoring — CPU, RAM, swap, disk usage, disk I/O/wait, network RX/TX, and PPS.
- Domain Blocklist Search — search domains in the blocklist.
- DNSDist Configuration — view and manage configuration supported by the UI.
- Unbound Configuration — view and manage configuration supported by the UI.
- Blocklist Sources — view blocklist sources.
- Active Services — monitor service status.
- Live Analytics and Query Log — inspect DNS activity and queries.
- DNS Resolution Test Suite — run DNS resolution tests.
- Tools & Maintenance — access maintenance tools and SmartDNS Patch Update.
- GitHub Shortcut — open the SmartDNS repository.
The Web UI is available at http://SERVER-IP:5000. Log in with username admin and the same password used by the DNSDist Web UI on port 8083.
SmartDNS v1.0.3 has been tested on:
| Operating System | Status |
|---|---|
| Ubuntu 22.04 LTS | ✅ Supported |
| Ubuntu 24.04 LTS | ✅ Supported |
| Debian 12 | ✅ Supported |
| Component | Minimum |
|---|---|
| CPU | 2 Core |
| RAM | 2 GB |
| Storage | 10 GB SSD |
| Network | Public IPv4 |
| Root Access | Required |
| Component | Recommended |
|---|---|
| CPU | 4 Core or Higher |
| RAM | 4 GB or Higher |
| Storage | 20 GB SSD |
| Network | IPv4 + IPv6 |
| OS | Ubuntu 22.04 LTS |
Clone the repository:
git clone https://github.com/ichandkusuma/SmartDNS.gitEnter the directory:
cd SmartDNSRun the installer:
bash install.shThe installer will:
- Detect the operating system
- Detect CPU and RAM
- Detect virtualization
- Detect network interface
- Detect Internet connectivity
- Calculate Smart Tuning
- Install required packages
- Configure Unbound
- Configure dnsdist
- Install the DNS blocklist
- Configure scheduler
- Configure telemetry
- Validate configuration
- Restart services
- Run DNS health checks
Update and reconfiguration:
cd SmartDNS
git pull
bash install.shIf prompted to perform a forced update, use the following command:
cd SmartDNS
git fetch origin
git reset --hard origin/main
bash install.shFor existing installations, update using:
cd SmartDNS
bash update.sh --patchExisting installations will retain:
- UUID
- Telemetry Data
- Runtime Information
- Existing Configuration
- Scheduler
The installer automatically configures:
- Hostname
- Timezone
- CPU Threads
- Cache Size
- DNSSEC
- IPv6
- Packet Cache
- DNSDist Web Password
- DNSDist API Key
- Recursive Port
- Frontend Port
- Spoof IPv4
- Spoof IPv6
- Resolver ACL
- UUID
- Heartbeat Registration
| Service | Port |
|---|---|
| DNS Resolver | 53 |
| Recursive Resolver | 5300 |
| DNSDist Web UI | 8083 |
| SmartDNS Management Web UI | 5000 |
- DNSSEC Validation
- Recursive Resolver
- DNS Cache
- IPv4 & IPv6 Support
- DNS Blocklist
- Domain Whitelist
- Domain Insecure
- DNSDist Web UI
SmartDNS provides a DNS blocklist that can be updated automatically.
The blocklist update process:
- Download sources
- Validate downloaded content
- Extract domains
- Normalize domains
- Remove duplicate entries
- Generate the CDB database
- Reload dnsdist
The blocklist can also be updated manually:
bash data/update-blocklist.shAutomatic updates are scheduled using Cron.
| Task | Schedule |
|---|---|
| Heartbeat | Every 5 Minutes |
| Blocklist Update | Daily |
The scheduler is generated automatically during installation and can be customized for the target environment.
During installation, SmartDNS automatically generates:
- UUID
- DNSDist Secret Key
- DNSDist API Key
- DNSDist Web Password
- Optimized Cache Size
- Optimized Thread Count
- Resolver ACL
- Installation Metadata
SmartDNS automatically sends a heartbeat every 5 minutes.
Collected information includes:
- Version
- UUID
- Operating System
- CPU
- Memory
- DNSSEC Status
- IPv6 Status
- Query Log Status
- Smart Tuning
- First Seen
- Last Seen
SmartDNS does not collect:
- DNS Queries
- Customer Traffic
- Resolver Cache
- Personal Information
systemctl restart unbound
systemctl restart dnsdistsystemctl status unbound
systemctl status dnsdistdig @127.0.0.1 google.com
dig @::1 google.comdig @127.0.0.1 -p 5300 google.comunbound-checkconf
dnsdist --check-config/usr/local/bin/smartdns-heartbeatcat /var/lib/smartdns/install.jsoncat /var/lib/smartdns/install.envgrep -oP 'password="\K[^"]+' /etc/dnsdist/dnsdist.confSmartDNS/
├── cache/
├── data/
├── docs/
│ └── images/
│ ├── banner.png
│ └── social-preview.png
├── engine/
├── lib/
├── output/
├── scripts/
├── templates/
├── VERSION
├── install.sh
├── update.sh
└── README.md
See CHANGELOG.md for version history and release notes.
MIT License
Presented by MyNOC.ID
SmartDNS is intended for:
- Educational environments
- Laboratory environments
- Enterprise environments
- ISP environments
- Self-hosted DNS infrastructure
Always validate configurations in your own environment before deploying to production.
Made with ❤️ in Indonesia by MyNOC.ID