以前没有接触过freeradius这个软件,不知道这个软件是干什么的,能做什么(其实现在也不怎么清楚),朋友是搞宽带的,他的计费系统之前放在阿里云,现在要迁移到腾讯云,系统中安装了这个软件,在部署这个软件时,遇到了很多的问题,记录一下。
安装
安装很简单,如下一步一步操作即可。
$ wget -c ftp://ftp.freeradius.org/pub/freeradius/freeradius-server-2.2.10.tar.gz # 获取
$ tar zxf freeradius-server-2.2.10.tar.gz # 解压
$ cd freeradius-server-2.2.10
$ ./configure # 配置
$ make && make install # 编译并安装
配置并启动
我的方法简单粗暴,直接拷贝原阿里云下的配置文件
$ scp -r root@121.*.*.*:/LSM/etc/raddb/ /usr/local/etc/
$ /usr/local/sbin/radiusd -d /usr/local/etc/raddb
相关命令
$ netstat -lanp | grep 1812 #查看指定端口
$ ps aux | grep radius # 查看指定进程
$ echo $? # 查看上一步执行的结果
问题:
- 报错:"Error: Failed binding to /var/run/radiusd/radiusd.sock: No such file or directory"
解决:这个问题是因为 "/var/run/" 路径下没有radiusd这个目录,创建一个即可解决 - 报错:
"Error: Could not link driver rlm_sql_mysql: rlm_sql_mysql.so: cannot open shared object file: No such file or directory
Error: Make sure it (and all its dependent libraries!) are in the search path of your system's ld.
Error: /usr/local/etc/raddb/sql.conf[1]: Instantiation failed for module "sql"
Error: /usr/local/etc/raddb/sites-enabled/default[177]: Failed to find "sql" in the "modules" section.
Error: /usr/local/etc/raddb/sites-enabled/default[69]: Errors parsing authorize section.
Error: Failed to load virtual server <default>"
解决:这个问题是MySQL驱动问题,可以先安装驱动,具体如下:
$ yum install -y mysql-devel /freeradius-server-2.2.10/src/modules/rlm_sql/drivers/rlm_sql_mysql
$ cd ./src/modules/rlm_sql/drivers/rlm_sql_mysql # 在源码包下
$ ./configure --with-mysql-dir=/usr/share/mysql/ --with-mysql-lib-dir=/usr/lib/mysql/ # 配置
$ make && make install # 编译安装,此时驱动被安装到`/usr/local/lib`
$ cp -a /usr/local/lib/rlm_sql_mysql* /usr/lib # 须把这些驱动copy到/usr/lib目录