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!