最近公司有一个内部比赛(黑客马拉松),报名参加了这么一个赛事,在准备参赛作品的同时(参赛服务器需要自己搭建),借着这个机会,决定把tomcat部署相关的知识从0到1重新捋一遍。就当备忘录了。

FTP服务器(File Transfer Protocol Server)是在互联网上提供文件存储和访问服务的计算机,它们依照FTP协议提供服务。 FTP是File Transfer Protocol(文件传输协议)。顾名思义,就是专门用来传输文件的协议。简单地说,支持FTP协议的服务器就是FTP服务器。

本文适用范围win10系统连接虚拟机CentOS, 博主使用的是filezilla连接CentOS。若是其他方式仅供参考。

v安装vsftpd

♛ 检查并安装

确认虚拟机网络连接方式

尽量虚拟机和实体机在同一IP段,如实体机:192.168.122.1 虚拟机则:192.168.122.9

确保实体机和虚拟机的ip可以互相ping通

先查看你是否安装了vsftpd

rpm -q vsftpd

如上图,则未安装,若已安装,则显示例如 vsftpd-3.0.2-10.el7.x86_64

未安装那就安装vsftpd

yum install -y vsftpd

如上图,需要root权限

su root

然后输入密码,如下图,设置root权限成功

然后继续安装yum install -y vsftpd

安装完毕,如下图。

查看到安装的目录whereis vsftpd

vsftpd目录为: /usr/sbin/vsftpd /etc/vsftpd /usr/share/man/man8/vsftpd.8.gz

查看vsftpd服务的状态systemctl status vsftpd.service

开启vsftpd服务systemctl start vsftpd.service

开启之后再查看vsftpd服务的状态

设置vsftpd服务开机自启systemctl enable vsftpd.service

v防火墙设置

防火墙添加FTP服务

systemctl enable firewalld

systemctl restart firewalld

firewall-cmd --permanent --zone=public --add-service=ftp

firewall-cmd --reload

firewall-cmd --reload

设置SELinux

getsebool -a | grep ftp

setsebool -P ftpd_full_access on

查看设置vi /etc/selinux/config

设置SELINUX=disabled

v配置vsftpd.conf

配置之前先备份cp /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.conf-bak

配置vsftpd.conf文件vim /etc/vsftpd/vsftpd.conf 推荐使用vim方式,vi方式配置文件注释和实体没有颜色区分,会看花眼的。

  1. # Example config file /etc/vsftpd/vsftpd.conf
  2. #
  3. # The default compiled in settings are fairly paranoid. This sample file
  4. # loosens things up a bit, to make the ftp daemon more usable.
  5. # Please see vsftpd.conf.5 for all compiled in defaults.
  6. #
  7. # READ THIS: This example file is NOT an exhaustive list of vsftpd options.
  8. # Please read the vsftpd.conf.5 manual page to get a full idea of vsftpd's
  9. # capabilities.
  10. #
  11. # Allow anonymous FTP? (Beware - allowed by default if you comment this out).
  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. #
  25. # Uncomment this to allow the anonymous FTP user to upload files. This only
  26. # has an effect if the above global write enable is activated. Also, you will
  27. # obviously need to create a directory writable by the FTP user.
  28. # When SELinux is enforcing check for SE bool allow_ftpd_anon_write, allow_ftpd_full_access
  29. #anon_upload_enable=YES
  30. #
  31. # Uncomment this if you want the anonymous FTP user to be able to create
  32. # new directories.
  33. #anon_mkdir_write_enable=YES
  34. #
  35. # Activate directory messages - messages given to remote users when they
  36. # go into a certain directory.
  37. dirmessage_enable=YES
  38. #
  39. # Activate logging of uploads/downloads.
  40. xferlog_enable=YES
  41. #
  42. # Make sure PORT transfer connections originate from port 20 (ftp-data).
  43. connect_from_port_20=YES
  44. #
  45. # If you want, you can arrange for uploaded anonymous files to be owned by
  46. # a different user. Note! Using "root" for uploaded files is not
  47. # recommended!
  48. #chown_uploads=YES
  49. #chown_username=whoever
  50. #
  51. # You may override where the log file goes if you like. The default is shown
  52. # below.
  53. #xferlog_file=/var/log/xferlog
  54. #
  55. # If you want, you can have your log file in standard ftpd xferlog format.
  56. # Note that the default log file location is /var/log/xferlog in this case.
  57. xferlog_std_format=YES
  58. #
  59. # You may change the default value for timing out an idle session.
  60. #idle_session_timeout=600
  61. #
  62. # You may change the default value for timing out a data connection.
  63. #data_connection_timeout=120
  64. #
  65. # It is recommended that you define on your system a unique user which the
  66. # ftp server can use as a totally isolated and unprivileged user.
  67. #nopriv_user=ftpsecure
  68. #
  69. # Enable this and the server will recognise asynchronous ABOR requests. Not
  70. # recommended for security (the code is non-trivial). Not enabling it,
  71. # however, may confuse older FTP clients.
  72. #async_abor_enable=YES
  73. #
  74. # By default the server will pretend to allow ASCII mode but in fact ignore
  75. # the request. Turn on the below options to have the server actually do ASCII
  76. # mangling on files when in ASCII mode.
  77. # Beware that on some FTP servers, ASCII support allows a denial of service
  78. # attack (DoS) via the command "SIZE /big/file" in ASCII mode. vsftpd
  79. # predicted this attack and has always been safe, reporting the size of the
  80. # raw file.
  81. # ASCII mangling is a horrible feature of the protocol.
  82. #ascii_upload_enable=YES
  83. #ascii_download_enable=YES
  84. #
  85. # You may fully customise the login banner string:
  86. #ftpd_banner=Welcome to blah FTP service.
  87. #
  88. # You may specify a file of disallowed anonymous e-mail addresses. Apparently
  89. # useful for combatting certain DoS attacks.
  90. #deny_email_enable=YES
  91. # (default follows)
  92. #banned_email_file=/etc/vsftpd/banned_emails
  93. #
  94. # You may specify an explicit list of local users to chroot() to their home
  95. # directory. If chroot_local_user is YES, then this list becomes a list of
  96. # users to NOT chroot().
  97. # (Warning! chroot'ing can be very dangerous. If using chroot, make sure that
  98. # the user does not have write access to the top level directory within the
  99. # chroot)
  100. #chroot_local_user=YES
  101. #chroot_list_enable=YES
  102. # (default follows)
  103. #chroot_list_file=/etc/vsftpd/chroot_list
  104. #
  105. # You may activate the "-R" option to the builtin ls. This is disabled by
  106. # default to avoid remote users being able to cause excessive I/O on large
  107. # sites. However, some broken FTP clients such as "ncftp" and "mirror" assume
  108. # the presence of the "-R" option, so there is a strong case for enabling it.
  109. #ls_recurse_enable=YES
  110. #
  111. # When "listen" directive is enabled, vsftpd runs in standalone mode and
  112. # listens on IPv4 sockets. This directive cannot be used in conjunction
  113. # with the listen_ipv6 directive.
  114. listen=NO
  115. #
  116. # This directive enables listening on IPv6 sockets. By default, listening
  117. # on the IPv6 "any" address (::) will accept connections from both IPv6
  118. # and IPv4 clients. It is not necessary to listen on *both* IPv4 and IPv6
  119. # sockets. If you want that (perhaps because you want to listen on specific
  120. # addresses) then you must run two copies of vsftpd with two configuration
  121. # files.
  122. # Make sure, that one of the listen options is commented !!
  123. listen_ipv6=YES
  124.  
  125. pam_service_name=vsftpd
  126. userlist_enable=YES
  127. tcp_wrappers=YES

中文版的(来源于网络,侵权必删):

  1. # 是否允许匿名登录FTP服务器,默认设置为YES允许
  2. # 用户可使用用户名ftp或anonymous进行ftp登录,口令为用户的E-mail地址。
  3. # 如不允许匿名访问则设置为NO
  4. anonymous_enable=YES
  5. # 是否允许本地用户(即linux系统中的用户帐号)登录FTP服务器,默认设置为YES允许
  6. # 本地用户登录后会进入用户主目录,而匿名用户登录后进入匿名用户的下载目录/var/ftp/pub
  7. # 若只允许匿名用户访问,前面加上#注释掉即可阻止本地用户访问FTP服务器
  8. local_enable=YES
  9. # 是否允许本地用户对FTP服务器文件具有写权限,默认设置为YES允许
  10. write_enable=YES
  11. # 掩码,本地用户默认掩码为077
  12. # 你可以设置本地用户的文件掩码为缺省022,也可根据个人喜好将其设置为其他值
  13. #local_umask=022
  14. # 是否允许匿名用户上传文件,须将全局的write_enable=YES。默认为YES
  15. #anon_upload_enable=YES
  16. # 是否允许匿名用户创建新文件夹
  17. #anon_mkdir_write_enable=YES
  18. # 是否激活目录欢迎信息功能
  19. # 当用户用CMD模式首次访问服务器上某个目录时,FTP服务器将显示欢迎信息
  20. # 默认情况下,欢迎信息是通过该目录下的.message文件获得的
  21. # 此文件保存自定义的欢迎信息,由用户自己建立
  22. #dirmessage_enable=YES
  23. # 是否让系统自动维护上传和下载的日志文件
  24. # 默认情况该日志文件为/var/log/vsftpd.log,也可以通过下面的xferlog_file选项对其进行设定
  25. # 默认值为NO
  26. xferlog_enable=YES
  27. # Make sure PORT transfer connections originate from port 20 (ftp-data).
  28. # 是否设定FTP服务器将启用FTP数据端口的连接请求
  29. # ftp-data数据传输,21为连接控制端口
  30. connect_from_port_20=YES
  31. # 设定是否允许改变上传文件的属主,与下面一个设定项配合使用
  32. # 注意,不推荐使用root用户上传文件
  33. #chown_uploads=YES
  34. # 设置想要改变的上传文件的属主,如果需要,则输入一个系统用户名
  35. # 可以把上传的文件都改成root属主。whoever:任何人
  36. #chown_username=whoever
  37. # 设定系统维护记录FTP服务器上传和下载情况的日志文件
  38. # /var/log/vsftpd.log是默认的,也可以另设其它
  39. #xferlog_file=/var/log/vsftpd.log
  40. # 是否以标准xferlog的格式书写传输日志文件
  41. # 默认为/var/log/xferlog,也可以通过xferlog_file选项对其进行设定
  42. # 默认值为NO
  43. #xferlog_std_format=YES
  44. # 以下是附加配置,添加相应的选项将启用相应的设置
  45. # 是否生成两个相似的日志文件
  46. # 默认在/var/log/xferlog和/var/log/vsftpd.log目录下
  47. # 前者是wu_ftpd类型的传输日志,可以利用标准日志工具对其进行分析;后者是vsftpd类型的日志
  48. #dual_log_enable
  49. # 是否将原本输出到/var/log/vsftpd.log中的日志,输出到系统日志
  50. #syslog_enable
  51. # 设置数据传输中断间隔时间,此语句表示空闲的用户会话中断时间为600秒
  52. # 即当数据传输结束后,用户连接FTP服务器的时间不应超过600秒。可以根据实际情况对该值进行修改
  53. #idle_session_timeout=600
  54. # 设置数据连接超时时间,该语句表示数据连接超时时间为120秒,可根据实际情况对其个修改
  55. #data_connection_timeout=120
  56. # 运行vsftpd需要的非特权系统用户,缺省是nobody
  57. #nopriv_user=ftpsecure
  58. # 是否识别异步ABOR请求。
  59. # 如果FTP client会下达“async ABOR”这个指令时,这个设定才需要启用
  60. # 而一般此设定并不安全,所以通常将其取消
  61. #async_abor_enable=YES
  62. # 是否以ASCII方式传输数据。默认情况下,服务器会忽略ASCII方式的请求。
  63. # 启用此选项将允许服务器以ASCII方式传输数据
  64. # 不过,这样可能会导致由"SIZE /big/file"方式引起的DoS攻击
  65. #ascii_upload_enable=YES
  66. #ascii_download_enable=YES
  67. # 登录FTP服务器时显示的欢迎信息
  68. # 如有需要,可在更改目录欢迎信息的目录下创建名为.message的文件,并写入欢迎信息保存后
  69. #ftpd_banner=Welcome to blah FTP service.
  70. # 黑名单设置。如果很讨厌某些email address,就可以使用此设定来取消他的登录权限
  71. # 可以将某些特殊的email address抵挡住。
  72. #deny_email_enable=YES
  73. # 当上面的deny_email_enable=YES时,可以利用这个设定项来规定哪些邮件地址不可登录vsftpd服务器
  74. # 此文件需用户自己创建,一行一个email address即可
  75. #banned_email_file=/etc/vsftpd/banned_emails
  76. # 用户登录FTP服务器后是否具有访问自己目录以外的其他文件的权限
  77. # 设置为YES时,用户被锁定在自己的home目录中,vsftpd将在下面chroot_list_file选项值的位置寻找chroot_list文件
  78. # 必须与下面的设置项配合
  79. #chroot_list_enable=YES
  80. # 被列入此文件的用户,在登录后将不能切换到自己目录以外的其他目录
  81. # 从而有利于FTP服务器的安全管理和隐私保护。此文件需自己建立
  82. #chroot_list_file=/etc/vsftpd/chroot_list
  83. # 是否允许递归查询。默认为关闭,以防止远程用户造成过量的I/O
  84. #ls_recurse_enable=YES
  85. # 是否允许监听。
  86. # 如果设置为YES,则vsftpd将以独立模式运行,由vsftpd自己监听和处理IPv4端口的连接请求
  87. listen=YES
  88. # 设定是否支持IPV6。如要同时监听IPv4和IPv6端口,
  89. # 则必须运行两套vsftpd,采用两套配置文件
  90. # 同时确保其中有一个监听选项是被注释掉的
  91. #listen_ipv6=YES
  92. # 设置PAM外挂模块提供的认证服务所使用的配置文件名,即/etc/pam.d/vsftpd文件
  93. # 此文件中file=/etc/vsftpd/ftpusers字段,说明了PAM模块能抵挡的帐号内容来自文件/etc/vsftpd/ftpusers中
  94. #pam_service_name=vsftpd
  95. # 是否允许ftpusers文件中的用户登录FTP服务器,默认为NO
  96. # 若此项设为YES,则user_list文件中的用户允许登录FTP服务器
  97. # 而如果同时设置了userlist_deny=YES,则user_list文件中的用户将不允许登录FTP服务器,甚至连输入密码提示信息都没有
  98. #userlist_enable=YES/NO
  99. # 设置是否阻扯user_list文件中的用户登录FTP服务器,默认为YES
  100. #userlist_deny=YES/NO
  101. # 是否使用tcp_wrappers作为主机访问控制方式。
  102. # tcp_wrappers可以实现linux系统中网络服务的基于主机地址的访问控制
  103. # 在/etc目录中的hosts.allow和hosts.deny两个文件用于设置tcp_wrappers的访问控制
  104. # 前者设置允许访问记录,后者设置拒绝访问记录。
  105. # 如想限制某些主机对FTP服务器192.168.57.2的匿名访问,编缉/etc/hosts.allow文件,如在下面增加两行命令:
  106. # vsftpd:192.168.57.1:DENY 和vsftpd:192.168.57.9:DENY
  107. # 表明限制IP为192.168.57.1/192.168.57.9主机访问IP为192.168.57.2的FTP服务器
  108. # 此时FTP服务器虽可以PING通,但无法连接
  109. tcp_wrappers=YES

编辑user_list文件,vim /etc/vsftpd/user_list 允许test用户访问FTP   注意下图中默认UsRistListDebug的设置。

默认情况下可以不编辑user_list文件。

按步骤操作以后,效果如下:

filezilla效果图如下:

v注意事项

  • 确保关闭防火墙systemctl stop firewalld(临时关闭)或者systemctl disable firewalld(禁止开机启动)
  • 查看是否安装telnetrpm -qa | grep telnet
  • 最好安装telnetyum install telnet-server

FTP数字代码的意义

  1. 110 重新启动标记应答。
  2. 120 服务在多久时间内ready
  3. 125 数据链路端口开启,准备传送。
  4. 150 文件状态正常,开启数据连接端口。
  5. 200 命令执行成功。
  6. 202 命令执行失败。
  7. 211 系统状态或是系统求助响应。
  8. 212 目录的状态。
  9. 213 文件的状态。
  10. 214 求助的讯息。
  11. 215 名称系统类型。
  12. 220 新的联机服务ready
  13. 221 服务的控制连接端口关闭,可以注销。
  14. 225 数据连结开启,但无传输动作。
  15. 226 关闭数据连接端口,请求的文件操作成功。
  16. 227 进入passive mode
  17. 230 使用者登入。
  18. 250 请求的文件操作完成。
  19. 257 显示目前的路径名称。
  20. 331 用户名称正确,需要密码。
  21. 332 登入时需要账号信息。
  22. 350 请求的操作需要进一部的命令。
  23. 421 无法提供服务,关闭控制连结。
  24. 425 无法开启数据链路。
  25. 426 关闭联机,终止传输。
  26. 450 请求的操作未执行。
  27. 451 命令终止:有本地的错误。
  28. 452 未执行命令:磁盘空间不足。
  29. 500 格式错误,无法识别命令。
  30. 501 参数语法错误。
  31. 502 命令执行失败。
  32. 503 命令顺序错误。
  33. 504 命令所接的参数不正确。
  34. 530 未登入。
  35. 532 储存文件需要账户登入。
  36. 550 未执行请求的操作。
  37. 551 请求的命令终止,类型未知。
  38. 552 请求的文件终止,储存位溢出。
  39. 553 未执行请求的的命令,名称不正确。

其他参考资料:

作  者:请叫我头头哥

出  处:http://www.cnblogs.com/toutou/

关于作者:专注于基础平台的项目开发。如有问题或建议,请多多赐教!

版权声明:本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文链接。

特此声明:所有评论和私信都会在第一时间回复。也欢迎园子的大大们指正错误,共同进步。或者直接私信

声援博主:如果您觉得文章对您有帮助,可以点击文章右下角推荐一下。您的鼓励是作者坚持原创和持续写作的最大动力!

CentOS安装FTP服务的更多相关文章

  1. centos 安装ftp服务BUG

    安装完成之后匿名可登录,但是先创建的用户名和密码无法登录,最后排查原因是/etc/pam.d/vsftpd 文件注释掉第四行 auth required pam_shells.so

  2. centos 安装FTP server详情(转)

    centos 安装FTP server详情 分类: linux 2013-12-27 16:45 227人阅读 评论(0) 收藏 举报 我们这里以安装vsftpd 服务器端为例子: 1.进入到cent ...

  3. 基于CentOS安装FTP服务器

    操作系统环境: CentOS Linux release 7.4.1708 (Core) 使用yum安装ftp服务: yum install -y vsftpd 添加系统用户作为登录ftp服务器并修改 ...

  4. Linux 安装FTP服务

    Linux 安装FTP服务,简单入门 环境: 虚拟机:Oracle VM VirtualBox. 系统:CentOS 7. (1)判断是否安装了ftp: rpm -qa | grep vsftpd 或 ...

  5. CentOS7.0下安装FTP服务的方法

    http://www.jb51.net/article/106604.htm   本篇文章主要介绍了CentOS7.0下安装FTP服务的方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考.一起跟 ...

  6. Linux安装FTP服务

    转自:http://blog.csdn.net/huangbiao86/article/details/6641952 ftp服务器 1.  在Linux和其他机器之间共享文件(在linux下安装ft ...

  7. 【CNMP系列】CentOS7.0下安装FTP服务

    一个小插曲,安装一个FTP服务,便于和远程服务器的文件沟通.后续我们会讲到如何使用Capistrano配合git完成服务器的代码部署以及发布流程.现在,代码先走FTP吧,挺稳. FTP简介 FTP 是 ...

  8. Redhat 安装ftp服务

    介绍: 1 安装ftp服务端及客户端 2 ftp的使用

  9. Linux下安装FTP服务(Ubuntu)

    在Ubuntu 14.04 上安装 FTP 服务 第一步>>更新库 linuxidc@linuxidc:~$ sudo apt-get update 第二步>>采用如下命令安装 ...

随机推荐

  1. H5如何解监听页面退出需求???

    事发背景(时间较久): 在一个阳光明媚的一天,这天lz正在工位上悠闲的敲着代码:说时迟那时快,运营小姐姐箭步过来,让lz做一个挽留弹窗:我当时一听这TM不是流氓么.于是便有了以下的故事... 如何实现 ...

  2. Spark环境搭建(五)-----------Spark生态圈概述与Hadoop对比

    Spark:快速的通用的分布式计算框架 概述和特点: 1) Speed,(开发和执行)速度快.基于内存的计算:DAG(有向无环图)的计算引擎:基于线程模型: 2)Easy of use,易用 . 多语 ...

  3. [jzoj]3506.【NOIP2013模拟11.4A组】善良的精灵(fairy)(深度优先生成树)

    Link https://jzoj.net/senior/#main/show/3506 Description 从前有一个善良的精灵. 一天,一个年轻人B找到她并请他预言他的未来.这个精灵透过他的水 ...

  4. 一. 优化小程序自身的Storage

    小程序中的存储只有 Storage ,特性如下: 上限为 10MB 以用户纬度隔离,同一个设备,A 无法访问 B 用户的数据. 持久缓存,只有在用户关掉小程序才会删除,如果空间不足,会进行 LRU , ...

  5. TypeScript专题-Static和使用技巧

    class People { static _name: string; print() { //alert(this.name);// 编译不通过,doex not exist on type Pe ...

  6. H5本地存储详细使用教程(localStorage + JSON数据存储应用框架)

    一.Web Storage教程 1.概述: 对于Web Storage来说,实际上是Cookies存储的进化版.如果了解Cookie的人几乎一看Web Storage就会用,如果你从来没用过没了解过C ...

  7. JS中[object object]怎么取值

    错误信息:本来是要显示JSON对象的  结果控制台打印了[object object] 需要做一个简单的转换,如下: var jsonData = JSON.stringify(data);// 转成 ...

  8. 团队项目:Recycle

    一.团队名字 地球保卫队(EPT) 二.团队阵容 1.项目部分 小组成员思维活跃,仅仅在一节课的时间里提出了n个颠覆软件开发界的思维的idea,最后在层层pk最后留下了八个惊世骇俗的想法.其中包括了要 ...

  9. SQL server SELECT 语句的基本结构

    SELECT select_list [INTO new_table] [FROM table_source] [WHERE search_condition] [GROUP BY GROUP_BY_ ...

  10. 20175324 《Java程序设计》第七周学习总结

    教材学习内容总结 常用实用类 String类 - 程序可以直接使用String类,但不能进行扩展,即String类不可以有子类 - 常用构造方法 - String(char a[])用一个字符数组a创 ...