如何在CentOS7上设置FTP服务器? (centos7 ftp服务器)

当你需要在你的Linux服务器上共享文件时,FTP(File Transfer Protocol)是一个非常流行的协议。而在CentOS 7上设置FTP服务器也很简单。在本文中,我们将以步骤为导向,向您展示如何在CentOS 7上设置FTP服务器。

步骤1:安装vsftpd

我们需要安装FTP服务器软件。在CentOS 7中,我们将使用vsftpd(非常安全而且易于配置)。您可以通过以下命令来安装:

sudo yum install vsftpd -y

通过给出的命令,CentOS7将自动安装vsftpd。

步骤2:配置vsftpd

一旦FTP服务器软件被成功安装后,我们就需要进行一些必要的配置。打开配置文件 /etc/vsftpd/vsftpd.conf:

sudo vi /etc/vsftpd/vsftpd.conf

要根据您的环境进行配置更改,请在配置文件中进行必要的更改。

默认情况下,以下4个行被打开并设置如下:

anonymous_enable=NO

local_enable=YES

chroot_local_user=YES

write_enable=YES

让我们详细了解一下配置参数的含义:

– anonymous_enable: 如果您想允许匿名用户登录,则将其设置为YES。但是由于安全考虑,我们建议使用FTP用户进行登录和文件共享。 因此,该参数默认设置为NO。

– local_enable: 控制是否允许使用FTP用户进行身份验证。将其设置为YES。

– chroot_local_user: 使FTP用户在以其自己的目录作为FTP根目录时无法向上跳转到上级目录。这样,FTP用户仅限在其目录中工作。这是安全设置,因此请将其设置为YES。

– write_enable: 如果您想允许上传文件,请将其设置为YES。

此外,在同一配置文件中,我们还需要更改以下设置:

listen=NO

listen_ipv6=YES

listen=NO将FTP服务器的主动传输模式关闭,而listen_ipv6=YES则启用IPv6传输。

步骤3:创建FTP用户

为了允许用户进行登录FTP服务器,您需要创建新的FTP用户。使用以下命令创建FTP用户:

sudo useradd -m ftpuser -s /in/nologin

在创建FTP用户之前,请确保已经安装nologin。在上面的命令中使用该选项,以确保FTP用户不能用作系统登录用户。

步骤4:为FTP用户创建密码

用户创建成功后,为其设置密码以进行身份验证。您可以使用以下命令设定FTP用户的密码:

sudo passwd ftpuser

输入所需密码后,将其保存。您可以通过在/etc/passwd文件中查看用户的详细信息来确认FTP用户是否成功创建:

cat /etc/passwd | grep ftpuser

步骤4:启动VSFTPD服务

最后一个步骤是启动vsftpd服务。在CentOS7上,您可以使用以下命令启动vsftpd服务:

sudo systemctl start vsftpd

启动服务后,您可以使用以下命令检查vsftpd服务状态:

sudo systemctl status vsftpd

如果服务正在运行,则状态应为活动。

步骤5:配置防火墙规则

默认情况下,防火墙可能会阻止对FTP服务器的访问。因此,您需要通过打开防火墙端口来配置防火墙规则。您可以使用以下命令配置防火墙规则:

sudo firewall-cmd –zone=public –add-port=20/tcp –permanent

sudo firewall-cmd –zone=public –add-port=21/tcp –permanent

sudo firewall-cmd –reload

以上规则将允许FTP服务的数据传输。

如何访问FTP服务器?

现在,我们已经成功设置FTP服务器,并创建了一个FTP用户。您现在可以使用FTP客户端软件来连接到FTP服务器并进行文件共享了。使用FTP客户端,您可以根据系统特定的用户名和密码进行身份验证,然后便可以从FTP服务器上下载或上传文件了。

在本文中,我们已经详细展示了如何在CentOS 7上设置FTP服务器。我们已经演示了如何:

– 安装vsftpd

– 配置vsftpd

– 创建FTP用户

– 为FTP用户创建密码

– 启动VSFTPD服务

– 配置防火墙规则

现在,您已经拥有了一个安全而且易于使用的FTP服务器。记住,在设置FTP服务器时,请确保使用优秀的安全措施以保持服务器安全。

相关问题拓展阅读:

ftp连接问题,centos7上搭建的ftp服务器,Linux客户端能连接,但是win连接不上

会不会是被动模式端口不通,如果是同一个局域网,你linux防火墙可以关闭试下

服务器上设置IIS里的FTP服务开启,设个帐号允许登陆FTP,并且在电脑的D盘或者E盘给某个文件禅腔埋夹设置好允许这个帐号访问,再在IIS里设置这个帐号的根路径为那个文件夹。把让客圆丛户端下载的文件资源放到这个文件夹里。

客户端打开FTP登陆软件,输入服务器的IP,上面设置好的帐号和密码,登陆,就可以贺蚂看到服务器上的那个文件夹里的东西了。

centos 7 vsftpd重启报错 vsftpd.service: control process exited, code=exited status=1

查看端口号ss -tanl |grep 21

FTP 是File Transfer Protocol(

文件传输协议

)的英文简称,而中文简称为“文传协议”。

工作方式

主动模式:客户端从一个任意的非特权端口N(N>1024)连接到

FTP服务器

的命令端口,也就是21端口。然后客户端开始 监听端口N+1,并发送FTP命令“port N+1”到FTP服务器。接着服务器会从它自己的数据端口(20)连接到客户端指定的数据端口(N+1)。

被动模式:当开启一个 FTP连接时,客户端打开两个任意的非特权本地端口(N > 1024和N+1)。之一个端口连接服务器的21端口,但与主动方式的FTP不同,客户端不会提交PORT命令并允许服务器来回连它的数据端口,而是提交 PASV命令。这样做的结果是服务器会开启一个任意的非运圆特权端口(P > 1024),并发送PORT P命令给客户端。然后客户端发起从本地端口N+1到服务器的端口P的连接用来传送数据。

先安装vsftpd

# yum install vsftpd -y# systemctl  start vsftpd      #启动vsftpd# systemctl  status vsftpd    #查看vsftpd状态

vsftpd.service – Vsftpd ftp daemon

Loaded: loaded (/usr/lib/systemd/system/vsftpd.service; disabled; vendor preset: disabled)

Active: active (running) since 五:22:39 CST; 1min 50s ago

Process:ExecStart=/usr/in/vsftpd /etc/vsftpd/vsftpd.conf (code=exited, status=0/SUCCESS)

Main PID:(vsftpd)

CGroup: /system.slice/vsftpd.service

└─12559 /usr/in/vsftpd /etc/vsftpd/vsftpd.conf

vsftp三种认证模式

annoymous 匿名用户 #无虚输入密码即可访问

local user 真实用户 #服务器上存在的用户

guest user 虚拟用户 #映射到ftp服务器的用户

vsftpd的默认

配置文件

# vim /etc/vsftpd/vsftpd.conf

# 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_dirlocal_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  #本地用户创建文件的umask值……

dirmessage_enable=YES    #当用户进入某个目录时,会显示该目录需要注意的内容是  messagexferlog_enable=YES #启动维护记录服务器上传和下载情况的日志旁闭塌文件connect_from_port_20=YES   #FTP PORT主动模式进行数据传输时使用20端口xferlog_std_format=YES #传输日志文件将以标准 xferlog 的格式书写listen_ipv6=YES  #监听ipv6pam_service_name=vsftpd  #pam认证模块的名字userlist_enable=YES   #拒绝登陆ftp的名单tcp_wrappers=YES   #限制IP访问vsftpd

匿名用户认证

我们刚才已经开启了vsftpd 我们已经可以登陆ftp站点 #需关闭防火墙或设置规则 并关闭selinux

我们已经登陆到ftp站点了

试着创建一个

文件夹

出现550报错 是因为我们是以匿名用户登陆到FTP站点 并没有给匿名用户创建目录的权限

在vsftpd配置文件中添加

anon_upload_enbale  #允许匿名用户上传anon_mkdir_write_enable=yes  #允许匿名用户创建目录anon_other_write_enable=yes #允许匿名用户修改目录名称或删除目录

再赋予匿名用户登陆的文件夹更高权限

chmod 777 /var/ftp/pub

已经可以创建并修改文件夹

还有一种方法 是将匿名用户登陆到的目录系统用户改成ftp 就不用修改目录权限

#chown -Rf ftp /var/ftp/pub

本地用户模式

修改vsftp配置文件

# vim /etc/vsftpd/vsftpd.conf

加入一行

local_root=/etc/ftp

创建 一个用户

#useradd 51cto# passwd 51cto更改用户 51cto 的密码 。

新的 密码:

无效的密码: 密码少于 8 个字符

重新输入新的 密码:

passwd:所有的身份验证令牌已经成功更新。

创建这个目录

#mkdir /etc/ftp

重启一下vsftpd

用我们刚创建的用户登陆

登陆成功

诶? 既然说本地用户模式是 服务器上真是存在的用户 那我们的管理员root 也是真实存在的 那是否可以登陆呢?

无法登陆 这是为什么呢?

这是因为vsftpd有一个禁止用户登陆的名单

在上面的匿名用户说过 vsftpd默认是开启禁止用户名单的 我们的root用户在名单之中 自然就无法登陆了 禁止root用户登陆也对服务器提升了安全性 防止***通过ftp爆破root密码

虚拟用户

虚拟用户是这三种认证模式中最安全的一种 也稍微复杂一些

虚拟用户是用PAM认证模块中配置 FTP认证的数据库文件来进行加密

关于PAM认证可以看

首先我们在/etc/目录下 创立一个用户数据库文件

奇数行为账户偶数行为密码

为了安全我们用db_load命令 用

哈希算法

将明文信息转换成密文数据库文件并降低文件的权限 避免其他人看到数据库文件

#db_load -T -t hash -f /etc/ftp/ftp.txt ftp.db#rm ftp.txt#chmod 600 ftp.db

我们用默认的pam文件 注释其他行

新加两行

db_load 后面跟的是数据库的路径不用写数据库的后缀

创建存放虚拟用户配置文件的目录

#mdir -p /etc/ftp

配置虚拟用户权限

#vim user1

#vim user2

创建两个用户登陆的目录

#mkdir -p /home/user1 #mkdir -p /home/user2赋予更高权限

#chmod 777 /home/*

修改vsftpd配置文件

重启一下vsftpd

测试一下权限

我也遇到同样的问题,status=1.老哥,你解决了吗,求解决办法。

如何启动centos的ftp服务启动失败报错误,没有vsftpd.config这个文件

Linux一键安装web环境全攻略   工具:update_source.sh   使用sftp功能上传下载文件   工具:auto_fdisk.sh   手把手教你nginx下如何添加伪静态   工具:install_vnc_server.sh   Redhat5和Centos5安装vncserver实现图形化访问   工具:ECS自动迁移工具   ECS Debian系统sudo命令安装   ECS Linux系统编译安装apache平滑重启   ECS Linux系统上安装go语言工具   apache开启伪静态模搜慧中块   ECS Apache的winnt_accept: Asynchronous AcceptEx failed问题   MySQL事件调度器使用介绍   SUSE安装软件出现报错无法连接公网源地址   ECS Centos 通过 yum whatprovides 查找哪个包提供 SO 动态库文件   gentoo emerge使用介绍   discuz linux系统安装教程   ECS Linux SUSE安装VNC   SUSE使用在线安装zypper install 提示denied   ECS linux架设Samba服务   ECS Linux挂载数据盘报错   ECS centos 6.6编译安装nginx   ECS Linux服务器一键安装包的mysql启动失败   centos7.0使用yum安装mysql报错   ECS Linux NTP手动更新报错   ECS Linux服务器安装LNMP环境   ubuntu安装报错Reading package lists… Error! 解决方案   ECS Linux使用一键安装脚本环境后如何更换升级php版本   ECS Centos7 系统安装图形化桌面   ECS Linux系统AHM安装世山说明   ECS centos7通过yum安装mysql 5.6   工具:auto_fdisk_ssd.sh   ECS Linux 安装配置openssl   ECS CentOS7系统安装配置iptables防火墙   ECS SUSE10环境下通过YaST安装软件   ECS Ubuntu14.04 配置软件源解决安装依赖包问题   ECS Linux系统通过filezilla软件使用ssh协议上传下载文件   ECS Linux CentOS 6.5安装桌面环境后桌面环境无法正常启动   ECS Debian 系统安装mysql数据库   ECS Linux一键环境包Nginx配置密码访问网站   ECS Linux系统yum安装命令无法找到   ECS Linux一键安装包安装之后mysql执行命令错误   yum update 出现报错Transaction Check Error:   ECS Linux系统安装配置Tomcat方法   ECS linux 搭建NFS服务实现磁盘共享   ECS ubuntu 14.04 安装MySQL Server提示mysql-server : Depends: mysql-server-5.5   ECS OpenSUSE 安装配置vsftpd   ECS 内网ubuntu 14.04系统无法安装openjdk   Coreos 增加阿里云Docker镜像库   ECS Linux centos7环境下安装Mysql数据库的方法   Linux系统服务器ftp账号更改碧搭家目录方式   ECS Linux安装配置Squid代理服务   Centos7安装使用wkhtmltopdf实现html页面转换成pdf文档   Netperf网络性能的测量工具介绍   opensuse系统安装nginx方法   微软JDBC驱动Bug导致用户Linux环境连接SQLServer RDS出现异常   ECS Linux服务器安装JDK配置JAVA环境

关于centos7 ftp服务器的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。


数据运维技术 » 如何在CentOS7上设置FTP服务器? (centos7 ftp服务器)