For the complete documentation index, see llms.txt. This page is also available as Markdown.

快速开始

English version: Quick Start

本章带你从零搭建一个可用的 RADIUS 服务器并创建一个测试用户,然后介绍如何调试 服务器行为。默认端口:管理界面 1816、RADIUS 认证 UDP 1812、计费 UDP 1813、RadSec TCP 2083

1. 安装

三种方式任选其一。

方式 A —— 预编译二进制

GitHub Releases 页面下载对应平台的二进制(toughradius_linux_amd64toughradius_linux_arm64toughradius_darwin_arm64toughradius_windows_amd64.exe 等),然后:

chmod +x toughradius_linux_amd64
sudo mv toughradius_linux_amd64 /usr/local/bin/toughradius

方式 B —— Docker

docker pull talkincode/toughradius:latest

docker run -d --name toughradius \
  -p 1816:1816 -p 1812:1812/udp -p 1813:1813/udp -p 2083:2083 \
  -v toughradius-data:/var/toughradius \
  talkincode/toughradius:latest -c /etc/toughradius.yml

镜像暴露 1816/tcp1812/udp1813/udp2083/tcp。请将卷挂载到 /var/toughradius(默认工作目录),使 SQLite 数据库、日志与证书在容器重启后 得以保留。

方式 C —— 源码构建

需要 Go 1.25+ 与 Node.js 20+(React Admin 前端会被嵌入二进制):

仅后端开发(SQLite 默认配置):

2. 配置

ToughRADIUS 按以下顺序查找配置:-c <文件> 参数、./toughradius.yml/etc/toughradius.yml、内置默认值。环境变量优先于配置文件 (见运维指南)。

一份精简的生产风格配置:

务必修改 web.secret,它用于签发管理端登录令牌。首次登录后请立即修改 默认管理员密码。

3. 初始化数据库并启动

-initdb 是破坏性操作;后续升级直接启动即可——结构迁移在启动时自动完成。 其他参数:-v 打印版本,-printcfg 以 JSON 打印合并后的配置。

4. 登录管理界面

打开 http://<服务器>:1816。默认管理员:

  • 用户名:admin

  • 密码:toughradius

请立即在 账户设置 中修改密码;忘记密码可用 cmd/reset-password 重置 (见常见问题)。

5. 登记 NAS 并创建用户

  1. 网络节点 → 新建 —— 创建一个节点(逻辑分组),如 default

  2. NAS 设备 → 新建 —— 登记你的网络设备:

    • IP 地址:设备发出 RADIUS 报文的源地址。

    • 密钥:共享密钥,如 testing123

    • 厂商代码:选择设备厂商(标准 / Cisco / 华为 / MikroTik / H3C / 中兴 / 爱快)——它决定下发哪些厂商私有属性,见厂商对接指南

    • CoA 端口:除非设备使用其他端口,保持 3799

  3. 计费策略 → 新建 —— 例如 100M:并发数 1、上行 51200 Kbps、 下行 102400 Kbps。

  4. RADIUS 用户 → 新建 —— 用户名 test1、密码 111111,选择策略并设置 过期时间。

6. 用 radtest 验证

仓库自带一个小型 RADIUS 客户端(示例即默认值):

成功时会打印 Access-Accept 及返回的属性。flow 模式的会话会出现在 在线会话 中,仪表盘计数随之增长。

7. 调试

需求
方法

完整 RADIUS 报文转储

YAML 中 radiusd.debug: true(或环境变量 TOUGHRADIUS_RADIUS_DEBUG=true),也可在运行时将 系统配置 → RADIUS → 日志级别 设为 debug

日志文件位置

logger.filename,默认 {workdir}/toughradius.loglogger.mode: development 输出适合人读的控制台格式

用户为何被拒绝

拒绝原因按类别计数(密码错误、已过期、MAC 绑定不符等)并显示在仪表盘;细节见日志

查看生效配置

toughradius -printcfg -c <文件>

压力测试

go run ./cmd/benchmark —— 见运维指南

下一步

Last updated