ftp介绍
文件传输协议(File Transfer Protocol,FTP),基于该协议FTP客户端与服务端可以实现共享文件、上传文件、下载文件。 FTP 基于TCP协议生成一个虚拟的连接,用户可以通过客户端向FTP服务器端上传、下载、删除文件,FTP服务器端可以同时提供给多人共享使用。
FTP服务是Client/Server(简称C/S)模式,基于FTP协议实现FTP文件对外共享及传输的软件称之为FTP服务器源端,客户端程序基于FTP协议,则称之为FTP客户端,FTP客户端可以向FTP服务器上传、下载文件。
FTP Server
作用:提供文件共享服务,实现上传下载
端口:
21号,建立tcp连接 默认端口
20号:传输数据
ftp主动模式
ftp主动模式:客户端开启一个端口N(>1023)向服务端的21端口,建立连接,同时开启一个N+1,告诉服务端,我监听的是N+1端口,服务端接到请求之后,用自己的20端口连接到客户端的N+1端口,进行传输
21端口建立连接
20端口传输数据
ftp被动模式
ftp被动模式:客户端同时开启两个端口(1024,1025),一个端口(1024)跟服务端的21端口建立连接,并请求,大哥,我连上了,你再开一个端口呗。服务端接到请求之后,随机会开启一个端口(1027)并告诉客户端我开启的是1027端口,客户端用另一个端口(1025)与服务端的(1027)端口进行连接,传输数据
vsftp服务器介绍
非常安全的FTP服务进程(Very Secure FTP daemon,Vsftpd),Vsftpd在Unix/Linux发行版中最主流的FTP服务器程序,优点小巧轻快,安全易用、稳定高效、满足企业跨部门、多用户的使用(1000用户)等。
vsftp配置
准备两台机器一台服务端,一台客户端
都需要关闭防火墙和selinx
服务端:192.168.126.141
客户端:192.168.126.142
服务端server
下载并开启vsftp服务
[root@server ~]# yum -y install vsftpd
[root@server ~]# systemctl start vsftpd
编写测试文件
FTP共享目录是 /var/ftp/pub/
[root@server ~]# vim /var/ftp/pub/txt1
hello xx
修改共享目录的属组与所属组
[root@server ~]# vim /var/ftp/pub/txt1
[root@server ~]# cd /var/ftp
[root@server ftp]# chown ftp.ftp pub/ -R
[root@server ftp]# ll
总用量 0
drwxr-xr-x 2 ftp ftp 18 8月 17 14:01 pub
编辑配置文件
29行注释取消掉
重启服务 [root@server ~]# systemctl restart vsftpd
FTP clinet(客户端)
安装客户端
[root@web ~]# yum -y install lftp
链接服务端,查看测试文件txt1
下载server端里的测试文件到client
lftp 192.168.126.141:/pub> get txt1
9 bytes transferred
lftp 192.168.126.141:/pub> exit
[root@web ~]# ls
anaconda-ks.cfg nginx-1.24.0.tar.gz shell_set.sh txt1
[root@web ~]# cat txt1
hello xx
你在客户端哪个目录进入服务端,下载的文件就会在哪个目录里
也可以创建目录
[root@web ~]# lftp 192.168.126.141
lftp 192.168.126.141:~> cd pub/
lftp 192.168.126.141:/pub> mkdir dir
mkdir 成功, 建立 `dir'
lftp 192.168.126.141:/pub> ls
drwx------ 2 14 50 6 Aug 17 06:22 dir
-rw-r--r-- 1 14 50 9 Aug 17 06:01 txt1
在服务端查看
[root@server ~]# ls /var/ftp/pub/
dir txt1
上传文件到共享目录
[root@web ~]# touch text1
[root@web ~]# vim text1
shangchuan
[root@web ~]# lftp 192.168.126.141
lftp 192.168.126.141:~> cd pub/
lftp 192.168.126.141:/pub> put /root/text1
12 bytes transferred
lftp 192.168.126.141:/pub> ls
drwx------ 2 14 50 6 Aug 17 06:22 dir
-rw------- 1 14 50 12 Aug 17 06:27 text1
-rw-r--r-- 1 14 50 9 Aug 17 06:01 txt1
ftp配置本地用户登录
1.创建测试用户
创建用户zhangsan、lisi 密码都是123456
[root@server ~]# useradd zhangsan
[root@server ~]# useradd lisi
[root@server ~]# echo '123456' | passwd --stdin zhangsan
更改用户 zhangsan 的密码 。
passwd:所有的身份验证令牌已经成功更新。
[root@server ~]# echo '123456' | passwd --stdin lisi
更改用户 lisi 的密码 。
passwd:所有的身份验证令牌已经成功更新。
echo '123456' | grep --stdin zhangsan 无交互式设置用户密码
2.配置ftp配置文件
重启服务
3.客户端操作
[root@web ~]# lftp 192.168.126.141 -u zhangsan
口令:
lftp zhangsan@192.168.126.141:~> ls
lftp zhangsan@192.168.126.141:~> mkdir aaa
mkdir 成功, 建立 `aaa'
lftp zhangsan@192.168.126.141:~> ls
drwxr-xr-x 2 1001 1001 6 Aug 17 06:44 aaa
lftp zhangsan@192.168.126.141:~> put /root/txt1
9 bytes transferred
lftp zhangsan@192.168.126.141:~> ls
drwxr-xr-x 2 1001 1001 6 Aug 17 06:44 aaa
-rw-r--r-- 1 1001 1001 9 Aug 17 06:44 txt1
在服务端查看
[root@server ~]# vim /etc/vsftpd/vsftpd.conf
[root@server ~]# systemctl restart vsftpd
[root@server ~]# cd /home/zhangsan/
[root@server zhangsan]# ls
aaa txt1
[root@server zhangsan]# ll
总用量 4
drwxr-xr-x 2 zhangsan zhangsan 6 8月 17 14:44 aaa
-rw-r--r-- 1 zhangsan zhangsan 9 8月 17 14:44 txt1
完成