FTP 是 File Transfer Protocol (文件传输协议)的英文简称,而中文简称为“文传协议”用于 Internet 上的控制文件的双向传输。同时,它也是一个应用程序(Applocation)用户可以通过它把自己的 PC 机与世界各地所有运行 FTP 协议的服务器相连,访问服务器上的大量程序和信息。 FTP 的主要作用,就是让用户连接上一个远程计算机(这些计算机上运行着 FTP 服务器程序)查看远程计算机有哪些文件,然后把文件从远程计算机上拷贝到本地计算机。或把本地计算机的文件送到远程计算机去。FTP 用得比 NFS 更多。
安装pure-ftpd
在 centos 或者 redhat linux 上有自带的 ftp 软件叫做 vsftp ,但 pure-ftpd 比 vsftp 配置起来更加灵活。
1.下载软件
pure-ftpd 官网
1 2
| [root@192 ~] [root@192 src]
|
2.安装 pure-ftpd
1 2
| [root@192 src] [root@192 src]
|
1 2 3 4 5 6 7 8
| ./configure \ --prefix=/usr/local/pureftpd \ --without-inetd \ --with-altlog \ --with-puredb \ --with-throttling \ --with-peruserlimits \ --with-tls
|
编译报错
1 2 3
| configure: error: in `/usr/local/src/pure-ftpd-1.0.42': configure: error: no acceptable C compiler found in $PATH See `config.log' for more details
|
解决办法:
编译报错:
1
| configure: error: OpenSSL headers not found.
|
解决办法:
1
| yum install -y openssl-devel
|
1
| [root@192 pure-ftpd-1.0.42]
|
3.配置 pure-ftpd
1 2 3 4 5
| [root@192 pure-ftpd-1.0.42] [root@192 configuration-file] [root@192 configuration-file] [root@192 configuration-file] [root@192 configuration-file]
|
在启动 pure-ftpd 之前需要先修改配置文件,配置文件为 /usr/local/pureftpd/etc/pure-ftpd.conf,把自带配置删除
1 2
| [root@192 configuration-file] [root@192 configuration-file]
|
加入内容:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28
| ChrootEveryone yes BrokenClientsCompatibility no MaxClientsNumber 50 Daemonize yes MaxClientsPerIP 8 VerboseLog no DisplayDotFiles yes AnonymousOnly no NoAnonymous no SyslogFacility ftp DontResolve yes MaxIdleTime 15 PureDB /usr/local/pureftpd/etc/pureftpd.pdb LimitRecursion 3136 8 AnonymousCanCreateDirs no MaxLoad 4 AntiWarez yes Umask 133:022 MinUID 100 AllowUserFXP no AllowAnonymousFXP no ProhibitDotFilesWrite no ProhibitDotFilesRead no AutoRename no AnonymousCantUpload no PIDFile /usr/local/pureftpd/var/run/pure-ftpd.pid MaxDiskUsage 99 CustomerProof yes
|
4.启动 pure-ftpd
1 2
| [root@192 configuration-file] [root@192 pureftpd]
|
如果启动成功,会显示一行长长的以 Running 开头的信息,否则那就是错误信息。重启会比较麻烦一些,重启可以使用下面的命令来实现:
1 2
| [root@192 pureftpd] [root@192 pureftpd]
|
5.建立帐号
pure-ftpd 使用的帐号并非 linux 系统帐号,而是虚拟帐号。因为这样做比较安全。
1 2 3 4 5 6
| [root@192 ~] [root@192 ~] [root@192 ~] [root@192 ~] Password: Enter it again:
|
其中,-u 将虚拟用户 ftp_user1 与系统用户 www 关联在一起,也就是说使用 ftp_user1 帐号登录 ftp 后,会以 www 的身份来读取文件或下载文件。 -d 后边的目录为 ftp_user1 账户的家目录,这样可以使 ftp_user1 只能访问其家目录 /data/www/ 。到这里还有最关键的一部,就是创建用户信息数据库文件:
pure-pw 还可以列出当前的 ftp 帐号,当然也可以删除某个帐号。再创建一个帐号:
1 2 3 4
| [root@192 ~] Password: Enter it again: [root@192 ~]
|
列出当前帐号:
1 2 3
| [root@192 ~] ftp_user1 /data/www/./ ftp_user2 /tmp/./
|
删除帐号的命令为:
6.测试 pure-ftpd
测试需要的工具叫做 lftp ,先安装
测试:
1 2
| [root@192 ~] [root@192 ~]
|
注:登录以后可以用 get 下载,put 上传。也可以用 ftp + ip 登录。
登录后,使用 ls 命令可以列出当前目录都有什么软件。使用 lftp 工具是为了方便在 linux 系统里测试。最好的测试方法是,在 windows 机器里安装个 ftp 客户端软件(推荐 filezilla-client),然后去远程连接测试。
下面使用 yum 安装 pure-ftpd 的方法。
1 2 3 4 5 6
| [root@192 ~] [root@192 ~] [root@192 ~] [root@192 ~] [root@192 ~] [root@192 ~]
|
创建 ftp 服务的目录
1 2
| [root@192 ~] [root@192 ~]
|
创建密码文件
列出用户
删除帐号
启动服务