大家好,今天给各位分享centos搭建ftp服务器的一些知识,其中也会对如何在Centos下安装ftp服务器进行解释,文章篇幅可能偏长,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在就马上开始吧!

一、如何在Centos下安装ftp服务器

一:安装vsftpd

查看是否已经安装vsftpd

2

二:基于虚拟用户的配置

所谓虚拟用户就是没有使用真实的帐户,只是通过映射到真实帐户和设置权限的目的。虚拟用户不能登录CentOS系统。

修改配置文件

配置文件贴出来吧

3

三:使用Berkeley DB进行认证

yum install db4 db4-utils

然后,创建用户密码文本/etc/vsftpd/vuser_passwd.txt,注意奇行是用户名,偶行是密码

4

接着,生成虚拟用户认证的db文件

编辑认证文件/etc/pam.d/vsftpd,全部注释掉原来语句,再增加以下两句:

最后,创建虚拟用户配置文件

5

设置FTP根目录权限

最新的vsftpd要求对主目录不能有写的权限所以ftp为755,主目录下面的子目录再设置777权限

6

添加防火墙,把ftp的21端口开放 vi/etc/sysconfig/iptables

7

经过以上步骤我们就完成了ftp服务器的搭建,让我们畅游ftp吧

二、怎么搭建linux centos服务器

把在本地开发的php+mysql程序通过FTP架设到web服务器,并能通过域名正常访问网站。

END

步骤/方法

第一步:创建FTP

================================================================

chmod go+rwx/data《给data分配权限》

cd/data《进入data分区》

mkdir web《建立web目录》

chmod go+rwx/data/web

cd/《回到根目录,个人操作习惯,可跳过这步》

useradd ftpusername-d/data/web/cqwebseo.《添加FTP,ftpusername改为你的FTP用户、cqwebseo.改为你FTP对就的网站目录》

passwd cqwebseo《设置FTP密码》

echo cqwebseo>>/etc/ftpchroot《设置FTP用户只访问自己网站目录内的文件,不能访问其它目录。这点很重要》vi/etc/vsftpd/vsftpd.conf《修改FTP配置文件》

注:按一下i进入到编辑模式,修改完后按一下ESC退出编辑模式,再输入《:wq》(其作用是保存改修改并退出)《:q!》退出不保存《:q》没有做过修改用这个退出

idle_session_timeout

data_connection_timeout

找到这两个,,修改其值大于900,如果不修改这个的话,,FTP很慢

#xferlog_file

centos搭建ftp服务器 如何在Centos下安装ftp服务器

找到这个,删除#。。。作用是记录FTP的日志

/etc/init.d/vsftpd restart《重启FTP后配置文件才会生效》

到此第一步OK你可用FTP登陆啦!

注:我这配置有这个问题没解决,登陆报超时,但你耐心的等一会,就会好,如果有盆友知道解决方法的,请帮解答一下。。。谢谢。。

======================================================================

第三步:配置mysql

==============================================================================

/usr/local/mysql/bin/mysql-uroot-p《登陆mysql,按一下ENTER然后输入mysql密码,默认和万网root密码一样》

use mysql;《选择mysql表》

grant all on cqwebseo_db.* to cqwebseo@localhost identified by'cqwebseomysql';《添加一个数据,有所有权限,cqwebseo_db为数据库名,cqwebseo为用户名,cqwebseomysql为密码》

flush privileges;《不用解释吧,真就度娘一下。》

exit;《这个也不用说吧》

/usr/local/mysql/bin/mysqladmin-uroot-p8y6v8a3c7u shutdown《停止mysql》

/usr/local/mysql/bin/mysqld_safe《启动mysql》

到此。。就Ok。注意。。注意。。。。。分号分号分号

/usr/local/mysql/var《数据库存放目录》

================================================================================

第二步:配置d.conf

=======================================================================

echo hi! Tis test!/data/web/cqwebseo.> index.php《在cwebseo.里面建立一个内容为hi!Tis test!的index.php文件》

vi/var//conf/d.conf《进入主战场》

按上下键,翻到文档最后,然后加入下列表代码(不知道怎么加进的,看第一步的注意事项)

<VirtualHost*:80>

DocumentRoot/data/web/cqwebseo

DirectoryIndex index.php

ServerAdmin

ServerName cqwebseo.

ServerAlias

#ErrorLog/data/web/sanmao/log/error.log

#TransferLog/data/web/sanmao/log/aess.log

</VirtualHost>

简单说一下。。。。。。网上有很多这方面的资料

DocumentRoot/data/web/cqwebseo这个就是网站的决对说白就是你分配给他的FTP

DirectoryIndex index.php这个表示网站默认首页是index.php

ServerAdmin 服务管理员的邮箱

ServerName cqwebseo.这个你懂的

ServerAlias 这个也不需要解释吧

余下的两个被我注释掉喽,,,意思是网站的日志文件存放地

var//bin/apachectl restart重启apachectl

var//bin/apachectl stop停止apachectl

var//bin/apachectl start启动apachectl

OK到这里。。第二步就完。。。你能输入网址。。。看到这个目录啦。。不过有个前题条件。。这个个域名要解析过来了滴哈。。不然的话。。你就不要输入域名那两个。。用你服务的IP访问也行的。。。。如果你操作正确啦。。就能看到网页上出现hi! Tis test!

=========================================================================

三、如何在linux下开启FTP服务

Linux下ftp服务可以通过搭建vsftpd服务来实现,以CentOS为例,首先查看系统中是否安装了vsftpd,可以通过执行命令rpm-qa|grepvsftpd来查看是否安装相应的包,如果没有安装那么可以执行yum-yinstallvsftpd来安装,安装之后首先创建ftp用户,比如ftp_test,命令如下:

useradd-s/sbin/nologin-d/home/ftp_testftp_test

目录尽量不要选择根目录下,这里是/home/ftp_test,并且ftp_test这个目录不要手动创建,否则权限会有问题,执行命令的时候会自动创建,

可以看到权限现在是对于ftp_test用户是可读可写可执行的,其他用户和组下面的都没有任何权限,现在为ftp_test用户创建密码:

passwd ftp_test

执行之后输入2次密码确认就设置好了密码

然后编辑vsftpd配置文件,位置是:vim/etc/vsftpd/vsftpd.conf

找到anonymous_enable这个配置项,默认是YES,修改成NO,表示不允许匿名用户登录

现在保存配置文件,执行systemctl start vsftpd.service启动vsftp服务,然后可以通过命令:systemctl status vsftpd.service查看ftp服务的运行状态,现在就可以用ftp客户端进行连接了,这里用FileZilla测试,连接正常

现在基本的ftp服务就部署完了,客户端可以正常上传,,修改文件;但是这样有个问题就是所有的目录都暴露给客户端了,虽然客户端不能随意修改删除其余的文件,但是因为目录可见,所以总会有一些风险,所以接下来还需要配置让ftp用户只在自己的家目录下面活动,而无法查看其它任何目录,同样是打开配置文件/etc/vsftpd/vsftpd.conf,找到chroot_local_user=YES这个配置,默认是注释的,这里去掉注释,表示只让用户在自己的目录里面活动,如果只是保存这一个配置的话,用ftp连接客户端会返回500 OOPS: vsftpd: refusing to run with writable root inside chroot()的错误,即禁止运行在可写的家目录中,因为刚才ftp_test这个目录有w权限,而现在我们使用的vsftpd版本是3.0.2属于比较新的版本,为了安全*做了一些限制,如果你此时想通过chmoda-w/home/ftp_test来去掉目录的写权限,那么连接成功是没问题的,但是无法上传文件了,所以网上很多说修改权限的方法是不可取的,正确的做法是应该在下面添加一行配置allow_writeable_chroot=YES表示允许对家目录的写权限,具体配置如下:

配置完这两项以后保存退出,然后执行systemctl restart vsftpd.service重启vsftpd服务,现在重新使用ftp连接就成功了,并且任何操作也是没问题的

现在可以看到上面的路径是一个/,对于ftp用户来说也就是根目录了,只能在这个目录下操作,而无法跳出这个目录

以上就是vsftpd服务的基本搭建过程,实际使用时可以分配多个用户