构建FTP文件传输服务器

FTP服务概述

简单FTP构建及访问

VSFTP服务基础

用户禁锢、黑白名单

FTP并发及带宽限制

一、FTP服务概述


FTP连接及传输模式

控制连接:TCP 21 用于发送FTP命令信息

数据连接:TCP 20 用于上传、下载数据

数据连接的建立类型

主动模式:服务端从端口主动向客户端发起连接

被动模式:服务器在指定范围内某个端口被动等待客户端连接

FTP传输模式

文本模式:ASCLL模式 以文本序列传输数据

二进制模式:Binary模式 以二进制序列传输数据

FTP用户类型

匿名用户:anonymous或ftp

本地用户:账号、密码等信息保存在passwd、shadow文件中

虚拟用户:使用独立的账号密码数据文件

FTP服务器软件种类

IIS、Serv-U、wu-ftpd、Proftpd、vsftpd(Very Secure FTP Daemon)

FTP客户端软件种类

CuteFTP、FlashFXP、LeapFTP、Filezilla、gftp、kuftp

二、VSFTP服务基础


vsftpd软件包

官方站点:http://vsftpd.beasts.org

主程序:/usr/sbin/vsftpd

服务名:vsftpd

用户控制列表文件:/etc/vsftpd/ftpusers  黑名单  /etc/vsftpd/user_list 用户列表

主配置文件:/etc/vsftpd/vsftpd.conf

常用的全局配置项

listen=YES:是否以独立运行的方式监听服务

listen_address=192.168.4.1:设置监听的IP地址

listen_port=21:设置监听FTP服务的端口号

write_enable=YES:是否启用写入权限

download_enable=YES:是否允许下载文件

userlist_enable=YES:是否启用user_list列表文件

userlist_deny=YES:是否禁用user_list中的用户

max_clients=0:限制并发客户端连接数

max_per_ip=0:限制同一IP地址的并发连接数

常用的匿名FTP配置项

anonymous_enable=YES:启用匿名访问

anon_umask=022:匿名用户所上传文件的权限掩码

anon_root=/var/ftp:匿名用户的FTP根目录

anon_upload_enable=YES:允许上传文件

anon_mkdir_write_enable=YES:允许创建目录

anon_other_write_enable=YES:开放其他写入权

anon_max_rate=0:限制最大传输速率(字节/秒)

常用的本地用户FTP配置项

local_enable=YES:是否启用本地系统用户

local_umask=022:本地用户所上传文件的权限掩码

local_root=/var/ftp:设置本地用户的FTP根目录

chroot_local_user=YES:是否将用户禁锢在主目录

local_max_rate=0:限制最大传输速率(字节/秒)

三、简单FTP构建及访问


1.1 问题

本案例要求先快速搭建好一台FTP服务器,并创建相关测试文件:

建立下载测试文件 /var/ftp/pub/anon.txt

建立下载测试文件 ~lisi/lisi.txt

然后验证以不同方式从客户机访问此FTP服务器:

从浏览器访问,测试匿名/用户登录

以ftp命令访问,分别测试匿名/用户验证访问的下载和上传操作

使用wget命令下载测试文件

1.2 方案

使用2台RHEL6虚拟机,其中一台作为vsftpd服务器(192.168.4.5)、另外一台作为测试用的Linux客户机(192.168.4.205),如图-1所示。

图-1

在RHEL6系统中,vsftpd软件包默认已提供FTP服务的基本配置,因此只要装好vsftpd包并启动对应的服务,一台FTP服务器就搭建好了。默认的vsftpd服务具备一台标准FTP服务器的能力,服务功能和特点如表-1所示。

表-1 默认vsftpd配置的功能和特点

需要访问FTP服务端提供的资源时,可以使用专门的FTP客户端/管理工具(FTP命令程序、Filezilla图形工具),也可以使用Web浏览器、下载工具(比如wget)等支持FTP协议的通用软件。

定位匿名访问FTP资源的地址形式如下:

ftp://服务器地址/,对应服务器上的 /var/ftp/ 目录

ftp://服务器地址/path/to/file,对应服务器上的 /var/ftp/path/to/file 文件

对于要求登录验证才能访问的FTP资源,可以在地址中指定用户名、密码信息:

ftp://user:pass@服务器地址/,对应服务器上的用户家目录 ~user/

ftp://user:pass@服务器地址/path/to/file,对应服务器上的 ~user/path/to/file 文件

1.3 步骤

实现此案例需要按照如下步骤进行。

步骤一:构建vsftpd服务器

1)使用yum安装vsftpd软件包

[root@svr5~]# yum-y  install  vsftpd

....

[root@svr5~]# rpm-q  vsftpd

vsftpd-2.2.2-11.el6_4.1.x86_64

2)启用vsftpd服务,并设为开机自动运行

[root@svr5~]# service  vsftpd  restart;chkconfig  vsftpd  on

关闭 vsftpd:[失败]

为 vsftpd 启动 vsftpd:[确定]

vsftpd服务默认通过TCP 21端口监听客户端请求:

[root@svr5~]# netstat-anptu|grep vsftpd

tcp000.0.0.0:210.0.0.0:*LISTEN64869/vsftpd

3)为FTP访问建立测试文件

在匿名FTP起始目录/var/ftp/下默认有一个pub/子目录(用来提供开放资源),在此目录下建立一个名为anon.txt的文件:

[root@svr5~]#cat/var/ftp/pub/anon.txt

Anonymous Test

新建用户lisi并设好密码(如1234567),此用户即可作为FTP用户使用,在lisi的家目录下建立一个名为lisi.txt的文件,内容随意:

[root@svr5~]# useradd  lisi

[root@svr5~]# echo1234567|passwd--stdin  lisi

更改用户 lisi 的密码 。

passwd: 所有的身份验证令牌已经成功更新。

[root@svr5~]# vim~lisi/lisi.txt

Local User Test

步骤二:从客户机访问FTP服务器

1)从Web浏览器访问FTP服务

以Firefox浏览器为例,只要在地址栏内输入 ftp://192.168.4.5,回车后即连接目标主机192.168.4.5的FTP服务,默认以匿名的方式验证。若访问成功,将会以网页形式列出FTP服务器上匿名FTP起始目录下的资源,如图-2所示。

图-2

单击相应的超链接即可进入指定的目录,或者打开/下载指定的文件,如图-3所示。

图-3

若要访问用户验证的FTP资源,则需要指定正确的用户信息即可。比如在地址栏内输入网址 ftp://lisi@192.168.4.5/ 或者 ftp://lisi:1234567@192.168.4.5/ 都能够成功访问本例中的FTP服务器,浏览服(前者会弹窗验证密码)务器上用户lisi的家目录,如图-4所示。

图-4

当输入的是带远程文件路径的完整FTP地址时,比如 ftp://lisi:1234567@192.168.4.5/lisi.txt,则可以直接打开目标文件(对于浏览器不支持的文件类型,会弹窗提示下载),如图-5所示。

图-5

2)使用ftp命令访问FTP服务

通常大多数Linux系统都自带ftp工具,如果没有也可以通过Yum手动安装。

[root@pc205~]# ftp

-bash:ftp:command not found

[root@pc205~]# yum-y  install  ftp

....

指定目标服务器的地址作为参数,ftp命令将会发起FTP连接,若成功连接则根据提示依次验证用户名、密码即可。对于匿名FTP访问,使用ftp或anonymous作为用户名,密码任意;对于用户验证的FTP访问,应以确切的用户名和密码验证。

匿名登录FTP服务器,验证下载(允许)、上传(拒绝)操作:

[root@pc205~]# ftp192.168.4.5//连接FTP服务器

Connected to192.168.4.5(192.168.4.5).

220(vsFTPd2.2.2)

Name(192.168.4.5:root):ftp//匿名用户 ftp

331Please specify the password.

Password://任意密码,或直接回车

230Login successful.

Remote system type is UNIX.

Using binary mode to transfer files.

ftp>ls//查看FTP起始目录

227Entering PassiveMode(192,168,4,5,63,132).

150Here comes the directory listing.

drwxr-xr-x2004096Jan1307:26pub

226Directory send OK.

ftp>cd pub//切换到pub子目录

250Directory successfully changed.

ftp>ls

227Entering PassiveMode(192,168,4,5,121,122).

150Here comes the directory listing.

-rw-r--r--10015Jan1306:59anon.txt

226Directory send OK.

ftp>get anon.txt//测试下载文件

local:anon.txt remote:anon.txt

227Entering PassiveMode(192,168,4,5,127,108).

150Opening BINARY mode data connectionforanon.txt(15bytes).

226Transfer complete.//提示成功

15bytes receivedin3.9e-05secs(384.62Kbytes/sec)

ftp>put install.log//测试上传文件

local:install.log remote:install.log

227Entering PassiveMode(192,168,4,5,86,164).

550Permission denied.//提示被拒绝

ftp>bye//bye断开FTP连接

221Goodbye.

[root@pc205~]# cat anon.txt//确认下载结果

Anonymous Test

以用户lisi登录FTP服务器,验证下载(允许)、上传(允许)操作:

[root@pc205~]# ftp192.168.4.5//连接FTP服务器

Connected to192.168.4.5(192.168.4.5).

220(vsFTPd2.2.2)

Name(192.168.4.5:root):lisi//服务器本地用户 lisi

331Please specify the password.

Password://输入正确口令

230Login successful.

Remote system type is UNIX.

Using binary mode to transfer files.

ftp>ls//查看起始目录

227Entering PassiveMode(192,168,4,5,250,165).

150Here comes the directory listing.

-rw-r--r--10016Jan1307:01lisi.txt

226Directory send OK.

ftp>get lisi.txt//测试下载文件

local:lisi.txt remote:lisi.txt

227Entering PassiveMode(192,168,4,5,171,31).

150Opening BINARY mode data connectionforlisi.txt(16bytes).

226Transfer complete.//提示成功

16bytes receivedin4.8e-05secs(333.33Kbytes/sec)

ftp>put install.log//测试上传文件

local:install.log remote:install.log

227Entering PassiveMode(192,168,4,5,83,26).

150Ok to send data.

226Transfer complete.//提示成功

47884bytes sentin0.101secs(473.44Kbytes/sec)

ftp>ls//确认上传结果

227Entering PassiveMode(192,168,4,5,29,68).

150Here comes the directory listing.

-rw-r--r--150750847884Jan1308:01install.log

-rw-r--r--10016Jan1307:01lisi.txt

226Directory send OK.

ftp>quit//quit也可断开FTP连接

221Goodbye.

[root@pc205~]# cat lisi.txt//确认下载结果

Local User Test

3)使用wget命令工具下载FTP资源

下载服务器上的 /var/ftp/pub/anon.txt 文件:

[root@pc205~]# rm-rf  anon.txt//删除原有文件,避免干扰

[root@pc205~]# wget  ftp://192.168.4.5/pub/anon.txt            //匿名下载

--2015-01-1316:10:31--ftp://192.168.4.5/pub/anon.txt

=>“anon.txt”

正在连接192.168.4.5:21...已连接。

正在以 anonymous 登录...登录成功!

==>SYST...完成。==>PWD...完成。

==>TYPE I...完成。==>CWD(1)/pub...完成。

==>SIZE anon.txt...15

==>PASV...完成。==>RETR anon.txt...完成。

长度:15(非正式数据)

100%[=============================================================>]15--.-K/sin0s

2015-01-1316:10:31(1.13MB/s)-“anon.txt” 已保存[15]

[root@pc205~]# cat  anon.txt//确认下载结果

Anonymous Test

下载服务器上的 ~lisi/lisi.txt 文件:

[root@pc205~]# rm-rf  lisi.txt//删除原有文件,避免干扰

[root@pc205~]# wget  ftp://lisi:1234567@192.168.4.5/lisi.txt      //用户验证下载

--2015-01-1316:12:01--ftp://lisi:*password*@192.168.4.5/lisi.txt

=>“lisi.txt”

正在连接192.168.4.5:21...已连接。

正在以 lisi 登录...登录成功!

==>SYST...完成。==>PWD...完成。

==>TYPE I...完成。==>不需要 CWD。

==>SIZE lisi.txt...16

==>PASV...完成。==>RETR lisi.txt...完成。

长度:16(非正式数据)

100%[=============================================================>]16--.-K/sin0.001s

2015-01-1316:12:01(21.4KB/s)-“lisi.txt” 已保存[16]

[root@pc205~]# cat lisi.txt//确认下载结果

Local User Test

四、用户禁锢、黑白名单


2.1 问题

沿用练习一,通过调整FTP服务端配置,实现以下目标:

将FTP用户禁锢在各自的宿主目录下,阻止其切换到其他的文件夹

通过/etc/vsftpd/ftpusers黑名单阻止用户 mike 访问

将/etc/vsftpd/user_list文件设为白名单,允许用户 lisi、mike 访问

分别测试匿名访问、以用户lisi和mike访问的结果

将 ftp 加入白名单,再测试匿名访问

2.2 方案

对于匿名用户ftp来说,默认已经启用禁锢(仅限于起始目录/var/ftp);而对FTP本地用户来说,默认并没有禁锢(不仅可以访问宿主目录,还可以跳转到其他目录),存在一定安全隐患。若要禁锢本地用户,只需设置 chroot_local_user = YES即可。

vsftpd服务提供了两个用户列表文件,其中 /etc/vsftpd/ftpusers 作为默认的黑名单使用,列在此文件内的用户将无法登入FTP。

而另一个文件 /etc/vsftpd/user_list只是一个用户名列表,根据配置参数 userlist_enable 的值是YES(默认)还是NO来决定是否启用此列表。一旦启用此列表文件以后,如果配置参数 userlist_deny的值是YES(默认)则此列表为黑名单(拒绝指定的用户),如果是NO则此列表作为白名单使用。

2.3 步骤

实现此案例需要按照如下步骤进行。

步骤一:禁锢FTP本地用户账号

1)验证未启用禁锢前的风险

以普通用户lisi登入后,起始目录位于/home/lisi/,但可以通过cd命令切换到服务器上的其他目录(比如/etc/),并下载有读取权限的文件(比如passwd),可能导致未授权的信息泄露。

[root@pc205~]# ftp192.168.4.5//连接FTP服务器

Connected to192.168.4.5(192.168.4.5).

220(vsFTPd2.2.2)

Name(192.168.4.5:root):lisi//以FTP本地用户登录

331Please specify the password.

Password://验证口令

230Login successful.

Remote system type is UNIX.

Using binary mode to transfer files.

ftp>pwd//查看起始目录

257"/home/lisi"//位于用户lisi的家目录

ftp>cd/etc///切换到其他目录

250Directory successfully changed.

ftp>get passwd//下载/etc/目录下的passwd文件

local:passwd remote:passwd

227Entering PassiveMode(192,168,4,5,64,118).

150Opening BINARY mode data connectionforpasswd(2122bytes).

226Transfer complete.

2122bytes receivedin4.5e-05secs(47155.56Kbytes/sec)

ftp>quit//断开连接

221Goodbye.

[root@pc205~]# head-5passwd//确认下载后的文件

root:x:0:0:root:/root:/bin/bash

bin:x:1:1:bin:/bin:/sbin/nologin

daemon:x:2:2:daemon:/sbin:/sbin/nologin

adm:x:3:4:adm:/var/adm:/sbin/nologin

lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin

2)修改vsftpd.conf配置文件,启用禁锢本地用户的设置

[root@svr5~]#vim/etc/vsftpd/vsftpd.conf

....

chroot_local_user=YES//添加禁锢配置

[root@svr5~]# service  vsftpd reload

关闭 vsftpd:[确定]

为 vsftpd 启动 vsftpd:[确定]

3)验证启用禁锢后的效果

再次以用户lisi登入FTP服务器,会发现起始目录(/home/lisi)已经被视为用户FTP会话的根目录,无法切换到/etc/等其他目录。

[root@pc205~]# ftp192.168.4.5//连接FTP服务器

Connected to192.168.4.5(192.168.4.5).

220(vsFTPd2.2.2)

Name(192.168.4.5:root):lisi//以FTP本地用户登录

331Please specify the password.

Password://验证口令

230Login successful.

Remote system type is UNIX.

Using binary mode to transfer files.

ftp>pwd//查看起始目录

257"/"//已经位于FTP根目录

ftp>ls//实际还是在lisi的家目录

227Entering PassiveMode(192,168,4,5,239,27).

150Here comes the directory listing.

-rw-r--r--150750847884Jan1308:01install.log

-rw-r--r--10016Jan1307:01lisi.txt

226Directory send OK.

ftp>cd/etc//尝试切换到其他目录失败

550Failed to change directory.

ftp>quit//断开连接

221Goodbye.

步骤二:使用FTP黑白名单

1)测试FTP黑名单文件/etc/vsftpd/ftpusers

添加一个用户mike,并设好密码:

[root@svr5~]# useradd  mike

[root@svr5~]# echo1234567|passwd--stdin  mike

更改用户 mike 的密码 。

passwd: 所有的身份验证令牌已经成功更新。

将用户mike加入FTP黑名单:

[root@svr5~]#vim/etc/vsftpd/ftpusers

....

mike//添加到文件末尾,不要有多余空格

从客户机访问此FTP,尝试以mike登录时将会失败:

[root@pc205~]# ftp192.168.4.5//连接FTP服务器

Connected to192.168.4.5(192.168.4.5).

220(vsFTPd2.2.2)

Name(192.168.4.5:root):mike//尝试以用户mike验证

331Please specify the password.

Password://输入正确口令

530Login incorrect.

Login failed.//因在黑名单内,此用户被拒绝登录

ftp>quit//断开连接

221Goodbye.

2)将用户列表/etc/vsftpd/user_list作为FTP白名单

修改vsftpd服务配置,确认userlist_enable=YES,并在其下方添加一行新的配置语句userlist_deny=NO,然后重载服务:

[root@svr5~]#vim/etc/vsftpd/vsftpd.conf

....

userlist_enable=YES

userlist_deny=NO//仅允许列表中的用户

[root@svr5~]# service  vsftpd  reload

关闭 vsftpd:[确定]

为 vsftpd 启动 vsftpd:[确定]

然后打开文件 /etc/vsftpd/user_list,清空原有记录,添加用户lisi、mike:

[root@svr5~]#vim/etc/vsftpd/user_list//不要有多余空格

lisi

mike

3)测试FTP白名单限制效果

以匿名用户ftp访问FTP服务器时,因不在白名单中,登录将会被拒绝:

[root@pc205~]# ftp192.168.4.5

Connected to192.168.4.5(192.168.4.5).

220(vsFTPd2.2.2)

Name(192.168.4.5:root):ftp//匿名登录

530Permission denied.//用户ftp不在白名单内,不接受验证

Login failed.

ftp>quit

221Goodbye.

以用户lisi访问FTP服务器时,此用户在白名单中且不在ftpusers黑名单中,因此是可以正常登录的:

[root@pc205~]# ftp192.168.4.5

Connected to192.168.4.5(192.168.4.5).

220(vsFTPd2.2.2)

Name(192.168.4.5:root):lisi//以用户lisi登录

331Please specify the password.

Password://输入正确口令

230Login successful.//登入成功

Remote system type is UNIX.

Using binary mode to transfer files.

ftp>quit

221Goodbye.

以用户mike访问FTP服务器时,此用户虽然在白名单中,但同时也在ftpuser黑名单中,因此尽管接受了用户名,但在提交密码后会被拒绝:

[root@pc205~]# ftp192.168.4.5

Connected to192.168.4.5(192.168.4.5).

220(vsFTPd2.2.2)

Name(192.168.4.5:root):mike//以用户mike登录

331Please specify the password.

Password://输入正确口令

530Login incorrect.

Login failed.//登入失败

ftp>quit

221Goodbye.

修改vsftpd服务器的白名单文件,将匿名用户ftp、anonymous加入:

[root@svr5~]#vim/etc/vsftpd/user_list//不要有多余空格

lisi

mike

ftp

anonymous

再次从客户端匿名访问FTP服务器,将可以成功登入:

[root@pc205~]# ftp192.168.4.5

Connected to192.168.4.5(192.168.4.5).

220(vsFTPd2.2.2)

Name(192.168.4.5:root):ftp//匿名登录

331Please specify the password.

Password:

230Login successful.//因已在服务器白名单中,顺利登入

Remote system type is UNIX.

Using binary mode to transfer files.

ftp>quit

221Goodbye.

五、FTP并发及带宽限制


3.1 问题

沿用练习一,通过调整FTP服务端配置,实现以下目标:

最多允许100个FTP并发连接

每个IP地址最多允许2个并发连接

匿名访问时,将速度限制为 50KB/s

用户登录访问时,将速度限制为 500KB/s

在客户机上通过ftp或wget验证上述限制

3.2 方案

关于vsftpd服务器的并发及带宽限制,主要用到以下配置参数:

max_clients:限制并发的客户端个数

max_per_ip:限制每个客户机IP的并发连接数

anon_max_rate:匿名最大速度(字节/秒)

local_max_rate:验证用户最大速率(字节/秒)

3.3 步骤

实现此案例需要按照如下步骤进行。

步骤一:限制并发连接数

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~]# ftp192.168.4.5

Connected to192.168.4.5(192.168.4.5).

421There 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~]# ddif=/dev/zero  of=/var/ftp/pub/anon.tgz  bs=1M  count=100

....

[root@svr5~]# ddif=/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--.1root root 100M1月1515:12/home/lisi/local.tgz

-rw-r--r--.1root root 100M1月1515: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-1515: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,40849.9K/seta(英国中部时间)34m 55s

!!!! 必要时,可按Ctrl+c键中止下载,不需要等全部下完

以用户lisi访问下载测试文件local.tgz,速度稳定在500KB/s左右:

[root@pc205~]# wget  ftp://lisi:1234567@192.168.4.5/local.tgz

--2015-01-1515: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,352503K/seta(英国中部时间)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-1515: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,03228.2M/seta(英国中部时100%[=============================================================>]104,857,60031.8M/sin3.1s

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

资料链接:完全指南:如何在 CentOS 7 中安装、配置和安全加固 FTP 服务

推荐阅读更多精彩内容