freeradius/freeradius-serverFreeRADIUS是一个高性能、高可配置的多协议策略服务器,支持RADIUS、DHCPv4和VMPS协议。通过RADIUS协议,可实现网络认证与授权的集中化管理,减少添加或删除网络用户时的配置变更工作量。
FreeRADIUS广泛应用于大规模网络环境,支持每日为数亿用户提供互联网访问认证服务,适用场景从10用户的小型网络到1000万+用户的大型部署。
默认镜像仅包含基础配置(无用户、仅允许127.0.0.1客户端访问),需自定义配置后才能实际使用:
bashdocker run --name my-radius -d freeradius/freeradius-server
注意:默认配置下容器不会响应任何请求,必须自定义配置后才能用于生产环境。
需创建包含客户端和用户信息的配置文件,典型目录结构如下:
raddb/ ├── clients.conf # 客户端配置 └── mods-config/ └── files/ └── authorize # 用户认证信息
clients.conf(定义允许访问的客户端):
client dockernet { ipaddr = 172.17.0.0/16 # 允许访问的IP段 secret = testing123 # 共享密钥 }
authorize(定义测试用户):
bob Cleartext-Password := "test" # 用户名bob,密码test
创建Dockerfile整合配置:
DockerfileFROM freeradius/freeradius-server:latest COPY raddb/ /etc/raddb/ # 将本地配置复制到容器
构建镜像:
bashdocker build -t my-radius-image -f Dockerfile .
启动容器并映射RADIUS默认端口(1812/udp认证,1813/udp记账):
bashdocker run --rm -d --name my-radius -p 1812-1813:1812-1813/udp my-radius-image
使用radtest工具测试(需安装FreeRADIUS客户端工具):
bashradtest bob test 127.0.0.1 0 testing123
成功时返回"Access-Accept"。停止容器:
bashdocker stop my-radius
使用-X参数启动调试模式(需添加-t参数支持彩色输出):
bashdocker run --rm --name my-radius -t -p 1812-1813:1812-1813/udp freeradius/freeradius-server -X
调试输出解读指南参考FreeRADIUS Wiki。
/etc/raddb/certs/README.md)。使用gdb调试容器内进程时,需添加--privileged参数以获取必要权限:
bashdocker run --privileged --rm --name my-radius -t freeradius/freeradius-server -X
freeradius/freeradius-server:<version>默认镜像,基于Ubuntu Linux构建,包含完整依赖,推荐生产环境使用。
freeradius/freeradius-server:<version>-alpine基于Alpine Linux的轻量级镜像,体积更小,但不包含所有模块依赖(尤其是Perl、Python等语言相关库)。如需使用依赖这些库的模块,需在自定义Dockerfile中通过apk add安装相应依赖。
FreeRADIUS源码中包含多平台Dockerfile,路径:
freeradius-server/scripts/docker/<os_name>
bashcd scripts/docker/<os_name> # 如ubuntu、alpine等 docker build . -t freeradius-<os_name>
构建完成后可通过docker images查看镜像:
bashdocker 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支持以下构建参数:
source:源码仓库URL(默认:FreeRADIUS官方仓库)release:Git提交/tag(默认:最新稳定版)示例:构建指定版本和仓库的镜像
bashdocker build . \ --build-arg=release=v3.0.x \ --build-arg=source=[***] \ -t freeradius-<os_name>

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