RADIUS accounting provides detailed session tracking for network access — recording when users connect, how long they stay, how much data they transfer, and when they disconnect. While RADIUS authentication verifies who can access the network, accounting tracks what they do once connected. This guide compares three open-source approaches to RADIUS accounting: FreeRADIUS radacct, Daloradius, and RadiusDesk.
What Is RADIUS Accounting?
RADIUS (Remote Authentication Dial-In User Service) accounting is a sub-protocol of RADIUS that records session data. When a user authenticates to a network access server (NAS), the NAS sends Accounting-Start packets to the RADIUS server. During the session, periodic Accounting-Interim-Update packets report usage metrics. When the user disconnects, an Accounting-Stop packet finalizes the record.
Accounting records include:
- Session duration — connect and disconnect timestamps
- Data usage — bytes sent and received (input/output octets)
- Connection details — NAS IP, calling/called station IDs, framed IP
- User identity — username, MAC address, VLAN assignment
- Termination cause — why the session ended (user request, timeout, admin reset)
Comparison: FreeRADIUS radacct vs Daloradius vs RadiusDesk
| Feature | FreeRADIUS radacct | Daloradius | RadiusDesk |
|---|---|---|---|
| Type | Built-in module | Web GUI + reporting | Full management platform |
| Backend | SQL (MySQL/PostgreSQL) | MySQL | MySQL |
| Web Interface | None (CLI only) | Yes (PHP) | Yes (CakePHP) |
| Real-time Monitoring | Via radclient | Yes | Yes |
| Reporting | SQL queries required | Built-in charts | Built-in dashboards |
| Billing Integration | Manual | Partial | Yes (payment gateway) |
| User Self-Service | No | Limited | Yes (user portal) |
| Hotspot/Captive Portal | Manual setup | Yes | Yes |
| Multi-tenant | Via SQL views | Yes | Yes |
| REST API | No | Limited | Yes |
| Docker Support | Official image | Community images | Manual setup |
| Stars / Activity | 2,300+ (FreeRADIUS) | 500+ (GitHub) | 100+ (GitHub) |
| Learning Curve | Low (if familiar with FreeRADIUS) | Medium | Medium-High |
Deploying FreeRADIUS with Accounting Module
FreeRADIUS includes built-in accounting support through the radacct SQL module. This is the most flexible but requires manual SQL queries for reporting.
Docker Compose Configuration
| |
FreeRADIUS Accounting Configuration
Enable the SQL accounting module in mods-enabled/sql:
| |
Querying Accounting Data
| |
Deploying Daloradius
Daloradius provides a web-based management interface on top of FreeRADIUS with MySQL, adding reporting charts and user management.
Docker Compose Configuration
| |
Daloradius Key Features
- Web dashboard — graphical overview of active sessions, NAS status, and user counts
- Reporting engine — pre-built reports for top users, session history, and bandwidth usage
- User management — create, modify, and delete RADIUS users through the web interface
- Batch user creation — upload CSV files to create multiple accounts at once
- Hotspot management — captive portal integration for guest Wi-Fi
Deploying RadiusDesk
RadiusDesk is the most feature-complete open-source RADIUS management platform, including a user self-service portal, payment gateway integration, and multi-tenant support.
Installation
RadiusDesk does not have official Docker images. The recommended deployment is on Ubuntu:
| |
RadiusDesk Key Features
- User self-service portal — users can view their own usage, change passwords, and purchase credits
- Payment gateway integration — supports Stripe, PayPal, and local payment methods
- Multi-tenant architecture — manage multiple organizations from a single installation
- Dynamic RADIUS profiles — assign bandwidth limits, session timeouts, and VLANs based on user plans
- Captive portal — built-in hotspot login page with customizable themes
- Real-time session monitoring — view active sessions, disconnect users, and send CoA (Change of Authorization) requests
Monitoring RADIUS Accounting
| |
Choosing the Right Accounting Solution
| Scenario | Recommendation |
|---|---|
| Simple accounting, CLI-only | FreeRADIUS radacct — direct SQL access, maximum flexibility |
| Web UI for basic reporting | Daloradius — easy setup, good for small-to-medium deployments |
| Full-featured ISP platform | RadiusDesk — billing, self-service, multi-tenant, captive portal |
| Custom reporting needs | FreeRADIUS radacct — write your own SQL queries and dashboards |
| Guest Wi-Fi with self-service | RadiusDesk — built-in user portal and payment integration |
Why Self-Host RADIUS Accounting?
Usage visibility is the primary reason to implement RADIUS accounting. Without it, you cannot answer basic operational questions: Who is consuming the most bandwidth? How long do sessions typically last? Which access points are under the heaviest load? Accounting data provides the foundation for capacity planning and troubleshooting.
Billing and monetization requires accurate usage records. Whether you operate a paid Wi-Fi hotspot, a residential ISP, or a corporate network with departmental chargebacks, RADIUS accounting provides the metered usage data that billing systems depend on. Self-hosting eliminates the per-record fees that commercial RADIUS accounting platforms charge.
Security auditing benefits from complete session logs. When investigating a security incident, RADIUS accounting records provide a timeline of who was connected, from where, and for how long. This is essential for compliance frameworks that require network access audit trails.
For broader AAA infrastructure, our FreeRADIUS AAA comparison covers authentication and authorization platforms. For RADIUS management interfaces, our RADIUS management guide covers web-based administration tools. For network access control, our NAC comparison covers enterprise access control platforms.
FAQ
What is the difference between RADIUS authentication and accounting?
RADIUS authentication verifies user credentials and grants or denies network access. RADIUS accounting tracks what happens after authentication — session start/stop times, data usage, and connection details. They use different UDP ports: 1812 for authentication, 1813 for accounting.
Can I use FreeRADIUS accounting without a web interface?
Yes. FreeRADIUS radacct writes directly to SQL tables. You can query the data with any SQL client, build custom dashboards with Grafana, or export reports with cron jobs and scripts. A web interface is optional.
How much disk space does RADIUS accounting data consume?
For a typical deployment with 1,000 users averaging 2 sessions per day, accounting data consumes roughly 50-100 MB per month. At scale (10,000+ users), you should implement data retention policies — archive old records to cold storage and purge the active table after 90-180 days.
Can Daloradius handle multiple NAS devices?
Yes. Daloradius supports multiple NAS entries in its database, each with its own shared secret. You can add NAS devices through the web interface and assign them to specific realms or groups.
Does RadiusDesk support CoA (Change of Authorization)?
Yes. RadiusDesk can send CoA requests to dynamically change user session parameters (bandwidth, VLAN) or disconnect active users without requiring them to re-authenticate.
How do I integrate RADIUS accounting with Grafana for dashboards?
Configure the MySQL data source in Grafana pointing to your FreeRADIUS database. Write SQL queries as Grafana panels: active sessions count, bandwidth over time, top users by data consumption, session duration histograms, and NAS health metrics. The radacct table schema is well-documented and Grafana SQL plugins handle the rendering.