Linux利用FTP服务传输文件

这篇具有很好参考价值的文章主要介绍了Linux利用FTP服务传输文件。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

一、FTP协议

1.FTP协议简介

2.FTP文件传输过程

二、Linux系统配置FTP协议实现文件传输

实例1:匿名用户

实例2:本地用户访问

扩充修改配置: 


一、FTP协议

1.FTP协议简介

        与大多数 Internet服务一样,FTP也是一个c/s架构。用户通过一个支持FTP协议的客户机程序,连接到在远程主机上的FTP服务器程序。用户通过客户机程序向服务器程序发出命令,服务器程序执行用户所发出的命令,并将执行的结果返回到客户机。比如说,用户发出一条命令,要求服务器向用户传送某一个文件的一份拷贝,服务器会响应这条命令,将指定文件送至用户的机器上。客户机程序代表用户接收到这个文件,将其存放在用户目录中。 

2.FTP文件传输过程

FTP服务器默认使用TCP协议的20、21端口与客户端进行通信

  • 20端口用于建立数据连接,并传输文件数据。
  • 21端口用于建立控制连接,并传输FTP控制命令。

FTP文件传输的两种模式

主动模式

  • 客户端先与服务器建立TCP连接
  • 客户端先向服务器发送FTP控制指令
  • 服务器主动从20号端口发送数据给客户端

Linux利用FTP服务传输文件

被动模式

  • 客户端先与服务器建立TCP连接
  • 客户端先向服务器发送FTP控制指令
  • 服务器先等客户端开放一个端口连接,再通过端口将数据传输给客户端

 Linux利用FTP服务传输文件

二、Linux系统配置FTP协议实现文件传输

实例1:匿名用户

1.首先安装在Linux系统中安装ftp软件,找到配置文件并备份。

/安装vsftpd
[root@localhost ~]#yum install -y vsftpd

//备份配置文件
[root@localhost ~]#cd /etc/vsftpd
[root@localhost vsftpd]#ls
ftpusers  user_list  vsftpd.conf  vsftpd_conf_migrate.sh
[root@localhost vsftpd]#cp vsftpd.conf vsftpd.conf.bak

2.修改配置文件使匿名用户访问ftp服务(最大权限)。

关键修改字段解读

anonymous_enable=YES 开启匿名用户访问(默认已开启)
write_enable=YES 开放服务器的写权限(若要上传,必须开启,默认已开启)
anon_umansk=022 设置匿名用户所上传数据的权限掩码(反掩码)
anon_upload_enable=YES 允许匿名用户上传文件(默认已注释,需取消注释)
anon_mkdir_write_enable=YES 允许匿名用户创建(上传)目录(默认已注释,需取消注释)
anon_other_write_enable=YES 允许删除、重命名、覆盖等操作(需添加)
//修改配置文件,这里标注了行号,只展示关键配置的字段
 [root@localhost vsftpd]#vim /etc/vsftpd/vsftpd.conf

 12 anonymous_enable=YES    -- 开启匿名用户访问(默认已开启)
 13 #
 14 # Uncomment this to allow local users to log in.
 15 # When SELinux is enforcing check for SE bool ftp_home_dir
 16 local_enable=YES
 17 #
 18 # Uncomment this to enable any form of FTP write command.
 19 write_enable=YES      --开放服务器的写权限(若要上传,必须开启,默认已开启)
 20 #
 21 # Default umask for local users is 077. You may wish to change this to 022,
 22 # if your users expect that (022 is used by most other ftpd's)
 23 local_umask=022
 24 anon_umask=022       --设置匿名用户所上传数据的权限掩码(反掩码)
 25 #
 26 # Uncomment this to allow the anonymous FTP user to upload files. This only
 27 # has an effect if the above global write enable is activated. Also, you wil    l
 28 # obviously need to create a directory writable by the FTP user.
 29 # When SELinux is enforcing check for SE bool allow_ftpd_anon_write, allow_f    tpd_full_access
 30 anon_upload_enable=YES     --允许匿名用户上传文件(默认已注释,需取消注释)
 31 #
 32 # Uncomment this if you want the anonymous FTP user to be able to create
 33 # new directories.
 34 anon_mkdir_write_enable=YES   --允许匿名用户创建(上传)目录(默认已注释,需取消注释)
 35 anon_other_write_enable=YES   --允许删除、重命名、覆盖等操作(需添加)

 3.赋予匿名用户目录最高权限,关闭防火墙和selinux,开启服务并检验。

        匿名用户访问ftp服务器的默认目录为/var/ftp,此目录下自带一个pub目录可以放用于传输的文件(也可以自行创建),需要赋予权限才能实现文件的传输。

[root@localhost vsftpd]#cd /var/ftp/
[root@localhost ftp]#ls
pub
[root@localhost ftp]#chmod 777 pub
[root@localhost ftp]#systemctl stop firewalld
[root@localhost ftp]#setenforce 0

[root@localhost ftp]#systemctl start vsftpd

[root@localhost ftp]#ss -nltp |grep ftp
LISTEN     0      32        [::]:21                    [::]:*                   users:(("vsftpd",pid=59399,fd=4))

4.在ftp服务器和windows客户端测试目录下新建文件用于测试。

linux系统ftp服务端:切换到pub目录,新建ftptest文件

[root@localhost ~]#cd /var/ftp/pub/
[root@localhost pub]#touch ftptest

windows客户端:在桌面新建Test文件夹,创建hello文件

Linux利用FTP服务传输文件

5.使用windows客户端测试访问上一个配置的FTP服务器,完成文件相互传输。

Linux利用FTP服务传输文件

输入get ftptest后,文件夹里获取到了服务端的ftptest

Linux利用FTP服务传输文件

 输入put hello.txt后,服务端获取到了hello.txt文件

Linux利用FTP服务传输文件

实例2:本地用户访问

        设置本地用户验证访问ftp,并禁止切换到ftp以外的目录(客户端默认登录的根目录为本地用户的家目录)

1.安装等操作(与实例1相同)

2.修改配置文件

关键修改字段解读

local_enable=YES 启用本地用户(默认已开启)
anonymous_enable=NO 关闭匿名用户访问(需要修改)
write_enable=YES 开放服务器的写权限(若要上传,必须开启,默认已开启)
local_umask=077 可设置仅宿主用户(即访问ftp服务器的本地用户)拥有被上传的文件的权限(反掩码)(需要修改)
chroot_local_user=YES 将访问禁锢在用户的宿主目录中(保证安全性,禁止切换到其他目录,需要添加)
allow_writeable_chroot=YES 允许被限制的用户主目录具有写权限(需要添加)
//修改配置文件,这里标注了行号,只展示关键配置的字段
[root@localhost ~]#vim /etc/vsftpd/vsftpd.conf

 12 anonymous_enable=NO     --关闭匿名用户访问
 13 #
 14 # Uncomment this to allow local users to log in.
 15 # When SELinux is enforcing check for SE bool ftp_home_dir
 16 local_enable=YES     --启用本地用户
 17 #
 18 # Uncomment this to enable any form of FTP write command.
 19 write_enable=YES        --开放服务器的写权限(若要上传,必须开启,默认已开启)
 20 chroot_local_user=YES       --将访问禁锢在用户的宿主目录中(保证安全性,禁止切换到其他目录,需要添加)
 21 allow_writeable_chroot=YES    --允许被限制的用户主目录具有写权限(需要添加)
 22 #
 23 # Default umask for local users is 077. You may wish to change this to 022,
 24 # if your users expect that (022 is used by most other ftpd's)
 25 local_umask=077    --可设置仅宿主用户(即访问ftp服务器的本地用户)拥有被上传的文件的权限(反掩码)(需要修改)

3.重启服务使修改过的配置生效,关闭防火墙和selinux(实例1中已关闭)

[root@localhost ~]#systemctl restart vsftpd

4.新建本地用户zhangsan,并在其家目录创建文件,用于测试客户端通过本地用户访问

[root@localhost ~]#useradd zhangsan
[root@localhost ~]#passwd zhangsan
更改用户 zhangsan 的密码 。
新的 密码:
重新输入新的 密码:
passwd:所有的身份验证令牌已经成功更新。
[root@localhost ~]#cd /home/zhangsan
[root@localhost zhangsan]#touch localtest
[root@localhost zhangsan]#ls
localtest

5.windows客户端本地用户访问,实现传输文件

Linux利用FTP服务传输文件

 输入get localtest后,文件夹里获取到了zhangsan家目录的localtest文件 

Linux利用FTP服务传输文件

输入put hello.txt后,服务端zhangsan家目录获取到了hello.txt文件

Linux利用FTP服务传输文件

扩充修改配置: 

修改匿名用户、本地用户登录的默认根目录
anon_root=/var/.../...            anon_root 针对匿名用户
local_root=/var/.../...             local_root 针对系统用户

使用user_list 用户列表文件限制ftp访问的用户
vim /etc/vsftpd/user_list
添加用户名(如zhangsan)


userlist_enable=YES           设置黑名单,不允许user_list用户列表文件中的用户访问
userlist_deny=NO                设置白名单,仅允许user_list用户列表文件中的用户访问

(默认为YES,为黑名单,禁用)文章来源地址https://www.toymoban.com/news/detail-484331.html

到了这里,关于Linux利用FTP服务传输文件的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • FTP(File Transfer Protocol,文件传输协议)是一种用于在网络上传输文件的协议

    FTP(File Transfer Protocol,文件传输协议)是一种用于在网络上传输文件的协议。它允许用户通过网络连接到远程计算机,并在本地计算机和远程计算机之间进行文件传输。 FTP分为两个主要角色:客户端和服务器。客户端是发起文件传输请求的计算机,而服务器是存放文件和响

    2024年02月05日
    浏览(53)
  • FTP与HTTP: 哪种协议更适合大文件传输?

    随着互联网技术的发展,网络传输已成为了现代社会中不可或缺的一部分。无论是文本、图像、音频、视频等各种类型的数据,相应的传输协议也在不断地发展和更新。FTP(File Transfer Protocol)和HTTP(Hyper Text Transfer Protocol)是两种被广泛应用的协议,它们都在网络上进行数据

    2024年02月16日
    浏览(42)
  • FTP文件传输服务

    一、FTP协议概述 FTP(File Transfer Protocol,文件传输协议) 是 TCP/IP 协议组中的协议之一。 工作模式为“ FTP服务器 / FTP客户端 ”。 默认使用TCP端口中的 20和21这两个端口,其中20用于传输数据,21用于传输控制信息。 主要作用为:为用户提供上传和下载文件的服务 协议/应用程

    2024年02月16日
    浏览(39)
  • Linux如何用ftp传输文件【ftp命令】

    在Windows系统中, 可以用可视化的ftp来传输文件, 或者下在文件夹路径填入 ftp://222.200.177.152:1021/ 后输入用户名和密码即可连接至 FTP 服务器(内网)。 即IP地址+端口号。 可以用ftp 命令 注意是之间是空格: 例如 即IP地址 端口号 然后就是输入用户名和密码 用 查看文件。 到

    2024年02月07日
    浏览(49)
  • FTP文件传输服务器

    目录 一、FTP协议两种工作模式 二、FTP数据两种传输模式 三、FTP用户分类 四、VSFTP配置案例 4.1匿名开放模式 4.2本地用户模式 4.3虚拟用户模式 五、实验总结 一、FTP 协议两种工作模式 主动模式: 1、客户端主动向ftp服务器发送控制连接,三次握手控制连接建立成功(密码认证

    2024年02月10日
    浏览(52)
  • Windows之间使用FTP服务传输文件

    服务器Win10,客户端Win11,两个电脑在同一局域网,我是使用一根网线连接 没有新建用户 没有考虑权限和安全等各种问题,只为了两个电脑传输文件快 在入站规则右击,新建规则 打开文件资源管理器,地址栏输入ftp://ip,输入服务器的用户和密码。 如果出现错误“打开ftp服

    2024年02月16日
    浏览(52)
  • 41 openEuler搭建FTP服务器-传输文件

    41.1 概述 这里给出vsftpd服务启动后,如何进行文件传输的指导。 41.2 连接服务器 命令格式 ftp [ hostname | ip-address ] 其中hostname为服务器名称,ip-address为服务器IP地址。 操作说明 在openEuler系统的命令行终端,执行如下命令: 根据提示输入用户名和密码,认证通过后显示如下,说

    2024年02月05日
    浏览(47)
  • win 10 搭建FTP服务,并使用的FTP进行传输文件(很详细)

    1.安装IIS工具 打开控制面板 点击“程序” 点击“启用或关闭Windows功能” 找到“internet information services”,全部都选上。如下图: 点击“确定”,会出现以下页面: 点击“关闭”即可。  2.设置开机启动FTP服务 win+r 打开运行窗口,输入services.msc 启动FTP服务,否则之后创建的

    2024年02月06日
    浏览(44)
  • FTP服务器的搭建与文件目录详解

    文件传输协议FTP(File Transfer FTP)作为网络共享文件的传输协议,在网络应用软件中具有广泛的应用。 FTP协议 FTP是TCP/IP的协议簇协议之一,其主要功能是借助网络实现远距离主机间的文件传输。 Vsftpd (Very Secure FTP)是linux系统的常用软件。 1.1 Vsftpd的服务器的安装与启动 V

    2024年02月16日
    浏览(42)
  • Java 两台服务器间使用FTP进行文件传输

    背景:需要把服务器A中的文件拷贝至服务器B中,要求使用FTP进行传输,当文件传输未完成时文件是tmp格式的,传输完毕后显示为原格式(此处是grib2)。

    2024年02月15日
    浏览(50)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包