/phantomd

A lightweight, modular DNS proxy with filtering and secure upstream support.

Primary LanguagePython

phantomd

A lightweight, modular DNS proxy with filtering and secure upstream support.

✨ Features

  • Supports multiple DNS protocols:
    • UDP
    • TCP
    • DNS-over-HTTPS (DoH)
    • DNS-over-TLS (DoT)
    • DNS-over-QUIC (DoQ, currently experimental)
  • Configurable via plain .conf files (no heavy configs).
  • Filtering system:
    • Blocklists
  • Minimal dependencies β€” runs on low-resource servers (tested on an Intel Core Duo with 3 GB RAM)

πŸ’‘ Installation

  • Run the installer file of the version you want to install. The installer is interactive and will guide you through the installation process.

πŸ”’ Security Notes

  • By default, phantomd only forwards DNS traffic.
  • You can integrate it with hostapd by enabling the DHCP server in the config, allowing Phantomd to act as a network-level DNS filter. (recommended)

πŸ› οΈ Development

  • Python 3.10+ recommended.
  • Built with asyncio for concurrency.

πŸ—ΊοΈ Roadmap

  • Full DoQ support
  • Config reloading without restart
  • Optional web dashboard
  • Preventing DNS leaking at network level

🀝 Contributing

Pull requests are welcome! For major changes, open an issue first to discuss what you would like to change.

πŸ“œ License

MIT License β€” free to use, modify, and share.