🇮🇩 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 v1.0.2 telah diuji pada:
| Operating System | Status |
|---|---|
| Ubuntu 22.04 LTS | ✅ Supported |
| Ubuntu 24.04 LTS | ✅ Supported |
| Debian 12 | ✅ Supported |
Ubuntu 24.04 LTS telah divalidasi melalui fresh installation pada v1.0.2.
| 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 24.04 LTS / Ubuntu 22.04 LTS / Debian 12 |
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 |
- 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.envSmartDNS/
├── 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
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 v1.0.2 has been tested on:
| Operating System | Status |
|---|---|
| Ubuntu 22.04 LTS | ✅ Supported |
| Ubuntu 24.04 LTS | ✅ Supported |
| Debian 12 | ✅ Supported |
Ubuntu 24.04 LTS has been validated through a fresh installation on v1.0.2.
| 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 24.04 LTS / Ubuntu 22.04 LTS / Debian 12 |
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 |
- 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.envSmartDNS/
├── 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.
