proftpd中如何实现对不同用户的速度限制?
想让不同的帐号有各自的上传下载速度,应该如何设置呢?
另处我用的是ubuntu-server,zh_CN.UTF-8的,中文乱码,不知道大家是怎么解决的,难道真的要改成gbk吗?最新的proftpd1.3好像也不支持charset之类的命令,是不是得自己编译proftp加上iconv-patch呢?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(9)
我个人没用过 ip-based 的 ftp virtual host,我个人是建议 vincent339 兄可以自己先看一下 pure-ftpd 官方文件是否有提到这部份。
若没有 virtal host 支援的话也没关系,因为你只需要改组态档,然后启动三个 pure-ftpd 读取不同组态档来 listen 不同的 ip 位址即可提供该功能。
最后 pure-pw 来新增 ftp 帐号,限制该帐号的存取速度即可。
==
[ 本帖最后由 kenduest 于 2006-10-16 16:58 编辑 ]
proftpd 是一个非常优秀的ftp服务器软件,建议你仔细看一下的文档,你说的问题都能够解决。
以下是我安装的过程,不存在中文乱码的问题,希望对你有帮助。
安装环境:
系 统:Debian Sarger
软件名称:proftpd-1.3.0rc3.tar.gz
ServerName "FTP Server " #服务器的名字
ServerType standalone #proftpd运行的方式,有standalone和inetd
DeferWelcome off #只有在认证用户之后才显示欢迎信息
ServerIdent off #登陆的时候不显示ftp服务器的相关信息,增加安全性
#
User nobody #以nobody,nogroup的身份运行程序
Group nogroup
#
Port 21 #指定FTP的端口,默认是21端口
#
Umask 002 #新文件的权限掩码
ShowSymlinks off #不显示链接文件的目标文件
DefaultRoot ~ !username # ~用户只能访问自己的目录,!usernmae用户除外
RequireValidShell off #用户是否拥有shell,关闭安全
#
UseReverseDNS off #关闭DNS反向查询,节省连接时间
IdentLookups off
#
TimeoutLogin 60 #登陆时等待输入密码的时间
TimeoutIdle 300 #登陆后允许IDLE的时间
TimeoutNoTransfer 600 #没有数据传输时允许IDLE的时间
#
AllowStoreRestart on #允许断点续上传
AllowRetrieveRestart on #允许断点续下载
AllowForeignAddress on #要允许 FXP 写成 on
#
PassivePorts 50000 65534 #指定被动模式端口的范围
#
MultilineRFC2228 on #FTP安全扩展
#
MaxClients 100 "Sorry, the maximum number of allowed users are already connected (%m)" # 最大链接数限制
MaxInstances 100 #最大实例数为30,
MaxClientsPerHost 2 "每个IP只允许2个连接" #每个IP只能有两个连接
#
ServerLog /var/log/proftpd/
#SystemLog /var/log/proftpd/system_log
ExtendedLog /var/log/proftpd/proftpd.log ALL
#
AllowOverwrite on
#
<Limit SITE_CHMOD>
DenyAll
</Limit>
<Anonymous /home/ftp>
User ftp
Group ftp
AnonRequirePassword off
MaxClients 50
MaxClientsPerHost 3 "Sorry, you may not connect more than three times."
Umask 002 002
# We want clients to be able to login with "anonymous" as well as "ftp"
UserAlias anonymous ftp
# We want 'welcome.msg' displayed at login, and '.message' displayed
# in each newly chdired directory.
DisplayLogin welcome.msg
DisplayFirstChdir .message
TransferRate RETR 2000
TransferRate STOR 2000
<Limit LOGIN>
Allow from all
</Limit>
# Limit WRITE everywhere in the anonymous chroot
<Limit WRITE>
DenyAll
</Limit>
<Directory /home/ftp/incoming/*>
AllowOverwrite on
<Limit WRITE STOR CWD MKD>
Order Deny, Allow
Allow from all
</Limit>
<Limit READ RMD DELE RNFR RNTO SITE_CHMOD>
DenyAll
</Limit>
</Directory>
<Directory /home/ftp/pub/*>
AllowOverwrite off
<Limit STOR CWD READ>
Order Deny, Allow
Allow from all
</Limit>
<Limit WRITE>
DenyAll
</Limit>
<Limit RMD DELE RNFR RNTO SITE_CHMOD>
DenyAll
</Limit>
</Directory>
</Anonymous>
VIRTUAL SERVERS
You can run several different anonymous FTP servers on one host, by giving the host several IP
addresses with different DNS names.
Here are the steps needed to create an extra server using an IP alias on linux 2.4.x, called
"ftp.example.com" on address 10.11.12.13. on the IP alias eth0.
1. Create an "ftp" account if you do not have one. It it best if the account does not have a valid
home directory and shell. I prefer to make /dev/null the ftp account’s home directory and shell.
Ftpd uses this account to set the anonymous users’ uid.
2. Create a directory as described in Anonymous FTP and make a symlink called
/etc/pure-ftpd/10.11.12.13 which points to this directory.
3. Make sure your kernel has support for IP aliases.
4. Make sure that the following commands are run at boot:
/sbin/ifconfig eth0:1 10.11.12.13
现在服务器有三个ip,想让每个ip对应不同的服务。
请先解释一下何谓 ftp virtual host ?
==
谢谢了,不过试了试pure-ftpd,对中文的支持已经比较好了,故准备转向pure.
那么如何对不同虚拟主机的匿名用户限制上传下载速度呢?
<Directory /home/down>
<Limit WRITE>
DenyGroup ftp
</Limit>
TransferRate RETR 15 user username
</Directory>
<Directory /home/upload>
<Limit RMD RNFR DELE RETR>
DenyGroup ftp
</Limit>
TransferRate STOR 50 user username
</Directory>
难道proftpd真的没办法了吗?
改用 pure-ftpd.. 因為
1. 可以用 pure-pw 的 useradd 新增虛擬帳號,指定 upload/download 的存取速度.
2. 支援 local & remote charset 指定.
==