热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Linux下搭建FTP服务器教程

Linux下搭建FTP服务器教程一、基本安装1.运行以下命令安装vsftpd。yuminstall-yvsftpd2.运行以下命令打开及查看etcvsftpdcdetcvsftpd

一、基本安装

1.运行以下命令安装 vsftpd。

yum install -y vsftpd

2.运行以下命令打开及查看etc/vsftpd
cd /etc/vsftpd
ls

说明:
/etc/vsftpd/vsftpd.conf 是核心配置文件。
/etc/vsftpd/ftpusers 是黑名单文件,此文件里的用户不允许访问 FTP 服务器。
/etc/vsftpd/user_list  是白名单文件,是允许访问 FTP 服务器的用户列表。
/etc/vsftpd/vsftpd_conf_migrate.sh  是vsftpd操作的一些变量和设置

备注:使用命令 rpm -ql vsftpd  可列出vsftpd中包含的文件

Linux下搭建FTP服务器教程


3.运行以下命令设置开机自启动。

systemctl enable vsftpd

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

systemctl start vsftpd

5.运行以下命令查看 FTP 服务端口。

netstat -antup | grep ftp

Linux下搭建FTP服务器教程


6.配置本地用户登录
本地用户登录就是指用户使用 Linux 操作系统中的用户账号和密码登录 FTP 服务器。

vsftpd 安装后默只支持匿名 FTP 登录,用户如果试图使用 Linux 操作系统中的账号登录服务器,将会被 vsftpd 拒绝,但可以在 vsftpd 里配置用户账号和密码登录。具体步骤如下:

a.运行以下命令创建 ftptest 用户。
useradd ftptest   
(删除用户命令:sudo userdel -r newuser)
b.运行以下命令修改 ftptest 用户密码。

passwd ftptest

Linux下搭建FTP服务器教程

7.修改/etc/vsftpd/vsftpd.conf
a.运行vim /etc/vsftpd/vsftpd.conf。
b.按键 “i” 进入编辑模式。
c.将是否允许匿名登录 FTP 的参数修改为anonymous enable=NO。
d.将是否允许本地用户登录 FTP 的参数修改为local_enable=YES。
e.按键 “Esc” 退出编辑模式,然后按键“:wq” 保存并退出文件。
f.运行命令 cat /etc/vsftpd/vsftpd.conf 查看配置文件内容。

Linux下搭建FTP服务器教程


二、基本配置

完成vsftpd安装后发现无法远程连接,仍需要完成以下配置。

原因分析:

FTP连接方式分为:主动模式和被动模式。默认为被动模式。

如果为被动模式,服务器端必须监听至少一个额外的被动模式端口。所以,若只开通20和21端口是不够的,需要另外配置入站端口。

以下以阿里云服务器为例:

Linux下搭建FTP服务器教程

在阿里云安全组中,开启8800/8899,20/21 端口 ,也可自定义(后面配置需要用到),仅做参考。

备注参考信息:

FTP的连接一般是有两个连接的,一个是客户程和服务器传输命令的,另一个是数据传送的连接。FTP服务程序一般会支持两种不同的模式,一种是Port模式,一种是Passive模式(Pasv Mode),我先说说这两种不同模式连接方式的分别。
先假设客户端为C,服务端为S.
Port模式:
当客户端C向服务端S连接后,使用的是Port模式,那么客户端C会发送一条命令告诉服务端S(客户端C在本地打开了一个端口N在等着你进行数据连接),当服务端S收到这个Port命令后 就会向客户端打开的那个端口N进行连接,这种数据连接就生成了。
Pasv模式:

当客户端C向服务端S连接后,服务端S会发信息给客户端C,这个信息是(服务端S在本地打开了一个端口M,你现在去连接我吧),当客户端C收到这个信息后,就可以向服务端S的M端口进行连接,连接成功后,数据连接也建立了。

参考链接:https://blog.csdn.net/binsoft/article/details/44595677 (貌似也是转载的,找不到原文…)

添加配置信息 修改配置文件 vim /etc/vsftpd/vsftpd.conf

在文件末尾添加:
pasv_enable=YES       
pasv_min_port=8800
pasv_max_port=8899

解释:
8800/8899 为上面安全组添加的端口号
pasv_enable=YES|NO
YES,允许数据传输时使用PASV模式。NO,不允许使用PASV模式。默认值为YES。
pasv_min_port=port number 
pasv_max_port=port number

设定在PASV模式下,建立数据传输所可以使用port范围的下界和上界,0 表示任意。默认值为0。把端口范围设在比较高的一段范围内,比如50000-60000,将有助于安全性的提高。

完成以上配置,基本可以实现远程连接FTP。对了,配置完成记得重启服务器systemctl restart vsftpd

三、配置 vsftpd 限制 FTP 账户访问其它目录

使用 vsftpd 搭建 FTP 服务,可以配置用户登录后,限制访问其它的目录,只能进它的主目录。 配置方法如下:

1、打开 vsftp 的配置文件 vim /etc/vsftpd/vsftpd.conf  找到 chroot Chroot_local_user

     设置所有的本地用户都执行 chroot chroot_local_user=yes (本地所有帐户都只能在自家目录) 

2、设置指定用户执行 chroot

      找到并修改 chroot_list_enable=yes 

3、chroot_list_file=/ 任意指定的路径 /chroot_list (文件中的名单可以调用)
注意:vsftpd.chroot_list 是没有创建的需要自己创建。若不想限制个别用户,将用户名添加到vsftpd.chroot_list文件中,每个用户名一行。

Linux下搭建FTP服务器教程

4在文件末尾添加 

allow_writeable_chroot=YES #对vsftpd有用,否则,因home目录权限为root权限而无法登录

5、为 /home/ftptest 添加权限

Linux下搭建FTP服务器教程

6.重启服务器

systemctl restart vsftpd

四、vsftpd修改默认端口

1、编辑/etc/vsftpd/vsftpd.conf 文件,在该配置文件末尾添加此行:listen_port=6709

Linux下搭建FTP服务器教程

2、编辑/etc/services 文件,将其中的
ftp 21/tcp  改为 ftp 6709/tcp ,

ftp 21/udp  改为 ftp 6709/udp

Linux下搭建FTP服务器教程

3、重新启动vsftpd 服务。
4、运行命令

netstat -tnulp | grep vsftpd

可以查看到现在系统现监听的vsftpd 的端口为6709

Linux下搭建FTP服务器教程

5、最后不要忘记到阿里云安全组添加6709端口号

五、本文参考

1.https://help.aliyun.com/document_detail/51998.html?spm=5176.11065259.1996646101.searchclickresult.232f56b2leo5fC#h2-linux-ftp-2

2.https://help.aliyun.com/knowledge_detail/41291.html?spm=a2c4g.11186623.4.5.jTvPdu

3.https://blog.csdn.net/zhuixunhebe1/article/details/77651588

4.http://blog.51cto.com/mingxiaoming/1974715

5.https://blog.csdn.net/binsoft/article/details/44595677


推荐阅读
  • 本文介绍了Python高级网络编程及TCP/IP协议簇的OSI七层模型。首先简单介绍了七层模型的各层及其封装解封装过程。然后讨论了程序开发中涉及到的网络通信内容,主要包括TCP协议、UDP协议和IPV4协议。最后还介绍了socket编程、聊天socket实现、远程执行命令、上传文件、socketserver及其源码分析等相关内容。 ... [详细]
  • 本文介绍了通过ABAP开发往外网发邮件的需求,并提供了配置和代码整理的资料。其中包括了配置SAP邮件服务器的步骤和ABAP写发送邮件代码的过程。通过RZ10配置参数和icm/server_port_1的设定,可以实现向Sap User和外部邮件发送邮件的功能。希望对需要的开发人员有帮助。摘要长度:184字。 ... [详细]
  • SQL Server 2008 到底需要使用哪些端口?
    SQLServer2008到底需要使用哪些端口?-下面就来介绍下SQLServer2008中使用的端口有哪些:  首先,最常用最常见的就是1433端口。这个是数据库引擎的端口,如果 ... [详细]
  • 如何实现织梦DedeCms全站伪静态
    本文介绍了如何通过修改织梦DedeCms源代码来实现全站伪静态,以提高管理和SEO效果。全站伪静态可以避免重复URL的问题,同时通过使用mod_rewrite伪静态模块和.htaccess正则表达式,可以更好地适应搜索引擎的需求。文章还提到了一些相关的技术和工具,如Ubuntu、qt编程、tomcat端口、爬虫、php request根目录等。 ... [详细]
  • Nginx使用(server参数配置)
    本文介绍了Nginx的使用,重点讲解了server参数配置,包括端口号、主机名、根目录等内容。同时,还介绍了Nginx的反向代理功能。 ... [详细]
  • 这是原文链接:sendingformdata许多情况下,我们使用表单发送数据到服务器。服务器处理数据并返回响应给用户。这看起来很简单,但是 ... [详细]
  • 禁止程序接收鼠标事件的工具_VNC Viewer for Mac(远程桌面工具)免费版
    VNCViewerforMac是一款运行在Mac平台上的远程桌面工具,vncviewermac版可以帮助您使用Mac的键盘和鼠标来控制远程计算机,操作简 ... [详细]
  • Metasploit攻击渗透实践
    本文介绍了Metasploit攻击渗透实践的内容和要求,包括主动攻击、针对浏览器和客户端的攻击,以及成功应用辅助模块的实践过程。其中涉及使用Hydra在不知道密码的情况下攻击metsploit2靶机获取密码,以及攻击浏览器中的tomcat服务的具体步骤。同时还讲解了爆破密码的方法和设置攻击目标主机的相关参数。 ... [详细]
  • 本文介绍了使用PHP实现断点续传乱序合并文件的方法和源码。由于网络原因,文件需要分割成多个部分发送,因此无法按顺序接收。文章中提供了merge2.php的源码,通过使用shuffle函数打乱文件读取顺序,实现了乱序合并文件的功能。同时,还介绍了filesize、glob、unlink、fopen等相关函数的使用。阅读本文可以了解如何使用PHP实现断点续传乱序合并文件的具体步骤。 ... [详细]
  • 本文介绍了Web学习历程记录中关于Tomcat的基本概念和配置。首先解释了Web静态Web资源和动态Web资源的概念,以及C/S架构和B/S架构的区别。然后介绍了常见的Web服务器,包括Weblogic、WebSphere和Tomcat。接着详细讲解了Tomcat的虚拟主机、web应用和虚拟路径映射的概念和配置过程。最后简要介绍了http协议的作用。本文内容详实,适合初学者了解Tomcat的基础知识。 ... [详细]
  • 本文介绍了计算机网络的定义和通信流程,包括客户端编译文件、二进制转换、三层路由设备等。同时,还介绍了计算机网络中常用的关键词,如MAC地址和IP地址。 ... [详细]
  • 恶意软件分析的最佳编程语言及其应用
    本文介绍了学习恶意软件分析和逆向工程领域时最适合的编程语言,并重点讨论了Python的优点。Python是一种解释型、多用途的语言,具有可读性高、可快速开发、易于学习的特点。作者分享了在本地恶意软件分析中使用Python的经验,包括快速复制恶意软件组件以更好地理解其工作。此外,作者还提到了Python的跨平台优势,使得在不同操作系统上运行代码变得更加方便。 ... [详细]
  • 程序员如何选择机械键盘轴体?红轴和茶轴对比
    本文介绍了程序员如何选择机械键盘轴体,特别是红轴和茶轴的对比。同时还介绍了U盘安装Linux镜像的步骤,以及在Linux系统中安装软件的命令行操作。此外,还介绍了nodejs和npm的安装方法,以及在VSCode中安装和配置常用插件的方法。最后,还介绍了如何在GitHub上配置SSH密钥和git的基本配置。 ... [详细]
  • Linux防火墙配置—允许转发
    nsitionalENhttp:www.w3.orgTRxhtml1DTDxhtml1-transitional.dtd ... [详细]
  • NFS文件共享系统
    1、概述:NFS(NetworkFileSystem)意为网络文件系统,它最大的功能就是可以通过网络,让不同的机器不同的操作系统可以共享 ... [详细]
author-avatar
mobiledu2502897851
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有