FTP文件传输协议
FTP(File Transfer Protocol)文件传输协议,基于C/S架构,支持文件的上传和下载功能 FTP使用2个端口,都是基于TCP进行传输连接,分别是20和21 20端口为数据传输端口,上传和下载文件使用此端口 21端口为命令传输端口,客户端和服务端之间的命令交互使用此端口
工作模式
主动模式:Client向Server的20端口发送数据连接请求,服务器主动连接,然后传输文件数据 被动模式:Client向Server发送请求,Server随机开放一个端口和Client连接传输文件 [root@dns named]# netstat -tunpla|grep -w 21 tcp6 0 0 :::21 :::* LISTEN 4946/vsftpd tcp6 0 0 192.168.5.101:21 192.168.5.8:62972 ESTABLISHED 7208/vsftpd #命令传输端口 tcp6 0 0 192.168.5.101:18502 192.168.5.102:52025 TIME_WAIT - #数据传输端口 FTP支持三种认证模式: ➢ 匿名用户:任何人无需验证即可访问和使用ftp ➢ 本地用户:使用Linux系统本地用户认证来使用ftp ➢ 虚拟用户:通过创建虚拟用户来访问ftp,虚拟用户只用于ftp而不会登录Linux系统
wget工具下载文件
wget ftp://user1:123@192.168.5.101/1.txt
本地模式
1.安装好ftp后启动服务 [root@web01 ~]# systemctl restart vsftpd.service 2.创建用户 useradd user1 3.设置用户不能登录 4.给用户设置密码 5.客户端登录 [root@localhost ~]# lftp 192.168.5.101 lftp 192.168.5.101:~> user user1 Password: lftp user1@192.168.5.101:~> ls lftp user1@192.168.5.101:~> pwd ftp://user1@192.168.5.101/%2Fhome/user1 lftp user1@192.168.5.101:~> 6.上传,拉取文件 lftp 192.168.5.101:~> user user1 Password: lftp user1@192.168.5.101:~> put /etc/passwd 2546 bytes transferred lftp user1@192.168.5.101:~> exit lftp user1@192.168.5.101:~> get passwd 2546 bytes transferred
匿名模式登录ftp
服务端修改配置文件参数 [root@dns ~]# cat /etc/vsftpd/vsftpd.conf |grep -v ^# anonymous_enable=YES 客户端登录 [root@dns2 ~]# ftp 192.168.5.101 Connected to 192.168.5.101 (192.168.5.101). 220 (vsFTPd 3.0.3) Name (192.168.5.101 anonymous 331 Please specify the password. Password: 230 Login successful. Remote system type is UNIX. Using binary mode to transfer files. #客户端匿名登录之后的目录为/var/ftp/pub [root@web01 user1]# cat /etc/passwd|grep ftp ftp14FTP User:/var/ftp:/sbin/nologin [root@web01 user1]# ls /var/ftp/ pub
匿名上传ftp
匿名上传拒绝 [root@localhost ~]# lftp 192.168.5.101 lftp 192.168.5.101:~> ls drwxr-xr-x 2 0 0 6 Nov 16 2020 pub lftp 192.168.5.101:/> put passwd put: Access failed: 550 Permission denied. (passwd) 1.修改文件夹权限 不能将根目录权限改为777 [root@web01 ~]# chmod 777 /var/ftp/pub 2.修改配置文件 [root@web01 pub]# cat /etc/vsftpd/vsftpd.conf |grep -v ^# anonymous_enable=YES anon_upload_enable=YES 2.进入pub目录上传文件 lftp 192.168.5.101:/> cd pub lftp 192.168.5.101:/pub> put passwd 2546 bytes transferred lftp 192.168.5.101:/pub>
匿名删除文件
lftp 192.168.5.101:/pub> rm passwd rm: Access failed: 550 Permission denied. (passwd) lftp 192.168.5.101:/pub> 1.配置文件中添加行 anon_mkdir_write_enable=YES ---可以创建文件夹 anon_other_write_enable=YES ---可以删除文件 2.测试 lftp 192.168.5.101:/pub> mkdir test mkdir ok, `test' created lftp 192.168.5.101:/pub> ls -rw------- 1 14 50 2546 Nov 21 10:54 passwd drwx------ 2 14 50 6 Nov 21 13:58 test lftp 192.168.5.101:/pub> rm passwd rm ok, `passwd' removed lftp 192.168.5.101:/pub> rm -fr test/ rm ok, `test/' removed lftp 192.168.5.101:/pub> ls
修改本地用户和匿名登录的位置
配置文件加入这段 cat /etc/vsftpd/vsftpd.conf |grep -v ^# anon_root=/mnt local_root=/mnt 修改目录的权限 [root@web01 ~]# chmod 777 /mnt/data/
下载ftp里面的文件
修改umask值可以下载自己上传的文件 anon_umask=022 [root@localhost ~]# lftp 192.168.5.101 lftp 192.168.5.101:~> cd data/ lftp 192.168.5.101:/data> get passwd 2546 bytes transferred lftp 192.168.5.101:/data> 本地用户参考匿名用户
仅允许user1登录
配置文件中加上 userlist_enable=YES userlist_deny=NO 在文件中加入用户名 [root@dns vsftpd]# cat /etc/vsftpd/user_list # vsftpd userlist # If userlist_deny=NO, only allow users in this file # If userlist_deny=YES (default), never allow users in this file, and # do not even prompt for a password. # Note that the default vsftpd pam config also checks /etc/vsftpd/ftpusers # for users that are denied. root bin daemon adm lp sync shutdown halt mail news uucp operator games nobody user1 不在ftpusers文件中 在user_list文件中才能登录
允许用户跳出和不能跳出根目录
添加配置文件 chroot_local_user=YES ###所有人都不能跳出根目录 FTP根目录 chroot_list_enable=YES ###如果需要指定用户可以跳出FTP根目录,则需要开启以下内容 chroot_list_file=/etc/vsftpd/chroot_list [root@dns vsftpd]# cat chroot_list 仅允许user1可以跳出目录 user1
vsftp配置虚拟用户
[root@web01 ~]# cd /usr/share/doc/vsftpd/EXAMPLE/VIRTUAL_USERS [root@node4 ~]# vim /etc/vsftpd/vsftpd.conf guest_enable=YES guest_username=vuser666 allow_writeable_chroot=YES #允许用户在其 chroot 目录中进行写操作 anon_upload_enable=YES #允许匿名用户上传文件 [root@node4 vsftpd]# vim /etc/vsftpd/logins.txt zhangsan redhat lisi redhat [root@node4 vsftpd]# useradd -d /data/upload/ vuser666 [root@node4 ~]# chmod 755 /data/upload/ [root@node4 vsftpd]# db_load -T -t hash -f /etc/vsftpd/logins.txt /etc/vsftpd/user.db [root@node4 ~]# vim /etc/pam.d/vsftpd ####该文件仅保留两行,其他均删除 #%PAM-1.0 auth required pam_userdb.so db=/etc/vsftpd/user account required pam_userdb.so db=/etc/vsftpd/user [root@node4 ~]# lftp 192.168.6.4 lftp 192.168.6.4:~> user zhangsan Password: lftp zhangsan@192.168.6.4:~> cd redhat/ lftp zhangsan@192.168.6.4:/redhat> ls -rw------- 1 1002 1002 1025 Jul 25 19:04 group.1 -rw-r--r-- 1 0 0 2689 Jul 25 18:31 passwd lftp zhangsan@192.168.6.4:/redhat> put /etc/profile 2123 bytes transferred lftp zhangsan@192.168.6.4:/redhat> exit 上传的文件在vuser666的家目录中
链接:https://www.cnblogs.com/cloudwangsa/p/18563731
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。
举报投诉
-
FTP
+关注
关注
0文章
112浏览量
40889 -
传输协议
+关注
关注
0文章
79浏览量
11560 -
文件传输
+关注
关注
0文章
37浏览量
8365
原文标题:FTP
文章出处:【微信号:magedu-Linux,微信公众号:马哥Linux运维】欢迎添加关注!文章转载请注明出处。
发布评论请先 登录
相关推荐
如何高效实现文件传输
服务器提供文件传输功能,需要将磁盘上的文件读取出来,通过网络协议发送到客户端。如果需要你自己编码实现这个文件传输功能,你会怎么实现呢?
发表于 08-01 16:16
•653次阅读

第35章 FTP文件传输协议基础知识
转帖 本章节为大家讲解FTP(File Transfer Protocol,文件传输协议)的基础知识,方便后面章节的实战操作。(本章的知识点主要整理自网络)35.1 初学者重要提示35.2 F
发表于 12-14 11:29
RK3399网络工具应用-SSH网络登入、FTP文件传输
RK3399网络工具应用-SSH网络登入、FTP文件传输本文硬件平台以飞凌嵌入式OK3399-C开发板为基础进行讲解,其它RK3399产品,由于各个厂家设置不同会有所差异,请参考使用。飞凌
发表于 02-21 10:25
实现CFDP协议延时NAK模式文件传输
CFDP协议,其数据丢失与错误检测重传机制可以有效解决该问题。本文结合航天工程经验搭建空间数据管理系统,采用软硬件协同机制在空间数据传输链路中设计实现了CFDP协议延时NAK模式
发表于 11-05 11:33
•2次下载

Linux教程之文件传输FTP的工作原理和FTP的安装与配置方法
本文档的主要内容详细介绍的是Linux教程之文件传输FTP的工作原理和FTP的安装与配置方法。文件传输是指用户通过网络从远程计算机上下载或上
发表于 11-06 17:33
•15次下载

中文应用笔记《利用 MPLAB® Harmony v3 TCP/IP 协议栈在SAM E54 MCU上实现文件传输协议》
利用 MPLAB Harmony v3 TCP/IP 协议栈 在SAM E54 MCU上 实现文件传输协议 简介 文件传输协议(File T

FTP连接被重置问题的解决方法与技巧!FTP服务器连接修复!
FTP连接被重置问题的解决方法与技巧!FTP服务器连接修复! FTP(文件传输协议)是用于在计算机网络环境中进行
评论