Centos安装vsftpd:centos配置vsftpd,ftp报200和227错误

news2025/1/15 19:52:24

一、centos下载安装vsftpd(root权限)

1、下载安装

yum -y install vsftpd

2、vsftpd的配置文件

 /etc/vsftpd.conf

3、备份原来的配置文件

sudo cp /etc/vsftpd.conf /etc/vsftpd.conf.backup

4、修改配置文件如下:vi /etc/vsftpd.conf

write_enable=YES
local_umask=000
chroot_local_user=YES
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list   #允许的用户,一行一个用户名
 

#解析
write_enable   全局设置,允许ftp用户写
local_umask    设置对文件的权限,000-》 777  022--》755
chroot_local_user  允许本地用户
chroot_list_enable=YES 
chroot_list_file=/etc/vsftpd/chroot_list  #将用户写到这个文件中,才能

5、创建一个ftpuser,用于登录ftp服务器

#创建ftpuser
 
useradd -d /home/ftp  -s /bin/bash ftpuser

 
-d  指定该用户的家目录,如果没有指定,就会在/home下生成一个ftpuser目录
-s  指定进来后,启动
 
#指定目录后,需要在/home中手动创建一个ftp目录
 
#设置密码
sudo passwd ftpuser

6、给ftpuser新建家目录,ftp

sudo mkdir /home/ftp
sudo chown ftpuser:ftpuser /home/ftp  #设置/home/ftp的所属组和所属用户

7、到ftp下创建一个upload目录

mkdir /home/ftp/upload
 
#设置所属组和所属用户
sudo chown ftpuser:ftpuser /home/ftp/upload
 
#设置权限,可读写,1执行,2写,4读
sudo chmod -R 777 upload 
 
#这样其他用户就可以将数据上传到这里了

8、创建vsftpd.chroot_list文件并添加运行使用ftp的用户名

 vi /etc/vsftpd/chroot_list
 
 #一行一个用户名
 ftpuser

9、启动vsftpd

#启动
sudo service vsftpd start
#重启
sudo service vsftpd restart
#停止
sudo service vsftpd stop

10、安装iptables和iptables-services

CentOS7默认的防火墙不是iptables,而是firewalle.

安装iptable iptable-service
#先检查是否安装了iptables
service iptables status
#安装iptables
yum install -y iptables
#升级iptables
yum update iptables 
#安装iptables-services
yum install iptables-services

11、关闭防火墙

#停止firewalld服务
systemctl stop firewalld
#禁用firewalld服务
systemctl mask firewalld

12、开放21端口,ftp协议的默认端口

#查看iptables现有规则
iptables -L -n
#先允许所有,不然有可能会杯具
iptables -P INPUT ACCEPT
#清空所有默认规则
iptables -F
#清空所有自定义规则
iptables -X
#所有计数器归0
iptables -Z
#允许来自于lo接口的数据包(本地访问)
iptables -A INPUT -i lo -j ACCEPT
#开放22端口
iptables -A INPUT -p tcp --dport 22 -j ACCEPT
#开放21端口(FTP)
iptables -A INPUT -p tcp --dport 21 -j ACCEPT
 
service iptables save
开启iptables服务 

13、启动iptables-services

#注册iptables服务(开机启动)
systemctl enable iptables.service
#开启服务
systemctl start iptables.service
#查看状态
systemctl status iptables.service

13、连接

到windows电脑的地址栏输入: ftp://ip地址

右键空白处,选择登录:

输入ftpuser,和设置的密码,就可以登录了。

登录成功,就可以进入到ftpuser的家目录了。

二、报错解决

1、在地址栏输入地址后,报ftp200和227错误

解决方法:

在windows下操作:
1、右键网络,打开“网络和Internet设置”
2、网络和共享中心
3、Internet选项
4、高级
5、取消掉 “使用被动FTP(用于防火墙和DSL调制解调器的兼容)”
6、最后,点击应用和确定

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1331812.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

在Jetpack Compose中使用ExoPlayer实现直播流和音频均衡器

在Jetpack Compose中使用ExoPlayer实现直播流和音频均衡器 背景 ExoPlayer与Media3的能力结合,为Android应用程序播放多媒体内容提供了强大的解决方案。在本教程中,我们将介绍如何设置带有Media3的ExoPlayer来支持使用M3U8 URL进行直播流。此外&#x…

【数据结构一】初始Java集合框架(前置知识)

Java中的数据结构 Java语言在设计之初有一个非常重要的理念便是:write once,run anywhere!所以Java中的数据结构是已经被设计者封装好的了,我们只需要实例化出想使用的对象,便可以操作相应的数据结构了,本篇…

锯齿云服务器租赁使用教程

首先登陆锯齿云账号 网盘上传数据集与代码 随后我们需要做的是将所需要的数据集与代码上传到网盘(也可以直接在租用服务器后将数据集与代码传到服务器的硬盘上,但这样做会消耗大量时间,造成资源浪费) 点击工作空间:…

【Python】基于flaskMVT架构与session实现博客前台登录登出功能

目录 一、MVT说明 1.Model层 2.View层 3.Template层 二、功能说明 三、代码框架展示 四、具体代码实现 models.py 登录界面前端代码 博客界面前端代码(profile.html) main.py 一、MVT说明 MVT架构是Model-View-Template的缩写,是…

基于 Editor.js 开发富文本编辑器库

开始 Editor.js 提供了简单而直观的用户界面,根据需求可以灵活添加自定义的编辑工具,通过插件扩展功能 Editorjs 使用 js 开发,脱离框架依赖,因此可以基于它封装富文本编辑器,用于 Vue 和 React 项目 editor-js-com…

电化学仿真的基础知识笔记

1 概述 电化学反应是一种特殊的化学反应,其能量转移形式为化学能和电能之间互相转换。根据能量转换方向,可分为两类: 原电池(Galvanic cells):将化学能转化为电能,对外放电电解槽(…

2024 年 22 款顶级免费数据恢复软件比较 [Windows 和 Mac]

适用于 Windows 和 Mac 用户的最佳数据恢复软件下载列表和比较,可快速恢复丢失的数据、已删除的文件、照片或格式化的分区数据: 数据恢复软件是一种从任何存储介质恢复丢失文件的应用程序。它可以恢复由于病毒攻击、硬盘故障或任何其他原因而意外删除或…

Hadoop入门学习笔记——四、MapReduce的框架配置和YARN的部署

视频课程地址:https://www.bilibili.com/video/BV1WY4y197g7 课程资料链接:https://pan.baidu.com/s/15KpnWeKpvExpKmOC8xjmtQ?pwd5ay8 Hadoop入门学习笔记(汇总) 目录 四、MapReduce的框架配置和YARN的部署4.1. 配置MapReduce…

nn.LSTM个人记录

简介 nn.LSTM参数 torch.nn.lstm(input_size, "输入的嵌入向量维度,例如每个单词用50维向量表示,input_size就是50"hidden_size, "隐藏层节点数量,也是输出的嵌入向量维度"num_layers, "lstm 隐层的层数,默认…

02_算法分析

02_算法分析 0.1 算法的时间复杂度分析0.1.1 函数渐近增长概念:输入规模n>2时,算法A1的渐近增长小于算法B1 的渐近增长随着输入规模的增大,算法的常数操作可以忽略不计测试二:随着输入规模的增大,与最高次项相乘的常…

【计数DP】牛客小白月赛19

登录—专业IT笔试面试备考平台_牛客网 题意 思路 首先做法一定是计数 dp 然后状态设计,先设 dp[i] 然后看影响决策的因素:两边的火焰情况,那就 dp[i][0/1][0/1]表示 前 i 个,该位有无火焰,该位右边有无火焰的方案数…

单片机的RTC获取网络时间

理解网络同步校准RTC的原理需要考虑NTP、SNTP、RTC这三个关键组件的作用和交互。下面详细解释这个过程: 1. NTP(Network Time Protocol): 协议目的:NTP是用于同步计算机和设备时钟的协议。它通过在网络上与时间服务器通…

为什么react call api in cDidMount

为什么react call api in cDM 首先,放到constructor或者cWillMount不是语法错误 参考1 参考2 根据上2个参考,总结为: 1、官网就是这么建议的: 2、17版本后的react 由于fiber的出现导致 cWM 会调用多次! cWM 方法已…

【并发设计模式】聊聊两阶段终止模式如何优雅终止线程

在软件设计中,抽象出了23种设计模式,用以解决对象的创建、组合、使用三种场景。在并发编程中,针对线程的操作,也抽象出对应的并发设计模式。 两阶段终止模式- 优雅停止线程避免共享的设计模式- 只读、Copy-on-write、Thread-Spec…

LangChain 30 ChatGPT LLM将字符串作为输入并返回字符串Chat Model将消息列表作为输入并返回消息

LangChain系列文章 LangChain 实现给动物取名字,LangChain 2模块化prompt template并用streamlit生成网站 实现给动物取名字LangChain 3使用Agent访问Wikipedia和llm-math计算狗的平均年龄LangChain 4用向量数据库Faiss存储,读取YouTube的视频文本搜索I…

【线性代数】决定张成空间的最少向量线性无关吗?

答1: 是的,张成空间的最少向量是线性无关的。 在数学中,张成空间(span space)是一个向量空间,它由一组向量通过线性组合(即每个向量乘以一个标量)生成。如果这组向量是线性无关的&…

CV算法面试题学习

本文记录了CV算法题的学习。 CV算法面试题学习 点在多边形内(point in polygon)高斯滤波器 点在多边形内(point in polygon) 参考自文章1,其提供的代码没有考虑一些特殊情况,所以做了改进。 做法&#xff…

网络爬虫之多任务数据采集(多线程、多进程、协程)

进程:是操作系统中资源分配的基本单位 线程:使用进程分配的资源处理具体任务 一个进程中可以有多个线程:进程相当于一个公司,线程就是公司里面的员工。 一 多线程 多线程都是关于功能的并发执行。而异步编程是关于函数之间的非…

持续集成交付CICD:Jira 远程触发 Jenkins 实现更新 GitLab 分支

目录 一、实验 1.环境 2.GitLab 查看项目 3.Jira新建模块 4. Jira 通过Webhook 触发Jenkins流水线 3.Jira 远程触发 Jenkins 实现更新 GitLab 分支 二、问题 1.Jira 配置网络钩子失败 2. Jira 远程触发Jenkins 报错 一、实验 1.环境 (1)主机 …

uniapp自定义头部导航怎么实现?

一、在pages.json文件里边写上自定义属性 "navigationStyle": "custom" 二、在对应的index页面写上以下&#xff1a; <view :style"{ height: headheight px, backgroundColor: #24B7FF, zIndex: 99, position: fixed, top: 0px, width: 100% …