FTP==file transfer protocol 文件传输协议
通过ftp协议进行文件的上传和下载,它和http不太一样,http只提供让大家去访问的。FTP不仅在WINDOWS上还是LINUX上都可以搭建这个服务。
两种不同的软件: pure-ftpd vsftpd(系统自带)
pure-ftpd
它是一个非常非常轻便的搭建服务器的这么一个server,而且可以实现通过映射系统用户来实现登录,我们当然了提供用户的是一个虚拟用户,那么我们通过这人虚拟用户呢是可以登录ftp服务的,但是你用这个虚拟用户是不能登录
我们的服务器的。
服务端
## 下载源码包
[root@wy ~]# cd /usr/local/src
[root@wy src]# wget http://down.anxia.com/pure-ftpd-1.0.42.tar.gz
## 解压
[root@wy src]# tar zxvf pure-ftpd-1.0.42.tar.gz
## 编译安装
[root@wy src]# cd pure-ftpd-1.0.42
[root@wy pure-ftpd-1.0.42]# ./configure --prefix=/usr/local/pureftpd --without-inetd --with-altlog --with-puredb --with-throttling --with-peruserlimits --with-tls
[root@wy pure-ftpd-1.0.42]# make
[root@wy pure-ftpd-1.0.42]# make install
## 查看pureftpd目录
[root@wy pure-ftpd-1.0.42]# ls /usr/local/pureftpd/
bin sbin share
## 创建配置文件的所在路径
[root@wy pure-ftpd-1.0.42]# mkdir -p /usr/local/pureftpd/etc/
## 拷贝模板配置文件过来
[root@wy pure-ftpd-1.0.42]# cd configuration-file/
[root@wy configuration-file]# cp pure-ftpd.conf /usr/local/pureftpd/etc/pure-ftpd.conf
## 拷贝启动pure-ftpd文件,并修改权限
[root@wy configuration-file]# cp pure-config.pl /usr/local/pureftpd/sbin/
[root@wy configuration-file]# chmod 755 /usr/local/pureftpd/sbin/pure-config.pl
## 编辑配置文件(里面内容太多,也大部分注释掉了,先清空,重新配置)
[root@wy configuration-file]# vim /usr/local/pureftpd/etc/pure-ftpd.conf
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
解释说明:
PureDB /usr/local/pureftpd/etc/pureftpd.pdb 用户名和密码所存放那个文件的路径,这是一个密码库文件
MinUID 100 映射系统用户的时候uid不能小于100的
## 创建测试目录
[root@wy configuration-file]# mkdir /tmp/ftp
## 映射用户到php-fpm
[root@wy configuration-file]# chown -R php-fpm /tmp/ftp
## 添加用户
[root@wy configuration-file]# /usr/local/pureftpd/bin/pure-pw useradd ftpuser1 -uphp-fpm -d /tmp/ftp
解释说明:
/usr/local/pureftpd/bin/pure-pw 用来添加用户的命令
useradd ftpuser1 虚拟用户,也就是登录ftp服务的用户
-uphp-fpm 映射的系统用户
-d /tmp/ftp 共享的ftp目录
## 创建生成密码库文件并查看
[root@wy configuration-file]# /usr/local/pureftpd/bin/pure-pw mkdb
[root@wy configuration-file]# /usr/local/pureftpd/bin/pure-pw list
ftpuser1 /tmp/ftp/./
## 启动pure-ftpd
[root@wy configuration-file]# /usr/local/pureftpd/sbin/pure-config.pl /usr/local/pureftpd/etc/pure-ftpd.conf
Running: /usr/local/pureftpd/sbin/pure-ftpd -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
解释说明:
这条命令前面是启动文件,后面是配置文件
看到Running开头的信息才算启动成功
## 查看进程
[root@wy configuration-file]# ps aux|grep pure-ftpd
root 8747 0.0 0.0 138904 748 ? Ss 18:00 0:00 pure-ftpd (SERVER)
root 8750 0.0 0.0 103252 888 pts/0 S+ 18:10 0:00 grep pure-ftpd
## 查看端口(为了方便看到,先把nfs服务先停掉)
[root@wy configuration-file]# /etc/init.d/rpcbind stop
[root@wy configuration-file]# /etc/init.d/nfs stop
[root@wy configuration-file]# netstat -lnp|grep pure
tcp 0 0 0.0.0.0:21 0.0.0.0:* LISTEN 8747/pure-ftpd (SER
tcp 0 0 :::21 :::* LISTEN 8747/pure-ftpd (SER
客户端
## 安装lftp命令(测试需要使用的工具叫做lftp)
[root@y2 ~]# yum install -y lftp
## 登录
[root@y2 ~]# lftp ftpuser1@192.168.219.129
口令:
lftp ftpuser1@192.168.219.129:~> ls
drwxr-xr-x 2 501 0 4096 Nov 13 17:48 .
drwxr-xr-x 2 501 0 4096 Nov 13 17:48 ..
lftp ftpuser1@192.168.219.129:/> mkdir 123
mkdir 成功, 建立 `123'
lftp ftpuser1@192.168.219.129:/> ls
drwxr-xr-x 3 501 0 4096 Nov 13 18:22 .
drwxr-xr-x 3 501 0 4096 Nov 13 18:22 ..
drwxr-xr-x 2 501 php-fpm 4096 Nov 13 18:22 123
解释说明:
若客户端没有这个用户,它会显示数字(uid)
lftp ftpuser1@192.168.219.129:/> ?
!<shell-command> (commands) alias [<name> [<value>]]
bookmark [SUBCMD] cache [SUBCMD] cat [-b] <files>
cd <rdir> chmod [OPTS] mode file... close [-a]
[re]cls [opts] [path/][pattern] debug [<level>|off] [-o <file>] du [options] <dirs>
exit [<code>|bg] get [OPTS] <rfile> [-o <lfile>] glob [OPTS] <cmd> <args>
help [<cmd>] history -w file|-r file|-c|-l [cnt] jobs [-v]
kill all|<job_no> lcd <ldir> lftp [OPTS] <site>
ls [<args>] mget [OPTS] <files> mirror [OPTS] [remote [local]]
mkdir [-p] <dirs> module name [args] more <files>
mput [OPTS] <files> mrm <files> mv <file1> <file2>
[re]nlist [<args>] open [OPTS] <site> pget [OPTS] <rfile> [-o <lfile>]
put [OPTS] <lfile> [-o <rfile>] pwd [-p] queue [OPTS] [<cmd>]
quote <cmd> repeat [OPTS] [delay] [command] rm [-r] [-f] <files>
rmdir [-f] <dirs> scache [<session_no>] set [OPT] [<var> [<val>]]
site <site_cmd> source <file> torrent [-O <dir>] <file>
user <user|URL> [<pass>] version wait [<jobno>]
zcat <files> zmore <files>
解释说明:
lftp它里面有自己的命令
lftp ftpuser1@192.168.219.129:/> put 文件名 上传
lftp ftpuser1@192.168.219.129:/> get 文件名 下载
备注:
当然也可以使用ftp命令登录,跟lftp有点区别,ftp这样登录(yum install -y ftp):
[root@y2 ~]# ftp 192.168.219.129 // 后面只需跟ip
Connected to 192.168.219.129 (192.168.219.129).
220---------- Welcome to Pure-FTPd [privsep] [TLS] ----------
220-You are user number 1 of 50 allowed.
220-Local time is now 18:43. Server port: 21.
220-IPv6 connections are also welcome on this server.
220 You will be disconnected after 15 minutes of inactivity.
Name (192.168.219.129:root): ftpuser1
331 User ftpuser1 OK. Password required
Password:
230 OK. Current directory is /
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> ?
解释说明:
ftp 同样也有自己的命令,跟lftp的命令也是有些区别的
服务端
## 客户端创建了一个目录,可以查看共享目录
[root@wy configuration-file]# ls /tmp/ftp
123
## 查看ftp日志
[root@wy configuration-file]# tail /var/log/messages
## 在共享目录中创建一个文件
[root@wy configuration-file]# cd /tmp/ftp/
[root@wy ftp]# vim 12.txt
解释说明:
创建后可以去客户端查看,可能有延迟,一下看不到,可以先退出,再登录进行查看。
转载于:https://blog.51cto.com/warm51fun/1888134