QQ登录

只需一步,快速开始

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 949|回复: 3

关于proFTP的流量限制的问题,被困扰很久了

[复制链接]
发表于 2003-1-16 18:51:50 | 显示全部楼层 |阅读模式
为了限制特定用户的带宽,我开始配proFTP..
根据网上的一些资料,我把上行的速度限定为100K,下行的速度限制为10K了。。

可是:在多个用户存在的情况下,proFTP把所有的用户都做了以上设定的限制。。 这下我就挠头了~

看了proFTP的网站的关于流量限制的介绍,太简短了,跟没说一样。。 其他文章也都没怎么说不同用户的不同带宽限制如何实现。

请教各位有没有什么高招可以帮帮我?
 楼主| 发表于 2003-1-18 02:03:34 | 显示全部楼层
# 服务器名称
ServerName "TEST FTP Server"
# 服务加载方式
ServerType standalone
DefaultServer on
ExtendedLog /var/log/proftpd read,write,auth

#  设定21端口为默认端口
# Port 21
# port 5566
Umask 022

# 为防止Dos攻击,应设置最大连接数为30个。如果你需要设置更多,请按照这# 个准则来做。注意只能设置在standalone模式下。
MaxInstances 30

# 隐藏FTP版本号
RequireValidShell off
ServerIdent off

# 最大连接失败数10
MaxLoginAttempts 10

# 设定用户和组.
User nobody
Group nobody

# 登陆的欢迎信息
DisplayLogin welcome.msg
# DisplayFirstChdir .message

# 空闲连接超时
TimeoutIdle 120

# 空闲登陆超时
TimeoutLogin 400

# 发呆超时
TimeoutNoTransfer 600

# 阻塞超时
TimeoutStalled 800

# 允许断点续传
AllowOverwrite on
AllowStoreRestart on

# 加快登陆速度
UseReverseDNS off
IdentLookups off

# 限制用户只能访问自己的目录
DefaultRoot ~

# 设置虚拟主机 001
<VirtualHost xx.xx.xx.xxx>
port 5567
ServerName "001 SpeedTEST"
# 001用户的带宽限制
<Directory /001>
AllowOverwrite on
RateReadBPS 10240
RateWriteBPS 102400
RateReadHardBPS on
</Directory>
user 001
group ftpusers
# DefaultRoot /001 001
</VirtualHost>

# 设置虚拟主机 002
<VirtualHost xx.xx.xx.xxx>
port 5566
ServerName "002 SpeedTEST"
<Directory /r002>
AllowOverwrite on
</Directory>
user 002
group 002
DefaultRoot /002 002
</VirtualHost>

# ========== END ====================

我按照自己的理解翻译了其中一部分的说明
这个conf主要目的有2个,一个是设置不同的FTP登陆用户,另一个是针对不同FTP用户设置不同的带宽。
我的想法是通过不同的端口设定两个VirtualHost,但是问题出来了:
尽管我在conf里屏蔽,但是默认端口21仍然起作用,而且001和002两个用户都可以通过这个端口登陆;
5566和5567两个端口是我用来区分不同登陆用户的,但是这样没用,两个用户都可以用自己的帐号加对方的端口登陆上来;
带宽限制没起任何作用。。虽然我对照脚本范例看了很久。。

英雄,帮帮我~~  不然头发都要挠光了~~~~
回复

使用道具 举报

发表于 2003-1-18 10:13:52 | 显示全部楼层
1.2.8 版本有了这个具体的、更为详细的功能。
回复

使用道具 举报

发表于 2003-1-19 20:54:53 | 显示全部楼层

试一下行不行

[quote:3118503f70="camor"]# 服务器名称
ServerName "TEST FTP Server"
# 服务加载方式
ServerType standalone
DefaultServer on
ExtendedLog /var/log/proftpd read,write,auth

#  设定21端口为默认端口
# Port 21
# port 5566
Umask 022

# 为防止Dos攻击,应设置最大连接数为30个。如果你需要设置更多,请按照这# 个准则来做。注意只能设置在standalone模式下。
MaxInstances 30

# 隐藏FTP版本号
RequireValidShell off
ServerIdent off

# 最大连接失败数10
MaxLoginAttempts 10

# 设定用户和组.
User nobody
Group nobody

# 登陆的欢迎信息
DisplayLogin welcome.msg
# DisplayFirstChdir .message

# 空闲连接超时
TimeoutIdle 120

# 空闲登陆超时
TimeoutLogin 400

# 发呆超时
TimeoutNoTransfer 600

# 阻塞超时
TimeoutStalled 800

# 允许断点续传
AllowOverwrite on
AllowStoreRestart on

# 加快登陆速度
UseReverseDNS off
IdentLookups off

# 限制用户只能访问自己的目录
DefaultRoot ~

# 设置虚拟主机 001
<VirtualHost xx.xx.xx.xxx>
port 5567
ServerName "001 SpeedTEST"
# 001用户的带宽限制
<Directory /001>
AllowOverwrite on
RateReadBPS 10240
RateWriteBPS 102400
RateReadHardBPS on
</Directory>
user 001
group ftpusers
# DefaultRoot /001 001
</VirtualHost>

# 设置虚拟主机 002
<VirtualHost xx.xx.xx.xxx>
port 5566
ServerName "002 SpeedTEST"
<Directory /r002>
AllowOverwrite on
</Directory>
user 002
group 002
DefaultRoot /002 002
</VirtualHost>

# ========== END ====================

我按照自己的理解翻译了其中一部分的说明
这个conf主要目的有2个,一个是设置不同的FTP登陆用户,另一个是针对不同FTP用户设置不同的带宽。
我的想法是通过不同的端口设定两个VirtualHost,但是问题出来了:
尽管我在conf里屏蔽,但是默认端口21仍然起作用,而且001和002两个用户都可以通过这个端口登陆;
5566和5567两个端口是我用来区分不同登陆用户的,但是这样没用,两个用户都可以用自己的帐号加对方的端口登陆上来;
带宽限制没起任何作用。。虽然我对照脚本范例看了很久。。

英雄,帮帮我~~  不然头发都要挠光了~~~~ [/quote]




带宽控制:

RateReadBPS 81920

RateReadFreeBytes 5120

RateReadHardBPS on


这样用户的带宽就用公式: "RateReadBPS x MaxClients = Total Bandwidth allocation."

可以加在不同用户的标签里,实现对单个用户的限制
可以使用:
RateReadBPS RateReadFreeBytes
RateWriteBPS RateWriteFreeBytes
来限制下载和上载速度:
RateReadBPS和RateWriteBPS限制下载和上载的速率
RateReadFreeBytes和RateWriteFreeBytes限制当用户现在这么多数据量以后再进行限速,这样可以实现对于小文件不限速,而大文件限速。
回复

使用道具 举报

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

本版积分规则

GMT+8, 2024-11-17 12:27 , Processed in 0.057768 second(s), 16 queries .

© 2021 Powered by Discuz! X3.5.

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