_不懂操作?手把手教你如何在linux下搭建FTP

vsftpd(very secure FTP daemon)是Linux下的一款小巧轻快、安全易用的FTP服务器软件。本教程介绍如何在Linux实例上安装并配置vsftpd。

FTP(File Transfer Protocol)是一种文件传输协议,基于客户端/服务器架构,支持以下两种工作模式:

  • 主动模式:客户端向FTP服务器发送端口信息,由服务器主动连接该端口。
  • 被动模式:FTP服务器开启并发送端口信息给客户端,由客户端连接该端口,服务器被动接受连接。

说明:大多数FTP客户端都在局域网中,没有独立的公网IP地址,且有防火墙阻拦,主动模式下FTP服务器成功连接到客户端比较困难。因此,如无特殊需求,建议您将FTP服务器配置为被动模式。

FTP支持以下三种认证模式:

  • 匿名用户模式:任何人无需密码验证就可以直接登录到FTP服务器。这种模式最不安全,一般只用来保存不重要的公开文件,不推荐在生产环境中使用。
  • 本地用户模式:通过Linux系统本地账号进行验证的模式,相较于匿名用户模式更安全。
  • 虚拟用户模式:FTP服务器的专有用户。虚拟用户只能访问Linux系统为其提供的FTP服务,而不能访问Linux系统的其它资源,进一步增强了FTP服务器的安全性。

操作步骤

步骤1:安装vsftpd

1、远程连接linux服务器,可以使用xshell、putty等工具;

2、运行命令安装vsftpd

yum install -y vsftpd

3、运行以下命令设置FTP服务开机自启动。

systemctl enable vsftpd.service

4、运行以下命令启动FTP服务。

systemctl start vsftpd.service

5、运行以下命令查看FTP服务监听的端口。

 netstat -antup | grep ftp

出现如下图所示界面,表示FTP服务已启动,监听的端口号为21。此时,vsftpd默认已开启匿名访问功能,您无需输入用户名密码即可登录FTP服务器,但没有修改或上传文件的权限。

47866d5c9c48f49274121e76d88d5fcb.png

步骤二:配置vsftpd(匿名用户模式)

配置主动模式下匿名用户上传文件权限的操作步骤如下:

  1. 修改配置文件/etc/vsftpd/vsftpd.conf。
  • 运行vim /etc/vsftpd/vsftpd.conf命令打开配置文件。
  • 按i进入编辑模式。
  • 将写权限修改为write_enable=YES
  • 将匿名上传权限修改为anon_upload_enable=YES
  • 按Esc退出编辑模式,然后输入:wq并回车以保存并关闭文件。

修改后的配置文件,如下图所示

d0f9ca881b691a8a5fa5fb791b5ab1d5.png

2、运行以下命令更改/var/ftp/pub目录的权限,为FTP用户添加写权限。

chmod o+w /var/ftp/pub/

3、运行以下命令重新加载配置文件。

systemctl restart vsftpd.service

步骤二:配置vsftpd(本地用户模式)

配置本地用户访问FTP服务器的操作步骤如下:

  1. 运行以下命令为FTP服务创建一个Linux用户。本示例中,该用户名为ftptest。
    useradd ftptest
  2. 运行以下命令修改ftptest用户的密码。
    passwd ftptest
  3. 运行以下命令创建一个供FTP服务使用的文件目录。
    mkdir /var/ftp/test
  4. 运行以下命令更改/var/ftp/test目录的拥有者为ftptest。
    chown -R ftptest:ftptest /var/ftp/test
  5. 修改vsftpd.conf配置文件。
  • 运行vim /etc/vsftpd/vsftpd.conf命令打开配置文件。
  • 按i进入编辑模式。
  • 根据实际需要,配置FTP服务器为主动模式或被动模式。
配置FTP为主动模式的参数如下:
#除下面提及的参数外,其他参数保持默认值即可。 
#修改下列参数的值 
anonymous_enable=NO #禁止匿名登录FTP服务器 
local_enable=YES #允许本地用户登录FTP服务器 
listen=YES #监听IPv4 sockets#在行首添加#注释掉以下参数 
#listen_ipv6=YES          #关闭监听IPv6 sockets #添加下列参数 
chroot_local_user=YES #全部用户被限制在主目录 
chroot_list_enable=YES #启用例外用户名单 
chroot_list_file=/etc/vsftpd/chroot_list  #指定例外用户列表文件,列表中的用户不被锁定在主目录 
allow_writeable_chroot=YES 
local_root=/var/ftp/test #设置本地用户登录后所在的目录

配置FTP为被动模式的参数如下:
#除下面提及的参数外,其他参数保持默认值即可。

#修改下列参数的值 
anonymous_enable=NO #禁止匿名登录FTP服务器 
local_enable=YES #允许本地用户登录FTP服务器
listen=YES #监听IPv4 sockets 
#在行首添加#注释掉以下参数#listen_ipv6=YES             #关闭监听IPv6 sockets #添加下列参数 
local_root=/var/ftp/test     #设置本地用户登录后所在目录 
chroot_local_user=YES #全部用户被限制在主目录 
chroot_list_enable=YES #启用例外用户名单 
chroot_list_file=/etc/vsftpd/chroot_list  #指定例外用户列表文件,列表中用户不被锁定在主目录allow_writeable_chroot=YES pasv_enable=YES #开启被动模式 
pasv_address=<FTP服务器公网IP地址>  #本教程中为Linux实例公网IP 
pasv_min_port=<port number>          #设置被动模式下,建立数据传输可使用的端口范围的最小值 
pasv_max_port=<port number>          #设置被动模式下,建立数据传输可使用的端口范围的最大值说明 建议您把端口范围设置在一段比较高的范围内,例如50000~50010,有助于提高访问FTP服务器的安全性。

按Esc退出编辑模式,然后输入:wq并回车以保存并关闭文件。

6、创建chroot_list文件,并在文件中写入例外用户名单。

    1. 运行vim /etc/vsftpd/chroot_list命令创建chroot_list文件。
    2. 按i进入编辑模式。
    3. 输入例外用户名单。此名单中的用户不会被锁定在主目录,可以访问其他目录。
    4. 按Esc退出编辑模式,然后输入:wq并回车以保存并关闭文件。
说明 没有例外用户时,也必须创建chroot_list文件,内容可为空。

7、运行以下命令重启vsftpd服务。
systemctl restart vsftpd.service

步骤三:客户端测试

FTP客户端、Windows命令行工具或浏览器均可用来测试FTP服务器。本教程以Windows自带的IE浏览器为例,分别介绍FTP服务器配置为主动模式或被动模式时的访问步骤。

说明 使用浏览器访问FTP服务器出错时,建议您清除浏览器缓存后再尝试。
  • FTP服务器为主动模式
  1. 打开客户端的IE浏览器。
  2. 将浏览器设置为主动访问模式。选择设置 > Internet 选项 > 高级。选中启用 FTP 文件夹视图,取消勾选使用被动 FTP。
  3. 在地址栏中输入ftp://<FTP服务器公网IP地址>:FTP端口,本教程中为Linux实例的公网IP地址。例如:ftp://39.0.0.1:21
  4. 在弹出的对话框中,输入用户名和密码,即可对FTP文件进行相应权限的操作。说明 此步骤仅适用于本地用户,匿名用户无需输入用户名和密码即可登录FTP服务器。
FTP服务器为被动模式
  1. 打开客户端的IE浏览器。
  2. 将浏览器设置为被动访问模式。选择设置 > Internet 选项 > 高级。选中启用FTP文件夹视图和使用被动FTP。
  3. 在地址栏中输入ftp://<FTP服务器公网IP地址>:FTP端口,本教程中为Linux实例的公网IP地址。例如:ftp://39.10.0.28:21
  4. 在弹出的对话框中,输入用户名和密码,即可对FTP文件进行相应权限的操作。
说明 此步骤仅适用于本地用户,匿名用户无需输入用户名和密码即可登录FTP服务器。

vsftp配置文件及参数说明

/etc/vsftpd目录下文件说明如下:

  • /etc/vsftpd/vsftpd.conf是vsftpd的核心配置文件。
  • /etc/vsftpd/ftpusers是黑名单文件,此文件中的用户不允许访问FTP服务器。
  • /etc/vsftpd/user_list是白名单文件,此文件中的用户允许访问FTP服务器。

如果客户端连接测试成功,即意味着FTP配置已经完成,如果测试过程中存在问题,建议参考配置教程检查是否配置有误。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/490763.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

can't request region for resource [mem 0xfed40080-0xfed40fff]问题的解决办法

can’t request region for resource [mem 0xfed40080-0xfed40fff]问题的解决办法 在去年的时候&#xff0c;我就给自己的电脑安装了双系统&#xff0c;Win10和Ubuntu16.04&#xff0c;Secure Boot也一直设置为disabled&#xff0c;但是一直困在了一个问题上&#xff0c;如下图…

人工智能技术在美国国家安全领域的应用

来源&#xff1a;蓝海星智库人工智能是美国重点发展的核心技术之一&#xff0c;在情报/监视/侦查、后勤保障、网络战、信息战、指挥控制、半自主/自主平台以及致命自主武器系统等国家安全相关领域有重要的应用潜力和价值&#xff0c;近年来美国在这些方面取得了较大的进展。一、…

C++ #include <.h>和“.h“的区别

#include<.h>用于包含标准库 #include".h"用于包含自定义的头文件

r3 4300u r5 u_R5刀粒

R5刀粒&#xff0c;惠州力拓五金制品有限公司&#xff0c;(依法须经批准的项目&#xff0c;经相关部门批准后方可开展经营活动)〓。R5刀粒&#xff0c; 有单角和双角铣刀两种。其圆周上有较多的刀齿。此外还有键槽铣刀、燕尾槽铣刀、T形槽铣刀和各种成形铣刀等。铣刀的结构 分为…

OpenCV中文路径问题、matplotlib可视化中文乱码问题的解决办法

OpenCV中文路径问题、matplotlib可视化中文乱码问题的解决办法 OpenCV中文路径问题 读取图片 其中img_path为读取图片路径&#xff0c;可以包含中文 img cv2.imdecode(np.fromfile(img_path, dtypenp.uint8), 1) 保存图片 保存图像&#xff0c;其中img为所要保存的图像原始…

沙龙预告 | 新书分享《崛起的超级智能:互联网大脑如何影响科技未来》

1科幻作家刘慈欣说&#xff1a;机器智能与人类智慧通过互联网正在形成自然界前所未有的超级智能形态。刘锋新作《崛起的超级智能&#xff1a;互联网大脑如何影响科技未来》一书开创性地揭示了21世纪一个重要而独特的科技模型原理&#xff0c;即互联网大脑如何深刻影响人类的未来…

FFmpeg参数说明

FFmpeg完美入门【2】-FFmpeg参数说明 1 通用选项 -L license -h 帮助 -fromats 显示可用的格式&#xff0c;编解码的&#xff0c;协议的。 -f fmt 强迫采用格式fmt -i filename 输入文件 -y 覆盖输出文件 -t duration 设置纪录时间 hh:mm:ss[.xxx]格式的记录时间也支持 -ss pos…

between and 效率_科学家改进植物光合作用,使植物光合效率提高40%

Credit: James Baltz/College of Agricultural, Consumer and Environmental Sciences众所周知&#xff0c;植物都是通过光合作用来获取能量的&#xff0c;但是地球上大部分的植物在光合作用时都出了偏差&#xff0c;使得他们不得不在漫长的进化中额外进化出了一个名为“光呼吸…

有道翻译接口问题(续)

原博文地址&#xff1a;https://blog.csdn.net/qq_40962368/article/details/80620817 自从写了上面的博文之后&#xff0c;很多人询问我关于有道翻译接口的问题&#xff0c;为什么不是F12中的 http://fanyi.youdao.com/translate_o?smartresultdict&smartresultrule 当…

最前沿:堪比E=mc2,Al-GA才是实现AGI的指标性方法论?

转载自知乎导读&#xff1a;在读完Uber AI Lab发表的一篇关于AGI的论文之后&#xff0c;本文作者恍然觉得有一种道破天机的感觉。他评价道&#xff0c;虽然这篇论文是泛泛之谈&#xff0c;却揭示了一些真正实现AGI的方法论——AI-GA&#xff08;AI-generating algorithms&#…

C++头文件的防卫式声明(为了防止多次include)

C的某个头文件通常需要被多个文件include&#xff0c;为了防止同一个头文件被包含多次导致了重复定义&#xff0c;需要在头文件中加上以防卫式声明&#xff0c;例如对于头文件的"complex.h"&#xff0c;其防卫式声明如下&#xff1a; #ifndef __COMPLEX__ #define _…

典型用户和用户场景

项目任务&#xff1a;老师通过老师身份登录并查看博客园作业 1、背景&#xff1a; ①典型用户&#xff1a;老师 &#xff08;1&#xff09;名字&#xff1a;王老师 &#xff08;2&#xff09;年龄&#xff1a;27以上 &#xff08;3&#xff09;收入&#xff1a;5000以上 &#…

读芯片信息出错3_十分钟看懂串口打印信息(1)

一、软件串口打印信息加载流程不管何种机芯方案&#xff0c;在上电开机后&#xff0c;软件 总会初始化复位和加载相关内容和应用&#xff0c;这部 分的信息通常我们采用串口工具来进行读写的 操作。针对我们工作的需求和作为问题处理的可 靠工具&#xff0c;读取串口打印信息并…

利用URL拼接爬取获取有道翻译内容

利用URL拼接爬取获取有道翻译内容 代码&#xff1a; import requests import chardet import jsonif __name__ __main__:i input(请输入要翻译的内容&#xff1a;)url http://fanyi.youdao.com/translate?i%s&smartresultdict&smartresultrule % idata {from: A…

协作机器人与传统机器人有何区别?

来源&#xff1a;新战略机器人为什么需要协作机器人&#xff1f;协作机器人的兴起意味着传统机器人必然有某种程度的不足&#xff0c;或者无法适应新的市场需求。总结一下&#xff0c;主要有几点&#xff1a;传统机器人部署成本高其实相对来讲&#xff0c;工业机器人本身的价格…

windows10下安装pytorch并导入pycharm

首先需要安装Anaconda&#xff1a;https://www.anaconda.com/download/进入到windows中的命令提示符(cmd)&#xff0c;通过运行以下命令来创建一个名为pytorch&#xff08;自命名&#xff0c;环境名字可以自己定义&#xff09;的环境&#xff0c;安装python版本为3.6&#xff1…

台阶问题练习题 (简单的dp)

题目&#xff1a; 有n级台阶&#xff0c;一个人每次上一级或者两级&#xff0c;问有多少种走完n级台阶的方法。为了防止溢出&#xff0c;请将结果Mod 1000000007 给定一个正整数int n&#xff0c;请返回一个数&#xff0c;代表上楼的方式数。保证n小于等于100000。 测试样例&am…

云优后台提交显示parsererror_微信现场大屏实时显示结果现场投票活动制作方法...

原标题&#xff1a;微信现场大屏实时显示结果现场投票活动制作方法在文艺晚会上&#xff0c;才艺节目竞赛中&#xff0c;当表演者表演完之后&#xff0c;可能会在现场进行投票表决。因为表演者想要评比出名次&#xff0c;自然需要在现场活动中通过观众或者是评委来进行投票。活…

爬虫:利用cookie获取人人网登录后网页信息

爬虫&#xff1a;利用cookie获取人人网登录后网页信息 思路&#xff1a; 1、首先创建一个自动获取登录cookie的实例&#xff0c;创建请求管理器opener 2、分析网页源码&#xff0c;获取登录的form信息&#xff0c;并写入data&#xff0c;访问登录界面url&#xff0c;获取cookie…

python实现共空间模式CSP

直接调用库函数 mne.decoding.CSP(n_components4, regNone, logNone, cov_estconcat, transform_intoaverage_power, norm_traceFalse, cov_method_paramsNone, rankNone) https://mne.tools/stable/generated/mne.decoding.CSP.html?highlightcsp#mne.decoding.CSP