欢迎访问 生活随笔!

凯发k8官方网

当前位置: 凯发k8官方网 > 运维知识 > centos >内容正文

centos

centos搭建ftp服务 -凯发k8官方网

发布时间:2024/9/30 centos 5 豆豆
凯发k8官方网 收集整理的这篇文章主要介绍了 centos搭建ftp服务 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

前言:

centos 搭建ftp服务学习记录

ftp简介

ftp简称“文件传输协议”,用于internet上的控制文件的双向传输。
在ftp中常遇到两个概念:
下载和上传

“下载”文件就是从远程主机拷贝文件至自己的计算机上
“上传”文件就是将文件从自己的计算机拷贝到远程主机上。

ftp连接及传输模式

控制连接 tcp 21 ,用于发送ftp命令信息
数据连接 tcp 20,用于上传、下载数据

数据连接的建立类型:

主动模式:服务端从20端口主动向客户端发起连接 被动模式:服务端在指定范围内某个端口被动等待客户端连接

被动模式相较于主动模式好,因为主动连接的话会涉及到开放服务器端防护墙的20、21端口,而且主动模式服务器无法控制客户端所开启的端口,也容易被客户端的防火墙拦截。

ftp用户的类型:
匿名账户:

anonymous
ftp

本地用户

搭建过程

服务器端:

这里实验使用的是vsftpd,所以要先下载

$ yum install vsftpd

但是下载的过程遇到了点问题,如下:

这个问题是yum命令被锁

existing lock /var/run/yum.pid

解决方法:等待一会或者强制结束

rm -f /var/run/yum.pid

下载好之后,先来了解一下vsftpd服务的一些默认目录,以免后面操作时不知道有关目录在哪里

/usr/sbin/vsftpd ---- vsftpd的主程序 /etc/rc.d/init.d/vsftpd ---- 启动脚本 /etc/vsftpd/vsftpd.conf ---- 主配置文件 /etc/pam.d/vsftpd ---- pam认证文件 /etc/vsftpd.ftpusers ---- 禁止使用vsftpd的用户列表文件 /etc/vsftpd.user_list ---- 禁止或允许使用vsftpd的用户列表文件 /var/ftp ---- 匿名用户主目录 /var/ftp/pub ---- 匿名用户的下载目录

查看配置文件

vi /etc/vsftpd/vsftpd.conf #ps:以root权限去看,因为下载的时候便是用的root用户


这里就解释其中重要的一些配置:

参数作用
download_enable是否允许下载文件
anonymous_enable是否允许匿名用户访问
anon_upload_enable是否允许匿名用户上传文件
anon_mkdir_write_enable是否允许匿名用户创建目录
anon_other_write_enable是否开放匿名用户的其他写入权限
local_enable是否允许本地用户登录 ftp


其他的如果用到查询即可

安装完成后,启动 ftp 服务: systemctl restart vsftpd.service 启动后,可以看到系统已经监听了 21 端口: netstat -nltp | grep 21

客户端:

客户机需要安装一下ftp包,这样才能使用连接命令ftp ip,下载命令:

yum install ftp

匿名用户测试

对于vsftpd默认配置是开启了本地用户和匿名用户,可以直接登录的,所以这里没有对配置文件进行修改

服务器端先开启一下服务

客户端使用匿名用户连接,注意需要在同一个网段(两个网络都选为仅主机模式即可或自己手动配置),如果不在一个网段则会出现下面的问题

但是还有一种情况,就是客户端和服务器端都在一个网段,还是出现这个情况,那就应该是服务器端的防火墙将请求给拦截了,所以就需要关闭服务器端的防火墙

解决方法:

1.查看防火墙:iptables -l 2.清空防火墙:iptables -f #注:这个设置只是暂时的,一旦关机再开机还需要重新进行输入,如果想永久更改就需要下载iptables-services,然后进行更改,这里不详细叙述

客户端再次连接,连接成功(匿名用户ftp没有密码,空格即可)

配置文件中匿名用户登录 vsftpd 服务后的根目录是 /var/ftp/,进入/var/ftp/pub上传一个自己创建的文件看一下,发现无法创建

查看一下配置文件,匿名用户上传功能开了,但为什么还是不行

看了老师的讲解,才知道目录也需要进行设置权限,但如果直接使用chmod命令是不行的,会有一小bug,最好的方法是更改目录的属主

$ chown ftp /var/ftp/pub


重启一下,客户端再次连接,但发现还是不行,之前忘记在配置文件加上一段代码,这段代码写哪里都可以,只要是在配置文件中

write_enable=yes #enable any form of ftp write command

但。。。。还是不行,我要吐了,什么情况,查了半天发现:是selinux限制了,把selinux关掉就可以了

先查看下selinux里有哪些关于ftp的

getsebool -a | grep ftp


如果是写权限和全部权限是off的话就使用命令打开

setsebool -p allow_ftpd_anon_write on setsebool -p allow_ftpd_full_access on

再在客户端进行上传测试,成功。

下载测试,成功

最后这里提一点常用的linux ftp 命令

ftp中用lcd切换本地路径,用cd切换远程服务器的路径。如:cd目录名(进入服务器目录) lcd目录名(进入本机目录) !命令是执行本地shell命令

具体的看大师傅的博客
linux ftp 命令

本地用户测试

上面使用了匿名用户进行登陆,并上传下载,这次通过本地用户来实现一下

我的本地用户是shy,第一步就设置配置文件(其实不用改就可以)

local_enable=yes write_enable=yes local_umask=022 userlist_deny=yes userlist_enable=yes

为了安全默认禁止以root身份登入,如果你实在想改的话就可以编辑一下文件

vi /vsftpd/user_list


不过不建议,自己可以设置一个新的用户进行测试,这里我就使用本地用户shy

登陆成功,进行上传下载测试,注意创建的文件位于shy账户家目录

上传成功

除本地用户以为,还有一个虚拟用户,虚拟用户不是系统中存在的,因此比本地用户安全。这里就先不学习,待到有需要时再进行学习。

总结

以上是凯发k8官方网为你收集整理的centos搭建ftp服务的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得凯发k8官方网网站内容还不错,欢迎将凯发k8官方网推荐给好友。

网站地图