LINUX FTP并发及带宽限制

匿名 (未验证) 提交于 2019-12-02 21:56:30

问题
沿用练习一,通过调整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:1234567@192.168.4.5/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] 
文章来源: https://blog.csdn.net/weixin_44774638/article/details/90474085
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!