FTP是File Transfer Protocol(文件传输协议)的英文简称,而中文简称为 “文传协议” 用于Internet上的控制文件的双向传输。同时,它也是一个应用程序(Application)。用户可以通过它把自己的PC机与世界各地所有运行FTP协议的服务器相连,访问服务器上的大量程序和信息。FTP的主要作用,就是让用户连接上一个远程计算机(这些计算机上运行着FTP服务器程序)查看远程计算机有哪些文件,然后把文件从远程计算机上拷到本地计算机,或把本地计算机的文件送到远程计算机去。FTP用的比NFS更多,所以请你一定要熟练配置它。
安装pure-ftpd
在CentOS或者RedHat Linux上有自带的ftp软件叫做vsftp,这里使用pure-ftpd搭建ftp服务器,因为这个软件比vsftp配置起来更加灵活和安全。
1. 下载软件
pure-ftpd 官网是 http://www.pureftpd.org/project/pure-ftpd。
2. 安装软件
1 | cd /usr/local/src/ |
配置pure-ftpd
1. 修改配置文件
1 | cd configuration-file |
把配置文件修改为:
1 | ChrootEveryone yes |
2. 启动pure-ftpd
1 | /usr/local/pureftpd/sbin/pure-config.pl /usr/local/pureftpd/etc/pure-ftpd.conf |
如果是启动成功,会出现:
1 | Running: /usr/local/pureftpd/sbin/pure-ftpd -A -c50 -B -C8 -D -fftp -H -I15 -lpuredb:/usr/local/pureftpd/etc/pureftpd.pdb -L3136:8 -m4 -s -U133:022 -u100 -g/usr/local/pureftpd/var/run/pure-ftpd.pid -k99 -Z |
如果失败需要重启的话,可以使用下面的命令来实现。
1 | killall purerf-ftpd |
3. 建立账号
1 | mkdir /tmp/ftp |
其中,-u将虚拟用户ftp_user1与系统用户uesr3关联在一起,也就是说使用ftp_user1账号登陆ftp后,会以uesr3的身份来读取文件或下载文件。-d后边的目录为ftp_user1账户的家目录,这样可以使ftp_user1只能访问其家目录/tmp/ftp.到这里还未完成,还有最关键的一步,就是创建用户信息数据库文件:
1 | /usr/local/pureftpd/bin/pure-pw mkdb |
pure-pw还可以列出当前的ftp账号,当然也可以删除某个账号, 我们再创建一个账号:
1 | /usr/local/pureftpd/bin/pure-pw useradd ftp_user2 -uuser3 -d /tmp/ftp |
列出当前账号:
1 | /usr/local/pureftpd/bin/pure-pw list |
删除账号的命令为:
1 | /usr/local/pureftpd/bin/pure-pw userdel ftp_user2 |
4. 测试pure-ftpd
测试需要使用的工具叫做lftp, 先安装一下它:
1 | yum install -y lftp |
测试:
1 |
|
注意:在登录lftp后可以使用的命令与在shell中是不一样的,通过?可以查询:
1 | lftp ftpuser1@192.168.189.131:~> ? |
下载文件使用get命令,会自动下载到当前目录;上传当前目录的文件可以用put命令。
1 | lftp ftpuser1@192.168.189.131:/> get a.txt |
在linux下还有一个测试工具是ftp,也需要通过yum安装。在windows可以使用filezilla软件测试。