如果你的目标是用新版(3.2.7)彻底替换旧版(3.0.26),而不是两个版本同时运行,那么直接关掉旧版,让新版接管,是最简单高效的办法。
这篇文章讲的是纯升级:旧版下线,新版接管标准端口。


为什么要关掉旧版?

  • 避免端口冲突:新版直接用标准端口 1812/1813,无需用其他临时端口。
  • 管理更简单:只保留一个 systemd 服务,避免混淆。
  • 配置更干净:没有冗余服务文件,没有多余进程。

四步完成 FreeRADIUS 版本替换

🧩 第 1 步:彻底停止并禁用旧版服务

确保旧版不会再运行,也不会开机自启:

1
2
3
4
5
# 停止旧版
sudo systemctl stop freeradius

# 禁用旧版
sudo systemctl disable freeradius

如果你的旧版服务名不是 freeradius,请替换成正确的名字。


⚙️ 第 2 步:恢复新版的标准端口(推荐)

如果你之前为了共存改过端口,现在可以改回:

1
sudo nano /usr/local/etc/raddb/radiusd.conf

找到:

1
port = 2812   # 这是我自己改的

改成:

1
port = 1812

同理,把:

1
port = 2813   # 这是我自己改的

改成:

1
port = 1813

保存退出。


🧱 第 3 步:创建唯一的 systemd 服务

删除旧的临时服务文件(如果有):

1
2
sudo rm /etc/systemd/system/freeradius-old.service
sudo rm /etc/systemd/system/freeradius-new.service

创建新版的服务文件:

1
sudo nano /etc/systemd/system/freeradius.service

写入:

1
2
3
4
5
6
7
8
9
10
11
[Unit]
Description=FreeRADIUS 3.2.7 Daemon
After=network-online.target

[Service]
Type=forking
User=root
ExecStart=/usr/local/sbin/radiusd -d /usr/local/etc/raddb # 这里是你自己的 3.2.7 目录

[Install]
WantedBy=multi-user.target

🚀 第 4 步:启动并设为开机自启

1
2
3
sudo systemctl daemon-reload
sudo systemctl start freeradius
sudo systemctl enable freeradius

检查状态:

1
sudo systemctl status freeradius

如果看到:

1
active (running) - FreeRADIUS 3.2.7 Daemon

就代表升级成功,新版已经接管系统。


升级完成后的状态

✅ 旧版完全停用
✅ 新版占用标准端口
✅ 管理指令统一(systemctl start/stop/status freeradius)
✅ 系统配置更干净


这样,FreeRADIUS 环境就是单一版本、标准化管理、无冲突的状态,后续维护会轻松很多。