Linux搭建ftp服务

痛定思痛。 2022-03-15 13:04 487阅读 0赞

目录

  • 简介
  • 一、安装配置vsftpd
  • 二、验证本地ftp服务是否可以正常访问
  • 三、创建用户并配置有用户的vsftpd配置文件
  • 四、外部ftp访问配置
  • 五、文件读写

简介

下面主要内容为阿里云租赁的Centos如何构建ftp服务器,讲解较为详细,亲测有用,搭建的过程中参考了网上一些文章,文后会给出,侵删

一、安装配置vsftpd

vsftpd是一款在Linux发行版中最受推崇的FTP服务器程序。特点是小巧轻快,安全易用,我们选择安装并配置vsftpd

1、安装vsftpd,直接使用yum安装

  1. yum install -y vsftpd

在这里插入图片描述
在这里插入图片描述
如上图所示则安装成功

vsftpd常用命令如下

  1. service vsftpd stop//停止vsftpd服务
  2. service vsftpd start//开启vsftpd服务
  3. service vsftpd restart//重启vsftpd服务
  4. netstat -antup | grep ftp//查看ftp服务端口
  5. systemctl enable vsftpd.service//vsftpd开机自启
  6. systemctl status vsftpd.service//查看vsftpd服务状态和日志

如果之前安装过的,想卸载重装的,下面是卸载方法

vsftpd卸载方法:

查看vsftpd版本(也可以查看是否安装了vsftpd):

  1. rpm -q vsftpd

在这里插入图片描述

卸载vsftpd

  1. rpm e vsftpd版本

在这里插入图片描述

2、安装成功后,则需配置vsftpd的相关配置文件

本次配置是配置匿名登录的配置文件

  1. vim /etc/vsftpd/vsftpd.conf

将 anonymous_enable=NO 设置为 YES

#anon_upload_enable=YES
#anon_mkdir_write_enable=YES
把这两句前的#号删除,移除注释
在这里插入图片描述
3、设置vsftpd开机自启

  1. systemctl enable vsftpd.service

二、验证本地ftp服务是否可以正常访问

1、安装ftp

  1. yum -y install ftp

在这里插入图片描述
在这里插入图片描述
如上图所示则安装成功

2、安装成功后,输入 ftp localhost ,使用anonymous登录,无需密码

出现 230 Login successful 则本地ftp可以正常匿名登陆

匿名登录成功后,我们需要创建用户,并修改一下配置文件,关闭匿名登录,让ftp使用账号密码登录

三、创建用户并配置有用户的vsftpd配置文件

1、创建用户useradd 用户名 -s /sbin/nologin

2、设置密码:passwd 用户名

3、创建成功后,和之前配置时相同,进入目录

anonymous_enable=YES 设置为 NO

anon_upload_enable=YES
anon_mkdir_write_enable=YES

在这两句前的加上#号,注释掉他们
在这里插入图片描述

找到 #chroot_local_user=YES#chroot_list_file=/etc/vsftpd/chroot_list (这个也可以不取消注释)将前面的注释删除
!\[在这里插入图片描述\](https://img-blog.csdnimg.cn/20190305102152113.png
4、配置好后,重启vsftpd

  1. systemctl restart vsftpd.service

四、外部ftp访问配置

1、查看防火墙状态

  1. systemctl status firewalld

在这里插入图片描述
Active状态为 active (running) 则防火墙处于开启状态

2、配置防火墙规则,开放21端口

  1. firewall-cmd --zone=public --add-port=21/tcp --permanent

在这里插入图片描述

  1. firewall-cmd --reload

在这里插入图片描述
这样防火墙就成功配置好了

也可以关闭防火墙,这样也能达到效果

  1. systemctl stop firewalld.service//关闭防火墙

为了防止服务器重启后防火墙还是自动开启,可以禁止防火墙开机自启

  1. systemctl disable firewalld.service//禁止防火墙重启后自启

防火墙其他命令:

  1. systemctl start firewalld//启动防火墙
  2. systemctl enable firewalld//开机自启防火墙

3、在本机电脑上取消使用被动ftp,不然会报200和227错误

如果没有取消使用被动ftp,就会报下图错误
在这里插入图片描述
下面是取消使用被动ftp的方法

在开始里输入int,选择Internet选项
在这里插入图片描述
在Internet属性中,选择高级,找到使用被动FTP,将前面的勾勾去掉,点击确定就好了
在这里插入图片描述

4、如果是使用阿里云服务器的,还需要检查服务器安全组是否开放了21端口(开启过的请忽略)

如果没开放21端口的话,会出现下图错误
在这里插入图片描述
查看阿里云服务器开放端口如下

登录后点击控制台
在这里插入图片描述
进入自己的服务器,我的是云服务器
在这里插入图片描述
点击安全组
在这里插入图片描述
配置规则

在这里插入图片描述
查看是否开放21端口
在这里插入图片描述
如果没有开放,则在右上角点击添加安全组规则
在这里插入图片描述
在这里插入图片描述
添加规则,点击确定就好了

5、在windows上输入ftp://ip地址,输入账号密码,就可以登录成功了
在这里插入图片描述
在这里插入图片描述
登录成功后,一般是没有东西的,这时候你想上传东西,会发现你没有权限上传,这时候我们需要赋予读写文件的权限

五、文件读写

1、设置用户文件夹权限

  1. chmod 777 -R /home/用户名

这时候文件就可以正常上传了

至此ftp就配置成功了,如果想要匿名登录ftp,可以在本地匿名成功登录后,弄好外部ftp访问就可以直接在windows上输入ftp://ip地址,就可以登录了,无需账号密码,匿名登录后,会有一个pub文件夹(系统预设),然后赋予文件权限(chmod 777 -R /var/ftp/pub)就好了

问题一:匿名可以登录FTP服务器,但是用指定的用户名和密码无法登录到该FTP服务器,用ftp localhost 登录报500错误

解决办法:https://blog.csdn.net/qq_41521180/article/details/88209921

参考文章:
1、https://www.cnblogs.com/zhi-leaf/p/5983550.html
2、https://blog.csdn.net/qq_41020714/article/details/88068082
3、https://www.cnblogs.com/ismallboy/p/6785270.html

发表评论

表情:
评论列表 (有 0 条评论,487人围观)

还没有评论,来说两句吧...

相关阅读

    相关 FTP服务

    1、检查是否已经安装了vsftp 首先查看系统中是否成功安装了vsftpd,执行下面命令(有内容则安装了ftp) rpm -qa | grep vsftpd

    相关 linuxFTP服务

    FTP服务器 文件传输协议(File Transfer Protocol)是用于在网络上进行文件传输的一套标准协议,使用客户/服务器模式。专门用来传输文件的协议 工作原

    相关 linuxFTP服务

    在万维网出现以前,用户使用DOS方式传输文件,最通用的应用程序就是FTP,FTP属于应用层协议,使用TCP端口20和21进行传输 FTP有两种文件传输模式: 二进制模式,...