如何将FreeRadius服务器连接超时时间调整至10秒以上?
解决FreeRADIUS对接SoftEther VPN时2FA认证超时的问题
我之前也碰到过一模一样的情况——SoftEther在10秒后就切断RADIUS认证连接,导致2FA还没完成就失败。折腾了好几天,终于找到几个关键的调整点,你可以逐一试试:
1. 调整FreeRADIUS全局请求超时时间
FreeRADIUS默认的max_request_time通常是10秒,这刚好是你碰到的超时阈值。修改这个参数:
- 打开FreeRADIUS的主配置文件
/etc/raddb/radiusd.conf(不同系统路径可能略有差异,比如/etc/freeradius/radiusd.conf) - 搜索
max_request_time,把默认值改成20秒以上,比如:
这个参数控制单个认证请求的最长存活时间,足够覆盖2FA的验证流程。max_request_time = 25
2. 调整客户端(SoftEther)的超时设置
除了全局设置,还要给SoftEther对应的客户端单独配置超时:
- 打开
/etc/raddb/clients.conf(或对应路径) - 找到你SoftEther VPN服务器的条目(通常是按IP地址匹配的),添加或修改
timeout参数:client softether-vpn { ipaddr = 192.168.x.x # 你的SoftEther服务器IP secret = your-shared-secret timeout = 15 # 单个请求的超时时间,建议设为全局时间的一半左右 }
3. 调整SoftEther VPN自身的RADIUS认证超时
这一步很容易被忽略!SoftEther自己也有认证超时限制,就算FreeRADIUS调大了,SoftEther提前切断连接也没用:
- 登录SoftEther VPN Server的管理界面(或用
vpncmd命令行工具) - 进入服务器设置,找到「RADIUS认证」相关选项
- 将「认证超时时间」调整为25秒以上(比如30秒),确保给FreeRADIUS足够的时间处理2FA验证
验证调整效果
修改完成后,先重启FreeRADIUS服务:
systemctl restart radiusd
然后重启SoftEther VPN服务,再测试2FA认证流程。也可以用radtest命令模拟长耗时的认证请求,验证超时是否生效:
radtest your-username your-password your-radius-server-ip 10 your-shared-secret -T 20
这里-T 20指定测试的超时时间为20秒,如果能正常完成认证,说明设置生效了。
内容的提问来源于stack exchange,提问作者p0nts




