How mamali63/hachi-smart-dns works
Hachi Smart DNS registers customer IPs, maintains a one-IP-per-customer whitelist, and uses DNS/SNI routing to steer selected game login and lobby traffic while leaving gameplay direct. The main workflow runs from customer code entry in the Android app through registration and whitelist generation to DNS routing; administrators manage users, domains, blocklists, and settings through the web panel or server-side CLI, with an hourly expiry sweep. Edges for unsampled panel and DNS behavior rely on README statements; no unsampled implementation was inspected.
Main entry points: admin_panel.py Web Admin Panel · dns_admin.py Admin CLI · hachi-dns.conf Unbound DNS · server IP Whitelist
Components 18
Customer App
- Android Shell
client/src/main/java/ir/hachitech/dns/MainActivity.java - Code Entry UI
client/src/main/assets/www/index.html
Registration Services
- Registration API
server/reg_server.py - Customer Records
server - IP Whitelist
server - Expiry Sweep
server/dns_expire.py
Administration
- Web Admin Panel
server/admin_panel.py - Admin CLI
server/dns_admin.py - Game Domains
server/domains.json - Default Domains
server/domains.default.json - Blocked Domains
server/blocked.json - DNS Settings
server
DNS Routing
- Unbound DNS
config-samples/hachi-dns.conf - SNI Rules
config-samples/hachi-sni.conf - Sniproxy
config-samples/sniproxy.conf
Other components
- Customer
- Administrator
- Game Services
Connections 22
- Customer → Android Shell: opens app
README.md - Android Shell → Code Entry UI: loads UI
client/src/main/java/ir/hachitech/dns/MainActivity.java - Code Entry UI → Registration API: registers code
README.md - Registration API → Customer Records: reads and updates
server/reg_server.py - Registration API → IP Whitelist: rebuilds
server/reg_server.py - Expiry Sweep → Customer Records: reads
server/dns_expire.py - Expiry Sweep → IP Whitelist: rebuilds
server/dns_expire.py - Administrator → Web Admin Panel: manages users
README.md - Administrator → Admin CLI: runs commands
README.md - Web Admin Panel → Game Domains: manages
README.md - Web Admin Panel → Default Domains: resets from
README.md - Web Admin Panel → Blocked Domains: manages
README.md - Web Admin Panel → IP Whitelist: manages
README.md - Web Admin Panel → DNS Settings: views and changes
README.md - Web Admin Panel → Unbound DNS: rebuilds rules
README.md - Web Admin Panel → Sniproxy: reloads service
README.md - Admin CLI → Customer Records: creates and updates
server/dns_admin.py - Admin CLI → IP Whitelist: rebuilds
server/dns_admin.py - Admin CLI → DNS Settings: sets
server/dns_admin.py - Unbound DNS → SNI Rules: uses rules
README.md - Unbound DNS → Game Services: routes selected domains
README.md - Unbound DNS → Sniproxy: forwards SNI traffic
README.md