当前位置: 首页 > news >正文

网工日记:FTP工作模式

  1. FTP 基本概念

    • FTP(File Transfer Protocol)即文件传输协议,是用于在网络上进行文件传输的标准协议。它运行在 TCP/IP 协议栈之上,采用客户端 - 服务器(C/S)架构,通过在客户端和服务器之间建立控制连接和数据连接来实现文件的传输。
  2. FTP 的工作模式

    • 主动模式(PORT 模式)
      • 工作原理
        • 客户端首先向服务器的 FTP 控制端口(通常是 21 端口)发起连接请求,建立控制连接。在控制连接上,客户端发送 PORT 命令告知服务器自己用于接收数据的临时端口号。
        • 服务器收到 PORT 命令后,会从自己的数据端口(通常是 20 端口)主动向客户端指定的临时端口发起数据连接,然后通过这个数据连接进行文件传输。
      • 命令视图示例(以 Linux 系统为例)
        • 在客户端,使用命令ftp [服务器IP地址]来连接服务器,例如ftp 192.168.1.10。连接成功后,输入用户名和密码进行登录。
        • 登录后,输入PORT [客户端IP地址],[客户端临时端口号]命令,其中客户端 IP 地址和临时端口号是客户端用于接收数据的信息。例如,假设客户端 IP 是 192.168.1.20,临时端口号是 50000,命令就是PORT 192.168.1.20,50000
        • 服务器收到此命令后会主动连接到客户端指定的端口,然后就可以使用get(下载文件)或put(上传文件)等命令进行文件传输,如get file.txt表示从服务器下载 file.txt 文件。
    • 被动模式(PASV 模式)
      • 工作原理
        • 客户端同样先与服务器的 21 端口建立控制连接。然后,客户端向服务器发送 PASV 命令,表示希望以被动模式进行文件传输。
        • 服务器收到 PASV 命令后,会开启一个随机的数据端口(大于 1024),并将该端口号通过控制连接返回给客户端。
        • 客户端收到服务器返回的数据端口号后,主动向服务器的这个数据端口发起数据连接,之后便可以通过这个数据连接进行文件传输。
      • 命令视图示例(以 Linux 系统为例)
        • 客户端连接服务器的方式与主动模式相同,使用ftp [服务器IP地址],如ftp 192.168.1.10,登录后输入用户名和密码。
        • 输入PASV命令来开启被动模式。服务器会返回类似227 Entering Passive Mode (h1,h2,h3,h4,p1,p2)的信息,其中h1 - h4是服务器的 IP 地址部分(以十进制表示),p1p2组成服务器的数据端口号(p1*256 + p2)。
        • 客户端根据返回的端口号信息主动连接服务器的数据端口,然后可以使用getput等命令进行文件传输,如put new_file.txt表示向服务器上传 new_file.txt 文件。
  3. 两种模式的比较与应用场景

    • 比较
      • 主动模式下,服务器主动发起数据连接,需要考虑服务器端的防火墙配置,因为服务器可能会因为防火墙限制而无法主动连接客户端的端口。而被动模式下,是客户端主动发起数据连接,相对来说更容易通过防火墙,因为客户端通常具有更灵活的网络访问权限。
      • 主动模式使用固定的数据端口(20 端口),便于网络管理和安全策略的设置;被动模式的数据端口是随机分配的(大于 1024),这使得服务器的安全性在一定程度上得到提高,因为攻击者难以预测数据端口。
    • 应用场景
      • 如果服务器所在的网络环境中防火墙对出站连接(服务器主动发起的连接)限制较少,且希望通过固定的数据端口进行管理,主动模式是一个合适的选择。例如,在企业内部网络中,服务器和客户端都在受信任的区域,且网络安全策略允许服务器主动发起连接。
      • 当客户端处于复杂的网络环境,如位于防火墙或 NAT 设备之后,或者服务器端的防火墙对入站连接(外部对服务器的连接)限制严格时,被动模式更为适用。例如,在互联网环境下,大多数 FTP 客户端软件默认使用被动模式,以适应各种网络环境,确保能够成功建立数据连接进行文件传输。

相关文章:

网工日记:FTP工作模式

FTP 基本概念 FTP(File Transfer Protocol)即文件传输协议,是用于在网络上进行文件传输的标准协议。它运行在 TCP/IP 协议栈之上,采用客户端 - 服务器(C/S)架构,通过在客户端和服务器之间建立控…...

unity使用代码在动画片段中添加event

unity使用代码在动画片段中添加event using UnityEngine;public static class AnimationHelper {/// <summary>/// 获取Animator状态对应的动画片段/// </summary>/// <param name"animator">Animator组件</param>/// <param name"…...

嵌入式轻量级开源操作系统:HeliOS的使用

嵌入式轻量级开源操作系统:HeliOS的使用 &#x1f4cd;项目地址&#xff1a;https://github.com/heliosproj/HeliOS HeliOS项目是一个社区交付的开源项目&#xff0c;用于构建和维护HeliOS嵌入式操作系统&#xff08;OS&#xff09;。HeliOS是一个功能齐全的操作系统&#xff0…...

解决VMware的ubuntu22虚拟机没有网络

解决步骤 1.在 Windows 系统中&#xff0c;按 “WinR” 键&#xff0c;输入 “services.msc” 并回车&#xff0c;在服务列表中找到 “VMware DHCP Service” 和 “VMware NAT Service”&#xff0c;确保这两个服务已启动&#xff0c;若未启动则右键点击选择 “启动”&#xf…...

金属衬底介质片对平面波的反射-问题的解析求解和FEM求解

金属衬底介质片对平面波的反射-问题的解析求解和FEM求解 参考有限元从零单排系列4 代码参考了上面大佬文章提供的&#xff0c;但是部分计算系数错了&#xff0c;我改了下加了许多注释&#xff0c;便于大家理解。 书籍参考的电磁场有限元方法(金建铭)&#xff0c;所用的公式都…...

2023 年 9 月青少年软编等考 C 语言四级真题解析

目录 T1. 酒鬼T2. 大盗T3. 核电站思路分析T4. 盒子与小球之二思路分析T1. 酒鬼 此题为 2021 年 3 月四级第一题原题,见 2021 年 3 月青少年软编等考 C 语言四级真题解析中的 T1。 T2. 大盗 此题为 2021 年 6 月四级第二题原题,见 2021 年 6 月青少年软编等考 C 语言四级真…...

C++的内存四区

文章目录 内存四区1.程序运行前1.1 代码区2.1 全局区2.2 示例 2.程序运行后1.1 栈区1.2 堆区 内存四区 1.程序运行前 在程序编译后&#xff0c;生成了exe可执行程序&#xff0c;未执行该程序前分为两个区域。该区域的数据在程序结束后由操作系统释放. 1.1 代码区 ​存放 CPU …...

Java爬虫技术:按关键字搜索VIP商品详情

在数字化时代&#xff0c;电子商务平台的竞争日益激烈&#xff0c;而精准的数据采集和分析成为了企业获取竞争优势的关键。对于电商平台而言&#xff0c;能够根据用户输入的关键字快速搜索并展示VIP商品的详细信息&#xff0c;不仅能够提升用户体验&#xff0c;还能够增加销售机…...

C++ —— 模板类与函数

C —— 模板类与函数 模板类可以用于函数的参数和返回值&#xff0c;有三种形式&#xff1a; 普通函数&#xff0c;参数和返回值是模板类的实例化版本。函数模板&#xff0c;参数和返回值是某种的模板类。函数模板&#xff0c;参数和返回值是任意类型&#xff08;支持普通类和…...

【软考高级】系统架构设计师复习笔记-精华版

文章目录 前言0 系统架构设计师0.1 考架构还是考系分0.2 架构核心知识0.3 架构教材变化 1 计算机操作系统1.1 cpu 组成1.2 内核的五大功能1.3 流水线技术1.4 段页式存储1.5 I/O 软件1.6 文件管理1.7 系统工程相关 2 嵌入式2.1 嵌入式技术2.2 板级支持包&#xff08;BSP&#xf…...

免费 IP 归属地接口

免费GEOIP&#xff0c;查询IP信息&#xff0c;支持IPV4 IPV6 ,包含国家地理位置&#xff0c;维度&#xff0c;asm,邮编 等&#xff0c;例如 例如查询1.1.1.1 http://geoip.91hu.top/?ip1.1.1.1 返回json 对象...

AIA - IMSIC之二(附IMSIC处理流程图)

本文属于《 RISC-V指令集基础系列教程》之一,欢迎查看其它文章。 1 ​​​​​​​通过IMSIC接收外部中断的CSR 软件通过《AIA - 新增的CSR》描述的CSR来访问IMSIC。 machine level 的 CSR 与 IMSIC 的 machine level interrupt file 可相互互动;而 supervisor level 的 CSR…...

数据处理之数据规约

数据处理之数据规约 1. 数据规约概述 数据规约是数据处理中的重要方法&#xff0c;旨在让数据处理更简便、高效&#xff0c;以满足业务需求。当从数据仓库获取的数据量庞大时&#xff0c;直接在海量数据上进行分析和挖掘成本颇高。数据规约可得到数据集的归约表示&#xff0c…...

爬虫代理服务要怎么挑选?

在数据采集的世界里&#xff0c;爬虫代理服务不仅帮助我们高效地收集信息&#xff0c;还能在保护数据安全方面发挥重要作用。但面对市场上琳琅满目的代理服务&#xff0c;我们该如何挑选呢&#xff1f;本文将为你提供一些实用的建议&#xff0c;帮助你找到最适合你的爬虫代理服…...

vue3组件调用解决奇怪问题的详细记录

左边是父组件&#xff0c;右边是子组件&#xff0c;运行正常&#xff1a; 父组件中的子组件加上class属性&#xff0c;运行报错&#xff1a;Extraneous non-props attributes (class) were passed to component but could not be automatically inherited because component re…...

【物联网技术与应用】实验16:模拟霍尔传感器实验

实验16 模拟霍尔传感器实验 【实验介绍】 基于霍尔效应&#xff0c;霍尔传感器是响应于磁场而改变其输出电压的传感器。霍尔传感器用于接近开关&#xff0c;定位&#xff0c;速度检测和电流检测应用。 霍尔传感器可以分为模拟霍尔传感器和开关霍尔传感器由电压调节器&#x…...

【机器学习案列】车牌自动识别系统:基于YOLO11的高效实现

&#x1f9d1; 博主简介&#xff1a;曾任某智慧城市类企业算法总监&#xff0c;目前在美国市场的物流公司从事高级算法工程师一职&#xff0c;深耕人工智能领域&#xff0c;精通python数据挖掘、可视化、机器学习等&#xff0c;发表过AI相关的专利并多次在AI类比赛中获奖。CSDN…...

高精度问题

目录 算法实现基础 高精度加法AB 测试链接 源代码 代码重点 高精度减法A-B 测试链接 源代码 代码重点 高精度乘法A*b和A*B 测试链接 源代码 代码重点 高精度除法A/b和A/B 测试链接 源代码 代码重点 高精度求和差积商余 算法实现基础 本算法调用STL…...

kong网关使用pre-function插件,改写接口的返回数据

一、背景 kong作为api网关&#xff0c;除了反向代理后端服务外&#xff0c;还可对接口进行预处理。 比如本文提及的一个小功能&#xff0c;根据http header某个字段的值&#xff0c;等于多少的时候&#xff0c;返回一个固定的报文。 使用到的kong插件是pre-function。 除了上…...

【QT开发自制小工具】PDF/图片转excel---调用百度OCR API接口

前言 前几年WPS还可以免费处理5页以内的PDF转excel&#xff0c;现在必须付费了&#xff0c;而且百度其他在线的PDF转excel都是要收费的&#xff0c;刚好前几年调研过百度OCR的高精度含位置接口&#xff0c;依然是每天可以免费调用50次&#xff0c;本篇是基于此接口&#xff0c;…...

基于ComfyUI API的AIGC自动绘画系统架构设计与实现

1. ComfyUI API自动绘画系统架构设计 第一次接触ComfyUI API时&#xff0c;我被它独特的节点式工作流设计惊艳到了。与传统的Stable Diffusion WebUI不同&#xff0c;ComfyUI将整个AI绘画流程拆解成可自由组合的模块&#xff0c;这种设计理念让自动化系统开发变得异常清晰。下面…...

通义千问3-VL-Reranker-8B快速入门:混合检索核心功能体验,效果立竿见影

通义千问3-VL-Reranker-8B快速入门&#xff1a;混合检索核心功能体验&#xff0c;效果立竿见影 1. 认识多模态重排序器 想象一下这样的场景&#xff1a;你在电商平台搜索"红色连衣裙"&#xff0c;结果却出现了红色高跟鞋、红色沙发套甚至红色口红。传统搜索引擎只能…...

Stanza离线安装终极指南:手把手教你手动下载1.5.1版英文模型,告别网络报错

Stanza离线安装实战&#xff1a;从模型下载到配置优化的完整指南 在自然语言处理领域&#xff0c;Stanza作为斯坦福大学开发的NLP工具包&#xff0c;因其多语言支持和丰富的功能模块而备受青睐。然而&#xff0c;许多开发者在初次接触时都会遇到一个共同的难题——语言模型下载…...

有什么快速可行的 SEO 优化方法可以推荐吗_想要快速提高 SEO 排名,应该重点做哪些工作

有什么快速可行的 SEO 优化方法可以推荐吗&#xff1f;想要快速提高 SEO 排名&#xff0c;应该重点做哪些工作 在当今的数字化时代&#xff0c;搜索引擎优化&#xff08;SEO&#xff09;已经成为每个网站运营者必须掌握的重要技能。特别是在百度这样的主流搜索引擎上&#xff…...

从推流到播放:手把手教你用ZLMediaKit+FFmpeg搭建本地视频流媒体服务器(Windows环境)

从推流到播放&#xff1a;手把手教你用ZLMediaKitFFmpeg搭建本地视频流媒体服务器&#xff08;Windows环境&#xff09; 最近在折腾本地视频流媒体服务时&#xff0c;发现ZLMediaKit这个开源项目确实让人眼前一亮。作为一个轻量级、高性能的流媒体服务器框架&#xff0c;它不仅…...

Phi-4-Reasoning-Vision实战教程:THINK模式输出JSON结构化提取方法

Phi-4-Reasoning-Vision实战教程&#xff1a;THINK模式输出JSON结构化提取方法 1. 工具概览 Phi-4-Reasoning-Vision是基于微软15B参数多模态大模型开发的高性能推理工具&#xff0c;专为双卡RTX 4090环境优化。这个工具最突出的特点是能够处理图片和文本的混合输入&#xff…...

[特殊字符] mPLUG-Owl3-2B保姆级部署指南:Streamlit本地聊天界面+图片上传问答全流程

mPLUG-Owl3-2B保姆级部署指南&#xff1a;Streamlit本地聊天界面图片上传问答全流程 1. 项目简介 mPLUG-Owl3-2B是一个强大的多模态交互工具&#xff0c;让你能够在本地电脑上实现图片和文字的智能对话。这个工具基于先进的AI模型开发&#xff0c;专门针对普通用户的使用场景…...

Stable Yogi Leather-Dress-Collection保姆级教程:LoRA目录扫描失败、加载卡顿等5类报错解决

Stable Yogi Leather-Dress-Collection保姆级教程&#xff1a;LoRA目录扫描失败、加载卡顿等5类报错解决 1. 工具简介 Stable Yogi Leather-Dress-Collection是一款基于Stable Diffusion v1.5&#xff08;SD 1.5&#xff09;和Anything V5动漫底座模型开发的2.5D皮衣穿搭生成…...

NumPy入门必做50道练习题,Python 提高教程之numpy,Python 学习者必须掌握

NumPy 从入门到完全入门的系统性练习题集&#xff0c;覆盖全部核心基础知识点&#xff0c;每道题均含&#xff1a; ✅ 题目编号与难度标识&#xff08;★☆☆ 到 ★★★&#xff09; ✅ 完整可运行代码&#xff08;Python 3.8&#xff0c;Clash Meta 风格 YAML 注释风格&#x…...

Linux ALSA声卡驱动开发实战:手把手教你配置Cpu_dai参数(附MTK示例代码解析)

Linux ALSA声卡驱动开发实战&#xff1a;手把手教你配置Cpu_dai参数&#xff08;附MTK示例代码解析&#xff09; 在嵌入式Linux音频系统开发中&#xff0c;ALSA&#xff08;Advanced Linux Sound Architecture&#xff09;框架扮演着核心角色。作为连接硬件与应用的桥梁&#x…...