FTP并发及带宽限制

FTP并发及带宽限制

问题

沿用上文FTP搭建及应用,通过调整FTP服务端配置,实现以下目标:
最多允许100个FTP并发连接
每个IP地址最多允许2个并发连接
匿名访问时,将速度限制为 50KB/s
用户登录访问时,将速度限制为 500KB/s
在客户机上通过ftp或wget验证上述限制

方案

关于vsftpd服务器的并发及带宽限制,主要用到以下配置参数:
max_clients:限制并发的客户端个数
max_per_ip:限制每个客户机IP的并发连接数
anon_max_rate:匿名最大速度(字节/秒)
local_max_rate:验证用户最大速率(字节/秒)

步骤

实现此案例需要按照如下步骤进行。
步骤一:限制并发连接数
1)修改vsftpd服务配置,在末尾添加并发限制并重载服务

[root@svr5 ~]# vim /etc/vsftpd/vsftpd.conf
.. ..
max_clients=100
max_per_ip=2

[root@svr5 ~]# service vsftpd reload
关闭 vsftpd:                                              [确定]
为 vsftpd 启动 vsftpd:                                    [确定]

2)从客户机开多个FTP连接进行测试
访问vsftpd服务器时,只要客户端不主动断开连接,且闲置不超过300秒(默认),vsftpd服务器都会保留此连接。因此可以开多个命令终端同时登入此FTP服务器,以测试并发限制效果。
比如,从客户机pc205上匿名登入FTP服务器且不退出,前两次连接都是成功的,当第三次(超过2)连接时,会出现“There are too many connections … …”的报错提示,连接失败:

[root@svr5 ~]# ftp 192.168.4.5
Connected to 192.168.4.5 (192.168.4.5).
421 There are too many connections from your internet address.  	//连接数超限
ftp> pwd
Not connected.  								//未连接成功
ftp> quit

步骤二:限制FTP传输速度
1)修改vsftpd服务配置,在末尾添加速度限制,并重载服务

[root@svr5 ~]# vim /etc/vsftpd/vsftpd.conf
.. ..
anon_max_rate=50000
local_max_rate=500000

[root@svr5 ~]# service vsftpd reload
关闭 vsftpd:                                              [确定]
为 vsftpd 启动 vsftpd:                                    [确定]

2)在匿名FTP起始目录、用户lisi的家目录下建立下载测试文件
为了方便看到效果,建立的测试文件可以稍大一点(比如100MB)。直接使用dd命令生成相应的文件即可:

[root@svr5 ~]# dd  if=/dev/zero  of=/var/ftp/pub/anon.tgz  bs=1M  count=100
.. ..
[root@svr5 ~]# dd  if=/dev/zero  of=~lisi/local.tgz  bs=1M  count=100                 
.. ..
[root@svr5 ~]# ls  -lh  /var/ftp/pub/anon.tgz  ~lisi/local.tgz  		//确认结果
-rw-r--r--. 1 root root 100M 1月  15 15:12 /home/lisi/local.tgz
-rw-r--r--. 1 root root 100M 1月  15 15:12 /var/ftp/pub/anon.tgz

3)使用wget命令下载上述文件,观察稳定以后的速度
匿名访问下载测试文件anon.tgz,速度稳定在50KB/s左右:

[root@pc205 ~]# wget  ftp://192.168.4.5/pub/anon.tgz
--2015-01-15 15:14:52--  ftp://192.168.4.5/pub/anon.tgz
           => “anon.tgz”
正在连接 192.168.4.5:21... 已连接。
正在以 anonymous 登录 ... 登录成功!
==> SYST ... 完成。    ==> PWD ... 完成。
==> TYPE I ... 完成。  ==> CWD (1) /pub ... 完成。
==> SIZE anon.tgz ... 104857600
==> PASV ... 完成。    ==> RETR anon.tgz ... 完成。
长度:104857600 (100M) (非正式数据)

.. ..
0% [                          ] 601,408     49.9K/s eta(英国中部时间) 34m 55s

!!! 必要时,可按Ctrl+c键中止下载,不需要等全部下完
以用户lisi访问下载测试文件local.tgz,速度稳定在500KB/s左右:

[root@pc205 ~]# wget  ftp://lisi:[email protected]/local.tgz
--2015-01-15 15:21:29--  ftp://lisi:*password*@192.168.4.5/local.tgz
           => “local.tgz”
正在连接 192.168.4.5:21... 已连接。
正在以 lisi 登录 ... 登录成功!
==> SYST ... 完成。    ==> PWD ... 完成。
==> TYPE I ... 完成。  ==> 不需要 CWD。
==> SIZE local.tgz ... 104857600
==> PASV ... 完成。    ==> RETR local.tgz ... 完成。
长度:104857600 (100M) (非正式数据)

.. ..
0% [                          ] 868,352      503K/s eta(英国中部时间) 34m 55s

4)取消vsftpd服务的速度限制,再次测试下载效果
修改vsftpd.conf配置文件,将此前添加的限制下载速度的配置语句注释(或删除),并重载服务:

[root@svr5 ~]# vim /etc/vsftpd/vsftpd.conf
.. ..
#anon_max_rate=50000
#local_max_rate=500000

[root@svr5 ~]# service vsftpd reload
关闭 vsftpd:                                              [确定]
为 vsftpd 启动 vsftpd:                                    [确定]

再次使用wget下载测试文件anon.tgz,会发现速度已不受服务端限制,而是取决于实际的网络带宽:

[root@pc205 ~]# wget  ftp://192.168.4.5/pub/anon.tgz
--2015-01-15 15:29:08--  ftp://192.168.4.5/pub/anon.tgz
           => “anon.tgz”
正在连接 192.168.4.5:21... 已连接。
正在以 anonymous 登录 ... 登录成功!
==> SYST ... 完成。    ==> PWD ... 完成。
==> TYPE I ... 完成。  ==> CWD (1) /pub ... 完成。
==> SIZE anon.tgz ... 104857600
==> PASV ... 完成。    ==> RETR anon.tgz ... 完成。
长度:104857600 (100M) (非正式数据)

86% [==========================>         ] 90,344,032  28.2M/s eta(英国中部时100%[=============================================================>] 104,857,600 31.8M/s   in 3.1s    

2015-01-15 15:29:12 (31.8 MB/s) - “anon.tgz” 已保存 [104857600]

你可能感兴趣的:(FTP并发及带宽限制)