全球主机交流论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

CeraNetworks网络延迟测速工具IP归属甄别会员请立即修改密码
查看: 7446|回复: 24

[经验] 通过FreeRADIUS实现VPN流量控制功能

[复制链接]
发表于 2011-8-8 00:27:48 | 显示全部楼层 |阅读模式
购买VPS相信很多人都是为了搞VPN的,搞了VPN后必然想做流量限制。考虑到网上教程有很多问题的,故将博客文章再贴出来。

首先要安装配置好 FreeRADIUS 用于做认证。方法见:《PPTP/L2TP + FreeRADIUS + MySQL 安装与配置》

一、启用 Rlm sqlcounter 模块

查找"counter.conf”(695行),去掉#号

  1. vim /usr/local/etc/raddb/radiusd.conf
复制代码


二、添加 Traffic Counter流量计数器

网上一些教程有拼写错误,折腾了大半天才在官方文档上找到原因。

  1. vim /usr/local/etc/raddb/sql/mysql/counter.conf
复制代码


在文件末尾添加下面代码

  1. sqlcounter monthlytrafficcounter {
  2.     counter-name = Monthly-Traffic
  3.     check-name = Max-Monthly-Traffic
  4.     reply-name = Monthly-Traffic-Limit
  5.     sqlmod-inst = sql
  6.     key = User-Name
  7.     reset = monthly
  8.     query = "SELECT SUM(acctinputoctets + acctoutputoctets) FROM radacct WHERE UserName='%{%k}' AND UNIX_TIMESTAMP(AcctStartTime) > '%b'"
  9. }
复制代码


上面代码意思是按月进行统计,从数据库的radacct表中,根据用户名(%k)将所有入站和出站流量累加。

时间也是可以自定义的(months、weeks、days、hours),也可以指定具体值,如三天重置一次 "reset = 3 d"

三、启用Traffic Counter流量计数器

  1. vim /usr/local/etc/raddb/sites-enabled/default
复制代码


在authorize区块的末尾(205行)添加

  1. monthlytrafficcounter
复制代码


四、添加字典文件

  1. vim /usr/local/etc/raddb/dictionary
复制代码


在文件末尾添加下面两行

  1. ATTRIBUTE Max-Monthly-Traffic 3003 integer
  2. ATTRIBUTE Monthly-Traffic-Limit 3004 integer
复制代码


五、数据库插入流量限制值


注意事项:

1)这里插入到radgroupreply表,是限制某个用户组的流量。也可以插入到radcheck表,以限制某个用户的流量。
2)流量值以 byte 为单位,1G = 1073741824 bytes
3)VIP1是用户组,123456是数据库root密码

# 连接到MySQL数据库

  1. mysql -uroot -p123456;
复制代码


# 每月最大流量(1G)

  1. INSERT INTO radgroupreply (groupname,attribute,op,VALUE) VALUES ('VIP1','Max-Monthly-Traffic',':=','1073741824');
复制代码


原文:https://wangyan.org/blog/freeradius-traffic-limit.html

评分

参与人数 9威望 +160 收起 理由
vaman + 20 牛×
lxfy + 20 精品文章
cnx + 20 精品文章
foxconndmd + 20 精品文章
lxqfff + 10 好文章,顶起!

查看全部评分

发表于 2011-8-8 00:29:41 | 显示全部楼层
收藏一下 谢谢
发表于 2011-8-8 00:29:57 | 显示全部楼层
又有好多VPN商要诞生了
发表于 2011-8-8 00:31:53 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
发表于 2011-8-8 00:32:28 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
发表于 2011-8-8 00:52:38 | 显示全部楼层
谢谢
发表于 2011-8-8 00:53:01 | 显示全部楼层
求自动化赚钱教程。。
 楼主| 发表于 2011-8-8 01:00:53 | 显示全部楼层
原帖由 lylover 于 2011-8-8 00:32 发表
可以支持多个服务器 一个数据库管理吗


可以!一个服务器做认证,其他服务器只装客户端,最后将客户端IP添加到NAS表中。

这就是所谓可自助更换机房VPN原理。
可自助更换机房可是Blockcn的杀手锏!
发表于 2011-8-8 01:01:18 | 显示全部楼层
如何在没有安装mysql的被控制,远程成功?
发表于 2011-8-8 01:05:26 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|全球主机交流论坛

GMT+8, 2025-5-1 21:38 , Processed in 0.071535 second(s), 15 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表