freeradius/freeradius-devFreeRADIUS服务器项目是一款高性能、高可配置的多协议策略服务器,支持RADIUS、DHCPv4和VMPS协议。通过RADIUS协议可实现网络认证与授权的集中化管理,大幅减少添加或删除网络用户时的配置变更工作量。
FreeRADIUS可用于802.1x(WiFi)、拨号、PPPoE、***、VoIP等系统的用户认证,支持MySQL、PostgreSQL、Oracle、Microsoft Active Directory、Redis、OpenLDAP等后端数据库。它每天为数亿用户提供互联网访问认证服务,应用场景覆盖从10用户到1000万+用户的各类网络环境。
***:FreeRADIUS
默认镜像仅包含基础FreeRADIUS配置,无用户信息,仅接受127.0.0.1的测试客户端连接。生产环境使用前,必须至少添加客户端配置(clients.conf)和用户信息(mods-config/files/authorize),否则容器将拒绝响应任何请求。
启动默认容器:
console$ docker run --name my-radius -d freeradius/freeradius-server
创建基于官方镜像的自定义Dockerfile,复制本地配置文件:
DockerfileFROM freeradius/freeradius-server:latest COPY raddb/ /etc/raddb/
raddb目录建议包含以下关键文件结构:
clients.conf # 客户端定义 mods-config/ mods-config/files/ mods-config/files/authorize # 用户认证信息
客户端配置示例(clients.conf):
client dockernet { ipaddr = 172.17.0.0/16 # 允许访问的客户端IP段 secret = testing123 # 共享密钥 }
用户配置示例(mods-config/files/authorize):
bob Cleartext-Password := "test" # 用户名bob,密码test
构建本地镜像:
console$ docker build -t my-radius-image -f Dockerfile .
启动包含自定义配置的容器,需映射RADIUS服务端口(通常1812/udp用于认证,1813/udp用于记账):
consoledocker run --rm -d --name my-radius -p 1812-1813:1812-1813/udp my-radius-image
使用radtest工具发送测试认证请求(需先安装FreeRADIUS客户端工具包):
console$ radtest bob test 127.0.0.1 0 testing123
成功认证将返回"Access-Accept"响应。停止容器:
consoledocker stop my-radius
建议在部署前使用调试模式测试配置,添加-X选项启用详细日志输出。彩色日志需配合-t参数(分配伪终端):
console$ docker run --rm --name my-radius -t -p 1812-1813:1812-1813/udp freeradius/freeradius-server -X
调试输出解读指南参见FreeRADIUS Wiki。
raddb/certs/README.md默认Docker环境下使用gdb等调试工具可能因权限限制失败,需添加--privileged标志恢复Linux capabilities:
console$ docker run --privileged --rm --name my-radius-debug -t freeradius/freeradius-server -X
freeradius/freeradius-server:<version>默认生产级镜像,基于Ubuntu Linux构建,包含完整模块和依赖库,适用于大多数部署场景。
freeradius/freeradius-server:<version>-alpine轻量级镜像,基于Alpine Linux,体积显著小于Ubuntu版本。注意:为最小化镜像体积,此变体不包含所有模块的依赖库(尤其是Perl、Python等语言模块),如需使用这些功能,需在自定义Dockerfile中通过apk add安装相应依赖。
FreeRADIUS源码仓库包含多种Linux发行版的Dockerfile模板,位于freeradius-server/scripts/docker/<os_name>(将<os_name>替换为具体发行版名称)。
bash$ cd scripts/docker/<os_name> # 进入目标发行版的Dockerfile目录 $ docker build . -t freeradius-<os_name> # 构建镜像
构建过程会自动完成:基础镜像拉取、依赖安装、源码克隆和服务器编译。构建完成后可通过docker images查看结果:
bash$ docker images REPOSITORY TAG IMAGE ID CREATED SIZE freeradius-ubuntu16 latest 289b3c7aca94 4 minutes ago 218MB freeradius-alpine latest d7fb3041bea2 2 hours ago 88.6MB
Dockerfile支持通过--build-arg指定构建参数:
source:Git仓库URL(默认使用官方仓库)release:Git提交哈希或标签(指定构建版本)示例:从特定版本构建
console$ docker build . \ --build-arg=release=v3.0.x \ --build-arg=source=[***] \ -t freeradius-custom


manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务