最近公司有一个内部比赛(黑客马拉松),报名参加了这么一个赛事,在准备参赛做品的同时(参赛服务器须要本身搭建),借着这个机会,决定把tomcat部署相关的知识从0到1从新捋一遍。就当备忘录了。html
FTP服务器(File Transfer Protocol Server)是在互联网上提供文件存储和访问服务的计算机,它们依照FTP协议提供服务。 FTP是File Transfer Protocol(文件传输协议)。顾名思义,就是专门用来传输文件的协议。简单地说,支持FTP协议的服务器就是FTP服务器。linux
本文适用范围win10系统链接虚拟机CentOS, 博主使用的是filezilla链接CentOS。如果其余方式仅供参考。vim
确认虚拟机网络链接方式tomcat
尽可能虚拟机和实体机在同一IP段,如实体机:192.168.122.1 虚拟机则:192.168.122.9安全
确保实体机和虚拟机的ip能够互相ping通服务器
先查看你是否安装了vsftpd网络
rpm -q vsftpd
session
如上图,则未安装,若已安装,则显示例如 vsftpd-3.0.2-10.el7.x86_64app
未安装那就安装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
防火墙添加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
配置以前先备份cp /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.conf-bak
配置vsftpd.conf文件vim /etc/vsftpd/vsftpd.conf
推荐使用vim方式,vi方式配置文件注释和实体没有颜色区分,会看花眼的。
# Example config file /etc/vsftpd/vsftpd.conf
#
# The default compiled in settings are fairly paranoid. This sample file
# loosens things up a bit, to make the ftp daemon more usable.
# Please see vsftpd.conf.5 for all compiled in defaults.
#
# READ THIS: This example file is NOT an exhaustive list of vsftpd options.
# Please read the vsftpd.conf.5 manual page to get a full idea of vsftpd's
# capabilities.
#
# Allow anonymous FTP? (Beware - allowed by default if you comment this out).
anonymous_enable=YES
#
# Uncomment this to allow local users to log in.
# When SELinux is enforcing check for SE bool ftp_home_dir
local_enable=YES
#
# Uncomment this to enable any form of FTP write command.
write_enable=YES
#
# Default umask for local users is 077. You may wish to change this to 022,
# if your users expect that (022 is used by most other ftpd's)
local_umask=022
#
# Uncomment this to allow the anonymous FTP user to upload files. This only
# has an effect if the above global write enable is activated. Also, you will
# obviously need to create a directory writable by the FTP user.
# When SELinux is enforcing check for SE bool allow_ftpd_anon_write, allow_ftpd_full_access
#anon_upload_enable=YES
#
# Uncomment this if you want the anonymous FTP user to be able to create
# new directories.
#anon_mkdir_write_enable=YES
#
# Activate directory messages - messages given to remote users when they
# go into a certain directory.
dirmessage_enable=YES
#
# Activate logging of uploads/downloads.
xferlog_enable=YES
#
# Make sure PORT transfer connections originate from port 20 (ftp-data).
connect_from_port_20=YES
#
# If you want, you can arrange for uploaded anonymous files to be owned by
# a different user. Note! Using "root" for uploaded files is not
# recommended!
#chown_uploads=YES
#chown_username=whoever
#
# You may override where the log file goes if you like. The default is shown
# below.
#xferlog_file=/var/log/xferlog
#
# If you want, you can have your log file in standard ftpd xferlog format.
# Note that the default log file location is /var/log/xferlog in this case.
xferlog_std_format=YES
#
# You may change the default value for timing out an idle session.
#idle_session_timeout=600
#
# You may change the default value for timing out a data connection.
#data_connection_timeout=120
#
# It is recommended that you define on your system a unique user which the
# ftp server can use as a totally isolated and unprivileged user.
#nopriv_user=ftpsecure
#
# Enable this and the server will recognise asynchronous ABOR requests. Not
# recommended for security (the code is non-trivial). Not enabling it,
# however, may confuse older FTP clients.
#async_abor_enable=YES
#
# By default the server will pretend to allow ASCII mode but in fact ignore
# the request. Turn on the below options to have the server actually do ASCII
# mangling on files when in ASCII mode.
# Beware that on some FTP servers, ASCII support allows a denial of service
# attack (DoS) via the command "SIZE /big/file" in ASCII mode. vsftpd
# predicted this attack and has always been safe, reporting the size of the
# raw file.
# ASCII mangling is a horrible feature of the protocol.
#ascii_upload_enable=YES
#ascii_download_enable=YES
#
# You may fully customise the login banner string:
#ftpd_banner=Welcome to blah FTP service.
#
# You may specify a file of disallowed anonymous e-mail addresses. Apparently
# useful for combatting certain DoS attacks.
#deny_email_enable=YES
# (default follows)
#banned_email_file=/etc/vsftpd/banned_emails
#
# You may specify an explicit list of local users to chroot() to their home
# directory. If chroot_local_user is YES, then this list becomes a list of
# users to NOT chroot().
# (Warning! chroot'ing can be very dangerous. If using chroot, make sure that
# the user does not have write access to the top level directory within the
# chroot)
#chroot_local_user=YES
#chroot_list_enable=YES
# (default follows)
#chroot_list_file=/etc/vsftpd/chroot_list
#
# You may activate the "-R" option to the builtin ls. This is disabled by
# default to avoid remote users being able to cause excessive I/O on large
# sites. However, some broken FTP clients such as "ncftp" and "mirror" assume
# the presence of the "-R" option, so there is a strong case for enabling it.
#ls_recurse_enable=YES
#
# When "listen" directive is enabled, vsftpd runs in standalone mode and
# listens on IPv4 sockets. This directive cannot be used in conjunction
# with the listen_ipv6 directive.
listen=NO
#
# This directive enables listening on IPv6 sockets. By default, listening
# on the IPv6 "any" address (::) will accept connections from both IPv6
# and IPv4 clients. It is not necessary to listen on *both* IPv4 and IPv6
# sockets. If you want that (perhaps because you want to listen on specific
# addresses) then you must run two copies of vsftpd with two configuration
# files.
# Make sure, that one of the listen options is commented !!
listen_ipv6=YES
pam_service_name=vsftpd
userlist_enable=YES
tcp_wrappers=YES
中文版的(来源于网络,侵权必删):
# 是否容许匿名登陆FTP服务器,默认设置为YES容许
# 用户可以使用用户名ftp或anonymous进行ftp登陆,口令为用户的E-mail地址。
# 如不容许匿名访问则设置为NO
anonymous_enable=YES
# 是否容许本地用户(即linux系统中的用户账号)登陆FTP服务器,默认设置为YES容许
# 本地用户登陆后会进入用户主目录,而匿名用户登陆后进入匿名用户的下载目录/var/ftp/pub
# 若只容许匿名用户访问,前面加上#注释掉便可阻止本地用户访问FTP服务器
local_enable=YES
# 是否容许本地用户对FTP服务器文件具备写权限,默认设置为YES容许
write_enable=YES
# 掩码,本地用户默认掩码为077
# 你能够设置本地用户的文件掩码为缺省022,也可根据我的喜爱将其设置为其余值
#local_umask=022
# 是否容许匿名用户上传文件,须将全局的write_enable=YES。默认为YES
#anon_upload_enable=YES
# 是否容许匿名用户建立新文件夹
#anon_mkdir_write_enable=YES
# 是否激活目录欢迎信息功能
# 当用户用CMD模式首次访问服务器上某个目录时,FTP服务器将显示欢迎信息
# 默认状况下,欢迎信息是经过该目录下的.message文件得到的
# 此文件保存自定义的欢迎信息,由用户本身创建
#dirmessage_enable=YES
# 是否让系统自动维护上传和下载的日志文件
# 默认状况该日志文件为/var/log/vsftpd.log,也能够经过下面的xferlog_file选项对其进行设定
# 默认值为NO
xferlog_enable=YES
# Make sure PORT transfer connections originate from port 20 (ftp-data).
# 是否设定FTP服务器将启用FTP数据端口的链接请求
# ftp-data数据传输,21为链接控制端口
connect_from_port_20=YES
# 设定是否容许改变上传文件的属主,与下面一个设定项配合使用
# 注意,不推荐使用root用户上传文件
#chown_uploads=YES
# 设置想要改变的上传文件的属主,若是须要,则输入一个系统用户名
# 能够把上传的文件都改为root属主。whoever:任何人
#chown_username=whoever
# 设定系统维护记录FTP服务器上传和下载状况的日志文件
# /var/log/vsftpd.log是默认的,也能够另设其它
#xferlog_file=/var/log/vsftpd.log
# 是否以标准xferlog的格式书写传输日志文件
# 默认为/var/log/xferlog,也能够经过xferlog_file选项对其进行设定
# 默认值为NO
#xferlog_std_format=YES
# 如下是附加配置,添加相应的选项将启用相应的设置
# 是否生成两个类似的日志文件
# 默认在/var/log/xferlog和/var/log/vsftpd.log目录下
# 前者是wu_ftpd类型的传输日志,能够利用标准日志工具对其进行分析;后者是vsftpd类型的日志
#dual_log_enable
# 是否将本来输出到/var/log/vsftpd.log中的日志,输出到系统日志
#syslog_enable
# 设置数据传输中断间隔时间,此语句表示空闲的用户会话中断时间为600秒
# 即当数据传输结束后,用户链接FTP服务器的时间不该超过600秒。能够根据实际状况对该值进行修改
#idle_session_timeout=600
# 设置数据链接超时时间,该语句表示数据链接超时时间为120秒,可根据实际状况对其个修改
#data_connection_timeout=120
# 运行vsftpd须要的非特权系统用户,缺省是nobody
#nopriv_user=ftpsecure
# 是否识别异步ABOR请求。
# 若是FTP client会下达“async ABOR”这个指令时,这个设定才须要启用
# 而通常此设定并不安全,因此一般将其取消
#async_abor_enable=YES
# 是否以ASCII方式传输数据。默认状况下,服务器会忽略ASCII方式的请求。
# 启用此选项将容许服务器以ASCII方式传输数据
# 不过,这样可能会致使由"SIZE /big/file"方式引发的DoS攻击
#ascii_upload_enable=YES
#ascii_download_enable=YES
# 登陆FTP服务器时显示的欢迎信息
# 若有须要,可在更改目录欢迎信息的目录下建立名为.message的文件,并写入欢迎信息保存后
#ftpd_banner=Welcome to blah FTP service.
# 黑名单设置。若是很讨厌某些email address,就可使用此设定来取消他的登陆权限
# 能够将某些特殊的email address抵挡住。
#deny_email_enable=YES
# 当上面的deny_email_enable=YES时,能够利用这个设定项来规定哪些邮件地址不可登陆vsftpd服务器
# 此文件需用户本身建立,一行一个email address便可
#banned_email_file=/etc/vsftpd/banned_emails
# 用户登陆FTP服务器后是否具备访问本身目录之外的其余文件的权限
# 设置为YES时,用户被锁定在本身的home目录中,vsftpd将在下面chroot_list_file选项值的位置寻找chroot_list文件
# 必须与下面的设置项配合
#chroot_list_enable=YES
# 被列入此文件的用户,在登陆后将不能切换到本身目录之外的其余目录
# 从而有利于FTP服务器的安全管理和隐私保护。此文件需本身创建
#chroot_list_file=/etc/vsftpd/chroot_list
# 是否容许递归查询。默认为关闭,以防止远程用户形成过量的I/O
#ls_recurse_enable=YES
# 是否容许监听。
# 若是设置为YES,则vsftpd将以独立模式运行,由vsftpd本身监听和处理IPv4端口的链接请求
listen=YES
# 设定是否支持IPV6。如要同时监听IPv4和IPv6端口,
# 则必须运行两套vsftpd,采用两套配置文件
# 同时确保其中有一个监听选项是被注释掉的
#listen_ipv6=YES
# 设置PAM外挂模块提供的认证服务所使用的配置文件名,即/etc/pam.d/vsftpd文件
# 此文件中file=/etc/vsftpd/ftpusers字段,说明了PAM模块能抵挡的账号内容来自文件/etc/vsftpd/ftpusers中
#pam_service_name=vsftpd
# 是否容许ftpusers文件中的用户登陆FTP服务器,默认为NO
# 若此项设为YES,则user_list文件中的用户容许登陆FTP服务器
# 而若是同时设置了userlist_deny=YES,则user_list文件中的用户将不容许登陆FTP服务器,甚至连输入密码提示信息都没有
#userlist_enable=YES/NO
# 设置是否阻扯user_list文件中的用户登陆FTP服务器,默认为YES
#userlist_deny=YES/NO
# 是否使用tcp_wrappers做为主机访问控制方式。
# tcp_wrappers能够实现linux系统中网络服务的基于主机地址的访问控制
# 在/etc目录中的hosts.allow和hosts.deny两个文件用于设置tcp_wrappers的访问控制
# 前者设置容许访问记录,后者设置拒绝访问记录。
# 如想限制某些主机对FTP服务器192.168.57.2的匿名访问,编缉/etc/hosts.allow文件,如在下面增长两行命令:
# vsftpd:192.168.57.1:DENY 和vsftpd:192.168.57.9:DENY
# 代表限制IP为192.168.57.1/192.168.57.9主机访问IP为192.168.57.2的FTP服务器
# 此时FTP服务器虽能够PING通,但没法链接
tcp_wrappers=YES
编辑user_list文件,vim /etc/vsftpd/user_list
容许test用户访问FTP 注意下图中默认UsRistListDebug
的设置。
默认状况下能够不编辑user_list文件。
按步骤操做之后,效果以下:
filezilla效果图以下:
systemctl stop firewalld
(临时关闭)或者systemctl disable firewalld
(禁止开机启动)rpm -qa | grep telnet
yum install telnet-server
FTP数字代码的意义
110 从新启动标记应答。
120 服务在多久时间内ready。
125 数据链路端口开启,准备传送。
150 文件状态正常,开启数据链接端口。
200 命令执行成功。
202 命令执行失败。
211 系统状态或是系统求助响应。
212 目录的状态。
213 文件的状态。
214 求助的讯息。
215 名称系统类型。
220 新的联机服务ready。
221 服务的控制链接端口关闭,能够注销。
225 数据连结开启,但无传输动做。
226 关闭数据链接端口,请求的文件操做成功。
227 进入passive mode。
230 使用者登入。
250 请求的文件操做完成。
257 显示目前的路径名称。
331 用户名称正确,须要密码。
332 登入时须要帐号信息。
350 请求的操做须要进一部的命令。
421 没法提供服务,关闭控制连结。
425 没法开启数据链路。
426 关闭联机,终止传输。
450 请求的操做未执行。
451 命令终止:有本地的错误。
452 未执行命令:磁盘空间不足。
500 格式错误,没法识别命令。
501 参数语法错误。
502 命令执行失败。
503 命令顺序错误。
504 命令所接的参数不正确。
530 未登入。
532 储存文件须要帐户登入。
550 未执行请求的操做。
551 请求的命令终止,类型未知。
552 请求的文件终止,储存位溢出。
553 未执行请求的的命令,名称不正确。
其余参考资料:
做 者:请叫我头头哥
出 处:http://www.cnblogs.com/toutou/
关于做者:专一于基础平台的项目开发。若有问题或建议,请多多赐教!
版权声明:本文版权归做者和博客园共有,欢迎转载,但未经做者赞成必须保留此段声明,且在文章页面明显位置给出原文连接。
特此声明:全部评论和私信都会在第一时间回复。也欢迎园子的大大们指正错误,共同进步。或者直接私信我
声援博主:若是您以为文章对您有帮助,能够点击文章右下角【推荐】一下。您的鼓励是做者坚持原创和持续写做的最大动力!