3.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: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]