【Linux】基于FTP协议实现Linux与Windows文件传输

news2024/9/24 17:13:14

文章目录

  • 前言
  • (一) Linux FTP网络环境搭建
    • 1.安装ftp包
    • 2. 置匿名用户访问的FTP服务(最大权限)
    • 3.为匿名访问ftp的根目录下的pub子目录设置最大权限,以便匿名用户上传数据
    • 4. 开启服务,关闭防火墙和增强型安全功能
  • (二)Windows 设置
  • 测试
  • 问题记录


前言

基于FTP协议实现Linux与Winodows实现文件传输,是大学期间的一个小实验。在这里做个总结。

(一) Linux FTP网络环境搭建

实验环境:

  • Linux CentOS 7.9
  • Xshell 7
  • Win10

1.安装ftp包

通过yum安装vxftpd pacakge,并按照如下指令执行

yum -y install vsftpd

修改 vsftpd.conf,此前先备份 成 vsftpd.conf.bak,防止该配置文件改错导致无法运行。

[root@localhost ~] cd /etc/vsftpd/
[root@localhost vsftpd] ls
ftpusers  user_list  vsftpd.conf  vsftpd_conf_migrate.sh
[root@localhost vsftpd] cp vsftpd.conf  vsftpd.conf.bak
[root@localhost vsftpd] ls
ftpusers  user_list  vsftpd.conf  vsftpd.conf.bak  vsftpd_conf_migrate.sh
[root@localhost vsftpd] vim vsftpd.conf
vsftpd.conf      vsftpd.conf.bak  

2. 置匿名用户访问的FTP服务(最大权限)

执行vim vsftpd.conf ,加上如下图红框所示的配置信息,允许开启匿名用户读写权限。
在这里插入图片描述

这里可以先退出vim的编辑模式,为了方便找到上述的红框配置信息在文件中的位置,执行下面的指令就可以看到这些文件所在的具体行数。

grep -n  --color=auto 'anon*' vsftpd.conf

在这里插入图片描述

然后vim vsftpd.conf,退出编辑模式,执行::set nu 就可以在vim编辑器中展示行数。
在这里插入图片描述

3.为匿名访问ftp的根目录下的pub子目录设置最大权限,以便匿名用户上传数据

chmod 777 /var/ftp/pub/

4. 开启服务,关闭防火墙和增强型安全功能

分别执行下面三个指令

systemctl start vsftpd
systemctl stop firewalld
setenforce 0

执行:ifconfig,看到网卡 ip为192.168.1.128,保存好,后续连接会用到。
在这里插入图片描述

(二)Windows 设置

  • 点击桌面上的我的电脑,然后点击映射网络驱动器

在这里插入图片描述

· 选择映射网络驱动器
在这里插入图片描述

设置指定网站地址:ftp://虚拟机网卡ip
在这里插入图片描述
这里可以设置匿名用户连接ftp也可以设置用户访问ftp连接。这里演示使用有用户名登录FTP.
在这里插入图片描述
在这里插入图片描述
随后点击登录,若FTP服务器地址填写无误,就会显示虚拟机文件内容:
在这里插入图片描述
我们打开“此电脑”,在网络配置中就可以看到我们配置的FTP连接了。
在这里插入图片描述
现在 Win+ R 键打开Windows控制台
执行:

ftp  192.168.1.128

根据指示输入账户和密码,也就是你前面填写的链接FTP服务器的账号密码:
在这里插入图片描述
随后在cmd控制台执行:

cd /etc
ls

在这里插入图片描述

测试

接下去在虚拟机上创建文件,写点东西。然后去windows界面看看。

[root@localhost vsftpd]  cd /var/ftp/pub/
[root@localhost pub] touch test.txt
[root@localhost pub] vim test.txt  # 往test.txt中写点东西
[root@localhost pub] ls
test.txt

回到Windows控制台进入 /ftp/pub 查看到 test.txt.使用 get test.txt,windows就会把内容下载到本地。C:\Users\Asus\test.txt(本地路径可能有点儿不一样)
在这里插入图片描述
在这里插入图片描述

问题记录

1. “打开ftp服务器上的文件夹时发生错误,请检查是否有权限访问该文件夹"

这是在Windows10 FTP连接虚拟机时出错。原因可能是系统防火墙拦截了连接。

【方案】打开控制面板,搜索“Internet”选项。Internet选项>>高级>>将“使用被动FTP(用于防火墙和DSL调制解调器的兼容)”选项去掉>>确定即可
在这里插入图片描述
2.【Linux/CentOS】Boolean ftp_home_dir is not defined
安装完vsftpd软件后,因为CentOS系统的SELinux安全策略默认是没有开启FTP服务,直接访问会报错500 OOPS,所以需要修改为允许使用FTP服务。
目标:希望ftp用户可以访问自己的家目录
尝试:命令行输入

 sudo setsebool -P ftp_home_dir 1

发现会报错:Boolean ftp_home_dir is not defined

搜了一下原来是CentOS7开始用 tftp_home_dir 来代替了 ftp_home_dir ,所以应该修改如下:

sudo setsebool -P tftp_home_dir

这时我们再执行:

getsebool -a | grep ftp

查看ftp进程。
在这里插入图片描述
selinux文件配置在下处更改,更改完 reboot.配置生效。

vim /etc/sysconfig/selinux

3. FTP - 550 Failed to change directory

[root@localhost~]setfacl -R -m u:fy36:rwx /var/ftp/pub/
[root@localhost ~] usermod -a -G ftp fy36
[root@localhost ~] chmod g+s /var/ftp/pub/

详见 StackOverFlow

4.输入IP地址,root用户,密码,快速连接,报错:530 Permission denied。

故障排除:

1.首先检查系统是否开启了vsftp服务,如果没有开启,先开启该服务。
方法1.setup–系统服务–自启动服务
方法2.界面设置,service vsftpd restart
2.查看配置
vsftpd的配置,配置文件中限定了vsftpd用户连接控制配置。
vsftpd.ftpusers:位于/etc目录下。它指定了哪些用户账户不能访问FTP服务器,例如root等。
vsftpd.user_list:位于/etc目录下。该文件里的用户账户在默认情况下也不能访问FTP服务器,仅当vsftpd .conf配置文件里启用userlist_enable=NO选项时才允许访问。
vsftpd.conf:位于/etc/vsftpd目录下。来自定义用户登录控制、用户权限控制、超时设置、服务器功能选项、服务器性能选项、服务器响应消息等FTP服务器的配置。
3.配置修改完成后,执行service vsftpd restart重启vsftpd服务。

5. linux ftp failed open,Linux VSFTP提示500 OOPS: failed to open xferlog log file:/var/log/xferlog
例如 B 使用 FTP连接A时报错这个,我们试试A FTP 连接B即可。连接是相互的。

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

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

相关文章

前端食堂技术周刊第 88 期:Svelte4、NestJS 10、State of CSS 2023、Vitest 1.0 Roadmap、Fresh 1.2

美味值:🌟🌟🌟🌟🌟 口味:帝王蟹柳 食堂技术周刊仓库地址:https://github.com/Geekhyt/weekly 大家好,我是童欧巴。欢迎来到前端食堂技术周刊,我们先来看下…

Insertion插入排序

原谅我接着偷懒,是真的没有什么写的内容了啊,好怀疑他们那些大佬是怎么那么多的文章和技术分享的,自闭中ing 最好情况的时间复杂度是 O(n),最坏情况的时间复杂度是 O(n2),然而时间复杂度这个指标看的是最坏的情况&…

Oracle 查询优化改写(第七章)

第七章 日志运算 1 加减年月日时分秒 替换为- --加减年月日时分秒 替换为- SELECT Add_Months(SYSDATE, 5 * 12) AS 加5年,Add_Months(SYSDATE, 5) AS 加5月,SYSDATE 5 AS 加5天,SYSDATE 5 / 24 AS 加5小时,SYSDATE 5 / 24 / 60 AS 加5分钟,SYSDATE 5 / 24 / …

【宝塔服务器】宝塔通过composer安装TP依赖

屡屡碰壁,安装一个项目,发现没有依赖,需要使用composer安装,没接触过,找了网上也没攻略,自己弄了后有以下问题,经过调整解决了: 报错1:没有安装fileinfo扩展 Loading composer rep…

Debian 安装gcc, g++

自从周日把刚把安装好的Debian12搞坏后,这两天一直在重装系统,就没有完全成功过,好在最后一次安装Debian11的时候,系统起来后有网络,但在安装桌面及GNOME时失败了,只能开机进入命令行模式。 安装gcc 和 g 只…

【VUE】ElementUI实现表格拖拽功能及行大图预览

一. 背景 elementui没自带的拖拽排序功能,所以需要借助第三方插件sortablejs 二. 步骤 安装 npm install sortablejs --save 引入 import Sortable from ‘sortablejs’ template文件应用 row-key填写唯一标识 id"dragTable"是为了通过document找到…

智能电网如何助力能源革命实现高效能源管理与分配?

能源革命是全球范围内的重要议题,为了实现可持续发展和应对能源挑战,人们对新的能源技术和能源管理方式寄予了厚望。智能电网作为能源革命的关键组成部分,利用先进的通信和信息技术,实现了高效能源管理与分配,为能源革…

MATLAB——信号处理仿真功能课程设计报告

目 录 摘 要... I 目 录. II 1 设计目的及内容. 1 1.1 课程设计目的. 1 1.2 课程设计内容. 1 2 课程设计基本原理. 3 2.1 基本信号. 3 2.2 计算原理. 3 3 设计与仿真. 4 3.1 基本信号. 4 3.2计算过程. 6 3.3 matlab仿真原理. 7 3.4 计算结果. 8 3.5结果…

Python-练脑系列-04依旧是数据结构

前言 📌今天是Python的第四次练脑,本次题目为三题较为简单的题目 给定一个字典,其中键和值都是整数,找出字典中所有键和值的和为偶数的键值对,并返回结果的列表。给定一个字典和一个值,将字典中所有等于该值…

【软考网络管理员】2023年软考网管初级常见知识考点(22)- 交换机配置及命令

涉及知识点 华为交换机配置命令大全,交换机设备参数设置 , 交换机路由器的基本配置,交换机命令汇总 , VLAN 配置 , GVRP 配置 , STP 配置,软考网络管理员常考知识点,软考网络管理员…

OpenCV——总结《图像处理-3》形态学操作

1.开运算和腐蚀-膨胀是相同的,同理闭运算也是。 #一个开运算和腐蚀-膨胀的效果是相同的在这里进行对比 eroded cv2.erode(img,kernel) dilated cv2.dilate(eroded,kernel) cv2.imshow(Eroded-Swell Image,dilated)open cv2.morphologyEx(img,cv2.MORPH_OPEN,ker…

数据库锁全集

一、全局锁: 顾名思义,全局锁执行后,整个库都锁定。有读锁和写锁,加锁和解锁方式如下: 加锁:flush tables WITH READ LOCK; 解锁:UNLOCK TABLES; 使用场景:做全库的逻辑…

pycharm中Terminal输入sqlite3,出现无法将sqlite项识别为cmdlet**的解决方法

前提:本机上已安装sqlite3,安装详见:pycharm社区版中安装配置sqlite3_Sunshine_0426的博客-CSDN博客 问题: cmd命令行中或pycharm中Terminal行输入sqlite3 db.sqlite3命令后,出现“无法将“sqlite3”项识别为 cmdlet…

伦敦银实时行情最新解读

在伦敦银市场上做交易,不管大家做的是长线、中线还是短线,都离不开对最新的实时行情走势进行解读。借助交易软件上一些常用的技术指标,伦敦银投资者可以从技术面增加自己的交易操作准确率。 Stochastic是相当常见而实用的技术指标&#xff0c…

vue点击鼠标生成24字社会主义核心价值观上浮特效

在app.vue中 <template><div id"app"><transition name"el-zoom-in-top" mode"out-in"><keep-alive :include"cacheviews"><!-- 一级路由 --><router-view ></router-view></keep-aliv…

【杂谈】关于Huawei S5720巡检过程中的“CPCAR_DROP_MPU”告警

背景 本年度二季度为某客户巡检数通设备&#xff08;Huawei居多&#xff09;时&#xff0c;在某楼宇汇聚设备上display logbuffer发现存在大量告警&#xff0c;如下&#xff1a; Jun 8 2023 15:34:24 AGG-S5720-1 %%01INFO/4/SUPPRESS_LOG(l)[58]:Last message repeated 2 t…

chatgpt赋能python:Python获取某个值的方法

Python获取某个值的方法 在Python编程中&#xff0c;有时候我们需要从数据集或者对象中获取某个特定的值&#xff0c;这时候我们可以使用Python提供的各种方法来实现。本文将介绍几种常见的方法&#xff0c;并且说明它们的优劣和使用场景。 使用索引获取值 在Python中&#…

dirsearch

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 介绍例如 安装使用场景01 XXX 介绍 dirsearch&#xff0c;是一个目录扫描工具&#xff0c;在目录扫描领域是一个强大的竞争对手&#xff0c;具有多线程、代理支持、…

MySQL数据库学习笔记一

MySQL优点 使用数据库&#xff1a; 使用show来显示存在的数据库、表、列 select语句 排序&#xff1a;Order by 降序排序&#xff1a; where语句 通配符&#xff1a;%&#xff0c;_ 正则表达式 正则表达式之 . 字符&#xff1a; Like和正则表达式regexp的区别 插入多行

ffmpeg学习日记121-视频-各种图片转yuv

Author: wencoo Blog&#xff1a;https://wencoo.blog.csdn.net/ Date: 24/04/2023 Details:文章目录 实现功能查看转换结果参考 图片的解码方式和视频解码是一样的&#xff0c;因为视频是由一副一副的图片组成的&#xff0c;只不过视频的帧会前后参考&#xff0c;而图片是单独…