Welcome to the TOUGHRADIUS project!
_____ _____ _ _ _____ _ _ _____ ___ _____ _ _ _ _____ |_ _| / _ \ | | | | / ___| | | | | | _ \ / | | _ \ | | | | | | / ___/ | | | | | | | | | | | | | |_| | | |_| | / /| | | | | | | | | | | | | |___ | | | | | | | | | | | | _ | _ | | _ / / / | | | | | | | | | | | | \___ \ | | | |_| | | |_| | | |_| | | | | | | | \ \ / / | | | |_| | | | | |_| | ___| | |_| \_____/ \_____/ \_____/ |_| |_| |_| \_\ /_/ |_| |_____/ |_| \_____/ /_____/ A powerful, open-source RADIUS server designed for ISPs, enterprise networks, and carriers. Supports standard RADIUS protocols, RadSec (RADIUS over TLS), and a modern Web management interface.
- π Standard RADIUS - Full support for RFC 2865/2866 authentication and accounting protocols
- π RadSec - TLS encrypted RADIUS over TCP (RFC 6614)
- π Multi-Vendor Support - Compatible with major network devices like Cisco, Mikrotik, Huawei, etc.
- β‘ High Performance - Built with Go, supporting high concurrency processing
- π React Admin Interface - Modern Web management dashboard
- π₯ User Management - Complete user account and profile management
- π Real-time Monitoring - Online session monitoring and accounting record queries
- π Log Auditing - Detailed authentication and accounting logs
- Multi-Database Support - PostgreSQL, SQLite
- π Flexible Extension - Supports custom authentication and accounting logic
- π‘ Multi-Vendor VSA - Huawei, Mikrotik, Cisco, H3C, etc.
- Go 1.24+ (for building from source)
- PostgreSQL or SQLite
- Node.js 18+ (for frontend development)
# Clone repository git clone https://github.com/talkincode/toughradius.git cd toughradius # Build frontend cd web npm install npm run build cd .. # Build backend go build -o toughradius main.goDownload the latest version from the Releases page.
- Copy the configuration template:
cp toughradius.yml toughradius.prod.yml- Edit
toughradius.prod.ymlconfiguration file:
system: appid: ToughRADIUS location: Asia/Shanghai workdir: ./rundata database: type: sqlite # or postgres name: toughradius.db # PostgreSQL configuration # host: localhost # port: 5432 # user: toughradius # passwd: your_password radiusd: enabled: true host: 0.0.0.0 auth_port: 1812 # RADIUS authentication port acct_port: 1813 # RADIUS accounting port radsec_port: 2083 # RadSec port web: host: 0.0.0.0 port: 1816 # Web management interface portYou can fine-tune authentication behavior via system configuration (sys_config):
radius.EapMethod: Preferred EAP method (defaulteap-md5).radius.EapEnabledHandlers: List of allowed EAP handlers, separated by commas, e.g.,eap-md5,eap-mschapv2. Use*to enable all registered handlers.
This allows you to quickly disable unauthorized EAP methods without interrupting the service.
# Initialize database ./toughradius -initdb -c toughradius.prod.yml # Start service ./toughradius -c toughradius.prod.ymlAccess Web Management Interface: http://localhost:1816
Default Admin Account:
- Username: admin
- Password: Please check the initialization log output
- Architecture - v9 version architecture design
- React Admin Refactor - Frontend management interface explanation
- SQLite Support - SQLite database configuration
- Environment Variables - Environment variable configuration guide
toughradius/ βββ cmd/ # Application entry points βββ internal/ # Private application code β βββ adminapi/ # Admin API (New version) β βββ radiusd/ # RADIUS service core β βββ domain/ # Data models β βββ webserver/ # Web server βββ pkg/ # Public libraries βββ web/ # React Admin frontend βββ docs/ # Documentation # Run tests go test ./... # Run benchmark tests go test -bench=. ./internal/radiusd/ # Start development mode go run main.go -c toughradius.ymlcd web npm install npm run dev # Development server npm run build # Production build npm run lint # Code lintingWe welcome contributions in various forms, including but not limited to:
- π Submitting Bug reports and feature requests
- π Improving documentation
- π» Submitting code patches and new features
- π Helping with translation
This project is licensed under the MIT License.
The RADIUS dictionary files in the share/ directory are derived from the FreeRADIUS project and are licensed under the Creative Commons Attribution 4.0 International License (CC BY 4.0).
Thanks to JetBrains for supporting this project!