> ## Content Index
> Fetch the complete content index at: https://blog.k3s.9zf.net/llms.txt
> Use this file to discover other available public pages before exploring further.

# WHMCS+Freeradius+VPN
- URL: https://blog.k3s.9zf.net/whmcsfreeradiusvpn/
- Published: 2013-01-03T15:01:49.000Z
- Updated: 2013-01-03T15:01:49.000Z
- Author: liu
- Tags: Linux, #wordpress, #Import 2026-10-29 06:11

[freeradius](https://blog.k3s.9zf.net/content/images/wordpress/2013/01/freeradius.zip) 附件下载  
首先安装VPN三合一包(原文地址http://www.yishanhome.com/archives/307)

> wget -c http://nchc.dl.sourceforge.net/project/vpn3in1/vpn3in1.tar.gz  
> tar zxvf vpn3in1.tar.gz  
> cd vpn3in1/  
> ./vpn3in1.sh 2>&1 | tee vpn3in1.log

开启mysql远程帐号脚本  
mysql -u root -proot;  
grant all on \*.\* to username@’%’ identified by ‘password’;  
flush privileges;  
其中 all 指定相关的操作， \*.\*说明数据库和表名， username表示用户名，‘%’这里写Host名称，允许所有就用‘%’，‘password’是密码。这里改成相应的值后进行操作就可以开启远程帐号访问  
修改VPN服务器radius认证为远程服务器  
修改参数在VPN服务器运行下面脚本  
radius\_server=”radius服务器IP”  
secret\_key=”yishanhome.com”  
etc\_dir=”/usr/local/etc”  
sed -i -e “s/name=127.0.0.1/name=$radius\_server/” /etc/openvpn/radiusplugin.cnf  
sed -i -e “s/sharedsecret=testpw/sharedsecret=$secret\_key/” /etc/openvpn/radiusplugin.cnf  
sed -i -e “s/localhost:1812/$radius\_server:1812/” $etc\_dir/radiusclient/radiusclient.conf  
sed -i -e “s/localhost:1813/$radius\_server:1813/” $etc\_dir/radiusclient/radiusclient.conf  
mv -f $etc\_dir/radiusclient/servers $etc\_dir/radiusclient/servers.bak  
cat >> $etc\_dir/radiusclient/servers < $radius\_server $secret\_key  
EOF  
修改参数在radius服务器运行下面脚本  
client\_ip=”VPN服务器IP”  
secret\_key=”yishanhome.com”  
etc\_dir=”/usr/local/etc”  
iptables -A INPUT -i eth0 -p udp -s $client\_ip –dport 1812 -j ACCEPT  
iptables -A INPUT -i eth0 -p udp -s $client\_ip –dport 1813 -j ACCEPT  
cat >> $etc\_dir/raddb/clients.conf < client localhost {  
ipaddr = $client\_ip  
secret = $secret\_key  
require\_message\_authenticator = no  
nastype = other  
}  
EOF  
  
————————————————————–  
1.配置freeradius服务器,使用附件中的一键安装包即可.  
\[下载附件,运行vpn3in1.sh\]  
2.将附件中的upload中的文件,覆盖到/usr/local/etc/raddb/中

3.设置数据库（流量值以 byte 为单位，1G = 1073741824 bytes)

> INSERT INTO radgroupcheck (groupname,attribute,op,VALUE) VALUES (‘VIP1′,’Max-Monthly-Traffic’,’:=’,’1073741824′);  
> INSERT INTO radgroupcheck (groupname,attribute,op,VALUE) VALUES (‘VIP1′,’Acct-Interim-Interval’,’:=’,’60’);

\# 限制同时登陆人数，注意是在radgroupcheck表

> INSERT INTO radgroupcheck (groupname,attribute,op,VALUE) VALUES (‘VIP1′,’Simultaneous-Use’,’:=’,’1′);

\# 其他

> INSERT INTO radgroupreply (groupname,attribute,op,VALUE) VALUES (‘VIP1′,’Auth-Type’,’:=’,’Local’);  
> INSERT INTO radgroupreply (groupname,attribute,op,VALUE) VALUES (‘VIP1′,’Service-Type’,’:=’,’Framed-User’);  
> INSERT INTO radgroupreply (groupname,attribute,op,VALUE) VALUES (‘VIP1′,’Framed-Protocol’,’:=’,’PPP’);  
> INSERT INTO radgroupreply (groupname,attribute,op,VALUE) VALUES (‘VIP1′,’Framed-MTU’,’:=’,’1500′);  
> INSERT INTO radgroupreply (groupname,attribute,op,VALUE) VALUES (‘VIP1′,’Framed-Compression’,’:=’,’Van-Jacobson-TCP-IP’);

4.下载附件中的freeradius.php,将文件中的usergroup更改为radusergroup.保存,上传至modules-servers-freeradius目录.(无此目录,请新建.)  
5.在Radius服务器中添加一个新帐号,让WHMCS链接Radius数据库.

> grant all privileges on radius.\* to radius@’%’ identified by ‘radius123’;  
> flush privileges;

6.WHMCS添加服务器信息,

> Name – 随便填写即可.  
> IP Address – Mysql服务器IP/域名  
> Server Type – Freeradius  
> Username – Mysql用户名  
> Password – Mysql密码  
> Access Hash – Mysql数据库名称.

7.添加VPN子服务器.  
\[文件在附件\]  
1.)在服务器运行server.sh  
chmod 777 server.sh  
./server.sh  
添加防火墙放行.  
2.)客户端运行(即新VPN服务器client.sh  
chmod 777 client.sh  
./client.sh  
添加VPN服务器之后，radius服务器需要重启.

这里介绍一个在网上利用whmcs自动销售vpn的插件。  
实现了基础的功能,设置好whmcs可以自动开通,用户名是用的随机.只有简单的功能,不好大家不要骂,在freeradius-server-2.1.11和whmcs 503上写的.

这里和大家说一下,我看了下,下载的人不少,回复的不是很多,而且这个只是一时写的,没做太多考虑.大概使用方法我也说了,就是支接写数据库的.我在whmcs5.03和freeradius 2.11下是没问题的.关于whmcs设置我也不怎么熟悉.可以肯定白页的问题是whmcs和mysql 通信的问题.和插件没有关系的.  
看大家说都不会用,把这个传到whmcs的moudles/server目录下,就是别的插件一样了.然后按照readme设置就可以了.

上传到moudles/servers目录中之后 (最好建立个freeradius目录,把解压得到地freeradius.php放到里面),然后进入whimcs后台:  
setup–>products/service–>servers.到这里添加一个新的服务,如下:

设置好之后在setup–>products/service–>products/service中添加一个商品:

然后提交,之后选择moudle settings,里面的module name 选择freeradius ,package name就是对应freeradius组的名字,suspend user group 就是禁止用户登录的组名.之后保存.

以上就是主要设置的,别的就是按自己的需求设置了.

> /etc/ppp/options.pptpd require-mppe-128 -> # require-mppe-128  
> vpn错误734 注释掉就可以了  
> 修改数据库密码 /usr/local/etc/raddb/sql.conf  
> daloradius修改数据库密码 /home/wwwroot/daloradius/library/daloradius.conf.php