找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 121|回复: 19

通过FreeRADIUS实现VPN流量控制功能

[复制链接]

8

主题

7

回帖

50

积分

注册会员

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

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

一、启用 Rlm sqlcounter 模块

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

[ol]
  • vim /usr/local/etc/raddb/radiusd.conf[/ol]复制代码

    二、添加 Traffic Counter流量计数器

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

    [ol]
  • vim /usr/local/etc/raddb/sql/mysql/counter.conf[/ol]复制代码

    在文件末尾添加下面代码

    [ol]
  • sqlcounter monthlytrafficcounter {
  •     counter-name = Monthly-Traffic
  •     check-name = Max-Monthly-Traffic
  •     reply-name = Monthly-Traffic-Limit
  •     sqlmod-inst = sql
  •     key = User-Name
  •     reset = monthly
  •     query = "SELECT SUM(acctinputoctets + acctoutputoctets) FROM radacct WHERE UserName='%{%k}' AND UNIX_TIMESTAMP(AcctStartTime) > '%b'"
  • }[/ol]复制代码

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

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

    三、启用Traffic Counter流量计数器

    [ol]
  • vim /usr/local/etc/raddb/sites-enabled/default[/ol]复制代码

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

    [ol]
  • monthlytrafficcounter[/ol]复制代码

    四、添加字典文件

    [ol]
  • vim /usr/local/etc/raddb/dictionary[/ol]复制代码

    在文件末尾添加下面两行

    [ol]
  • ATTRIBUTE Max-Monthly-Traffic 3003 integer
  • ATTRIBUTE Monthly-Traffic-Limit 3004 integer[/ol]复制代码

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


    注意事项:

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

    # 连接到MySQL数据库

    [ol]
  • mysql -uroot -p123456;[/ol]复制代码

    # 每月最大流量(1G)

    [ol]
  • INSERT INTO radgroupreply (groupname,attribute,op,VALUE) VALUES ('VIP1','Max-Monthly-Traffic',':=','1073741824');[/ol]复制代码

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

    使用道具 举报

    422

    主题

    6572

    回帖

    1万

    积分

    论坛元老

    积分
    14452
    发表于 2011-8-8 00:29:41 | 显示全部楼层
    收藏一下 谢谢

    回复

    使用道具 举报

    60

    主题

    1451

    回帖

    3118

    积分

    论坛元老

    积分
    3118
    发表于 2011-8-8 00:29:57 | 显示全部楼层
    又有好多VPN商要诞生了
    回复

    使用道具 举报

    213

    主题

    562

    回帖

    1789

    积分

    金牌会员

    积分
    1789
    发表于 2011-8-8 00:31:53 | 显示全部楼层
    谢谢
    回复

    使用道具 举报

    213

    主题

    562

    回帖

    1789

    积分

    金牌会员

    积分
    1789
    发表于 2011-8-8 00:32:28 | 显示全部楼层
    求自动化赚钱教程。。
    回复

    使用道具 举报

    37

    主题

    2950

    回帖

    6043

    积分

    论坛元老

    积分
    6043
    发表于 2011-8-8 00:52:38 | 显示全部楼层
    原帖由 lylover 于 2011-8-8 00:32 发表


    可以支持多个服务器 一个数据库管理吗


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

    这就是所谓可自助更换机房VPN原理。
    可自助更换机房可是Blockcn的杀手锏!

    回复

    使用道具 举报

    139

    主题

    3441

    回帖

    7345

    积分

    论坛元老

    积分
    7345
    发表于 2011-8-8 00:53:01 | 显示全部楼层
    如何在没有安装mysql的被控制,远程成功?为什么我用vpn时,连接上没几分钟网络速度就变得越来越差?请问如何创建多线程vpn
    回复

    使用道具 举报

    8

    主题

    7

    回帖

    50

    积分

    注册会员

    积分
    50
     楼主| 发表于 2011-8-8 01:00:53 | 显示全部楼层
    VPN本来就是多线程的...................
    回复

    使用道具 举报

    361

    主题

    1435

    回帖

    4013

    积分

    论坛元老

    积分
    4013
    发表于 2011-8-8 01:01:18 | 显示全部楼层
    单独对某一程序多线程代理 (例如95加速器) 那是另一种方式了
    回复

    使用道具 举报

    0

    主题

    1

    回帖

    4

    积分

    新手上路

    积分
    4
    发表于 2011-8-8 01:05:26 | 显示全部楼层
    好文章
    做个记号
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    Archiver|手机版|小黑屋|Discuz! X

    GMT+8, 2025-1-12 01:02 , Processed in 0.020719 second(s), 5 queries , Gzip On, Redis On.

    Powered by Discuz! X3.5

    © 2001-2024 Discuz! Team.

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