Linux网络服务(五)——FTP服务详解与实践操作手册

文章目录

  • 前言
  • 一、FTP服务概述
    • 1.1 FTP基本定义
    • 1.2 VSFTP模式分类
    • 1.3 FTP端口作用
  • 二、FTP作用与工作原理(重点)
    • 2.1 FTP的作用、模式及通信方式
      • 2.1.1 FTP核心作用
      • 2.1.2 VSFTP模式与通信协议
    • 2.2 FTP工作原理与流程
      • 2.2.1 主动模式工作原理
      • 2.2.2 被动模式工作原理
    • 2.3 FTP相关扩展知识
      • 2.3.1 不同操作系统的FTP服务软件
      • 2.3.2 类似文件传输协议
  • 三、FTP服务搭建与配置
    • 3.1 安装前准备工作
      • 3.1.1 关闭防火墙与增强型安全功能
      • 3.1.2 检查与安装VSFTP软件
      • 3.1.3 开启并设置VSFTP服务自启
      • 3.1.4 切换配置目录并备份配置文件
    • 3.2 匿名用户访问配置与测试
      • 3.2.1 匿名用户访问配置(最大权限)
      • 3.2.2 匿名用户访问测试(Windows客户端)
    • 3.3 用户模式登录配置与测试
      • 3.3.1 本地用户访问配置(禁锢目录)
      • 3.3.2 本地用户登录测试
      • 3.3.3 修改默认根目录
      • 3.3.4 配置用户列表(黑白名单)
  • 四、FTP拓展命令
  • 总结

前言

在互联网数据交互与文件共享场景中,文件传输协议FTP凭借其可靠的连接特性与成熟的C/S架构,成为应用广泛的文件传输解决方案。

本文档围绕FTP服务展开,系统梳理FTP的核心概念、工作原理、端口作用,重点讲解主流的VSFTP服务(Very Secure FTP)在主动/被动模式下的运行机制,同时提供从服务搭建、配置文件修改到匿名用户与本地用户登录测试的完整实践流程,旨在帮助学习者全面理解FTP服务,并具备独立部署与配置FTP服务的实操能力。


一、FTP服务概述

1.1 FTP基本定义

FTP(File Transfer Protocol,文件传输协议)是典型的C/S(客户端/服务器)架构应用层协议,需由服务端软件与客户端软件协同工作,实现文件传输功能。FTP客户端与服务器之间的连接基于TCP协议,属于可靠的、面向连接的连接方式,能为数据传输提供稳定保障。FTP使用21端口: 用于传输指令,20端口:用于传输数据。

1.2 VSFTP模式分类

VSFTP(Very Secure FTP,极安全FTP)作为主流的FTP服务实现,其数据传输支持两种核心模式:主动方式(Standard/Active模式)被动方式(Passive/PASV模式)

  • 主动模式
    • 服务器从20端口出来连接客户端的指定端口
    • 注意:客户端的防火墙很容易去拒绝服务端外来连接,可能会导致失败
  • 被动模式
    • 服务器被动打开一个随机高位端口(1024~5000),等待客户端进来连接
    • 优势: 避免了客户端的防护墙的问题,但是这里要服务器配置好放行随机端口的防火墙的规则

主动模式:服务器主动发起数据连接
被动模式:服务器被动等待数据连接

1.3 FTP端口作用

FTP服务依赖TCP协议的两个固定端口实现不同功能,具体作用如下:

  • 21端口:专用端口,用于建立控制连接,传输FTP控制指令(如登录命令、文件操作指令等)。
  • 20端口:专用端口,仅在主动模式下用于建立数据连接,传输文件数据(如文件内容、目录列表等);被动模式下数据传输端口为服务器随机开放的1024-5000之间的端口。

二、FTP作用与工作原理(重点)

2.1 FTP的作用、模式及通信方式

2.1.1 FTP核心作用

FTP是Internet中用于实现文件传输的标准协议,可支持不同操作系统(如Windows、Linux)之间的文件上传、下载、删除、重命名等操作,广泛应用于网站文件更新、数据备份、资源共享等场景。

2.1.2 VSFTP模式与通信协议

  • 运行模式:VSFTP遵循C/S(客户端/服务器)模式,需服务端部署VSFTP软件并启动服务,客户端通过FTP客户端工具(如Windows命令提示符、FileZilla等)发起连接请求。
  • 通信协议:FTP服务器默认使用TCP协议与客户端通信,核心依赖20(主动模式数据传输)、21(控制连接)两个端口,确保指令传输与数据传输的可靠性。

2.2 FTP工作原理与流程

FTP会话始终包含两个独立通道:控制通道与数据传输通道,两种模式(主动、被动)的核心区别在于数据传输通道的建立方式,均以FTP Server为参照判断“主动/被动”——服务器主动发起数据连接为主动模式,服务器被动等待数据连接为被动模式

2.2.1 主动模式工作原理

1、客户端发送FTP请求(包含用户名、密码、连接模式命令PORT和自己开放的用于自身接收数据的端口)
2、FTP服务器进行响应(ACK),服务器21号端口和客户高位端口1进行FTP会话连接。
3、FTP服务器从自己的20端口连接客户端发送连接请求时主动发送的端口。
4、最后客户端发送ACK确认,开始数据传输。

2.2.2 被动模式工作原理

1、客户端发送FTP连接请求(包含用户、密码、连接模式命令PASV)
2、FTP服务器响应(ACK),服务器21号端口和客户端(高位端口)建立FTP连接,这个响应过程会告诉客户端,服务器开放一个高位端口等你来连接
3、客户端从自己的一个高位端口连接服务器响应的高位端口
4、服务器给客户端一个ACK响应,接下来进行数据传输过程。

2.3 FTP相关扩展知识

2.3.1 不同操作系统的FTP服务软件

  • Windows系统:常用FTP服务软件包括Serv-U、FTP Server、FileZilla Server等,操作界面友好,适合图形化管理需求。
  • Linux系统:主流FTP服务软件有ProFTPD,而Very Secure FTP(vsftp) 因安全性高、稳定性强,是实际工作环境中最常用的FTP服务软件。

2.3.2 类似文件传输协议

  • TFTP(Trivial File Transfer Protocol,简单文件传输协议):基于UDP协议,使用69号端口,功能简单,仅支持文件上传与下载,适用于小型嵌入式设备或简单数据传输场景。
  • SFTP(SSH File Transfer Protocol,SSH文件传输协议):基于SSH(Secure Shell)协议,通过加密通道传输文件,安全性远高于FTP,适合对数据传输安全性要求较高的场景。

三、FTP服务搭建与配置

3.1 安装前准备工作

3.1.1 关闭防火墙与增强型安全功能

为避免防火墙及系统增强型安全功能阻止FTP服务的端口通信,需先执行以下命令关闭相关功能:

systemctl stop firewalld # 临时关闭防火墙服务。
systemctl disable firewalld # 设置开机自动关闭防火墙,确保后续重启系统后防火墙不会影响FTP服务。
setenforce 0 # 临时关闭系统增强型安全功能(SELinux),消除权限限制对FTP服务的影响。

在这里插入图片描述
在这里插入图片描述

3.1.2 检查与安装VSFTP软件

  1. 检查系统是否已安装VSFTP软件,执行以下任一命令:
yum info vsftpd # 通过yum包管理器查看vsftpd软件的详细信息,包括是否已安装、版本号等。
rpm -q | grep vsftp # 通过rpm命令查询系统中是否存在与vsftp相关的安装包。

在这里插入图片描述
2. 若未安装VSFTP软件,执行yum install -y vsftpd命令,通过yum包管理器自动安装vsftpd及相关依赖包。

yum install -y vsftpd

在这里插入图片描述

3.1.3 开启并设置VSFTP服务自启

  1. 启动VSFTP服务:执行systemctl start vsftpd命令,启动FTP服务。
  2. 设置开机自启:执行systemctl enable vsftpd命令,配置VSFTP服务在系统开机时自动启动,避免每次重启后手动启动服务。
systemctl start vsftpd
systemctl enable vsftpd     #开机自启FTP服务

在这里插入图片描述

3.1.4 切换配置目录并备份配置文件

  1. 切换到VSFTP服务的配置文件目录:执行cd /etc/vsftpd/命令,进入该目录(vsftpd的核心配置文件均存放于此)。
  2. 备份配置文件:执行cp vsftpd.conf vsftpd.conf.bak命令,将默认配置文件vsftpd.conf备份为vsftpd.conf.bak,防止后续配置修改出错后无法恢复默认设置。
cd /etc/vsftpd/
cp vsftpd.conf vsftpd.conf.bak

在这里插入图片描述

3.2 匿名用户访问配置与测试

3.2.1 匿名用户访问配置(最大权限)

通过修改VSFTP主配置文件,开启匿名用户访问并赋予最大操作权限,具体步骤如下:

  1. 编辑配置文件:执行vim /etc/vsftpd/vsftpd.conf命令,打开主配置文件。
  2. 调整配置参数(按需求修改或添加以下参数):
    • anonymous_enable=YES:开启匿名用户访问功能,默认已开启。
    • write_enable=YES:开放服务器的写权限,若需实现文件上传,必须开启此参数,默认已开启。
    • anon_umask=022:设置匿名用户上传文件的权限掩码(反掩码),通过该参数控制上传文件的默认权限(如022对应文件权限为644,目录权限为755)。
    • anon_upload_enable=YES:允许匿名用户上传文件,默认配置文件中该参数被注释,需取消注释启用。
    • anon_mkdir_write_enable=YES:允许匿名用户创建(上传)目录,默认配置文件中该参数被注释,需取消注释启用。
    • anon_other_write_enable=YES:允许匿名用户执行删除、重命名、覆盖文件等操作,默认配置文件中无此参数,需手动添加。

在这里插入图片描述

  1. 重启vsftp服务
systemctl restart vsftp
  1. 设置目录权限:执行chmod 777 /var/ftp/pub/命令,为匿名用户访问FTP的根目录(/var/ftp/)下的pub子目录设置最大权限(777),确保匿名用户可正常上传数据到该目录。

在这里插入图片描述

3.2.2 匿名用户访问测试(Windows客户端)

在Windows系统中通过命令提示符测试匿名用户登录FTP服务,具体步骤如下:

  1. 打开命令提示符:点击Windows开始菜单,输入“cmd”并回车,打开命令提示符窗口。
  2. 建立FTP连接:执行ftp 192.168.10.110命令(其中192.168.10.110为FTP服务器的IP地址),发起与FTP服务器的连接。
ftp 192.168.10.110
  1. 匿名登录:连接请求发送后,系统提示输入用户名,输入“ftp”(匿名用户默认用户名),密码为空(直接回车),即可完成匿名登录。

在这里插入图片描述

  1. 执行FTP操作(登录后在ftp>提示符后输入以下命令):
  • pwd:查看当前匿名用户在FTP服务器中的根目录(默认对应Linux系统的/var/ftp/目录)。

在这里插入图片描述

  • ls:查看当前目录下的文件与目录列表。

在这里插入图片描述

  • cd pub:切换到pub子目录(匿名用户上传文件的指定目录)。

  • get 文件名:将FTP服务器中指定的文件下载到当前Windows客户端的本地目录(需替换“文件名”为实际文件名)。

在这里插入图片描述

文件被下载到C:\Users\用户名下
在这里插入图片描述

  • put 文件名:将Windows客户端本地目录中的指定文件上传到FTP服务器的当前目录(需替换“文件名”为实际文件名)。

在这里插入图片描述

将windows_file.txt上传到FTP服务器的当前目录

在这里插入图片描述
在这里插入图片描述

  • quit:退出FTP连接,关闭命令提示符窗口即可结束操作。

3.3 用户模式登录配置与测试

3.3.1 本地用户访问配置(禁锢目录)

设置本地用户(Linux系统中的系统用户)验证登录FTP,并将用户禁锢在其宿主目录中(禁止切换到FTP目录以外的系统目录),具体步骤如下:

  1. 编辑配置文件:执行vim /etc/vsftpd/vsftpd.conf命令,打开主配置文件。
  2. 调整配置参数(按需求修改或注释以下参数):
    • local_enable=Yes:启用本地用户登录功能(本地用户即Linux系统中的系统用户)。
    • anonymous_enable=NO:关闭匿名用户访问,仅允许本地用户登录。
    • write_enable=YES:开放服务器的写权限,若需本地用户上传文件,必须开启此参数。
    • local_umask=077:设置本地用户上传文件的权限掩码(反掩码),077对应文件权限为600、目录权限为700,仅允许文件宿主用户(即上传用户)拥有读写权限。
    • chroot_local_user=YES:将本地用户的访问范围禁锢在其宿主目录中(默认宿主目录为/home/用户名),禁止用户切换到其他系统目录。
    • allow_writeable_chroot=YES:允许被禁锢的用户宿主目录拥有写权限,避免因目录权限不足导致登录失败。
    • 注释匿名用户相关权限参数:将anon_mkdir_write_enable=YESanon_other_write_enable=YES两行参数注释(在参数前添加“#”),因已关闭匿名用户访问,无需保留匿名用户权限配置。

在这里插入图片描述

  1. 重启VSFTP服务:执行systemctl restart vsftpd命令,重启服务使新的配置生效。

3.3.2 本地用户登录测试

  1. 命令提示符登录:打开Windows命令提示符,执行ftp 192.168.10.110命令(192.168.10.110为FTP服务器IP地址),按提示输入Linux系统中的本地用户名(如后续创建的zhangsan)和密码,完成登录。
ftp 192.168.10.110

在这里插入图片描述

  1. 图形化界面登录:打开windows文件夹,在地址栏输入ftp://zhangsan@192.168.10.110(“zhangsan”为本地用户名,“192.168.10.110”为服务器IP),按提示输入密码即可登录。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  • 等待文件上传

在这里插入图片描述

  • 查看服务器,看是否上传成功

在这里插入图片描述

3.3.3 修改默认根目录

通过配置文件修改匿名用户与本地用户登录FTP后的默认根目录:

  • 匿名用户根目录:在vsftpd.conf文件中添加anon_root=/var/www/html参数,设置匿名用户登录后的默认根目录为/var/www/html(需确保该目录存在且权限合适)。
  • 本地用户根目录:在vsftpd.conf文件中添加local_root=/var/www/html参数,设置本地用户登录后的默认根目录为/var/www/html

在这里插入图片描述

chmod 777 /var/www/html  # 修改目录权限

在这里插入图片描述

修改后需执行systemctl restart vsftpd命令重启服务,使配置生效。

测试一下默认目录修改是否成功

put windows_file.txt
ls /var/www/html

在这里插入图片描述
在这里插入图片描述

3.3.4 配置用户列表(黑白名单)

通过user_list文件设置FTP登录的用户黑白名单,具体步骤如下:

  1. 编辑用户列表文件:执行vim /etc/vsftpd/user_list命令,打开用户列表文件,在文件末尾添加需管理的用户(如zhangsan),每个用户占一行。

在这里插入图片描述
2. 配置用户列表功能:执行vim /etc/vsftpd/vsftpd.conf命令,添加或修改以下参数:

  • userlist_enable=YES:启用user_list用户列表文件,使列表生效。
  • userlist_deny=NO:将user_list设置为白名单,仅允许列表中的用户(如zhangsan)登录FTP;默认值为YES,此时user_list为黑名单,禁止列表中的用户登录。
  1. 重启服务:执行systemctl restart vsftpd命令,重启服务使配置生效。
  • 仅修改**/etc/vsftpd/user_list**,userlist_deny=YES,此时zhangsan被添加进黑名单,zhangsan无法登录

在这里插入图片描述

  • userlist_deny=NO,将user_list设置为白名单,仅允许列表中的用户(如zhangsan)登录FTP,例如lisi用户无法登录FTP服务器。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述


四、FTP拓展命令

扩展FTP client的命令:

  • cd:改变远程工作目录,格式为cd <远程目录路径>。
  • lcd:改变本地工作目录,格式为lcd <本地目录路径>。

在这里插入图片描述

  • put:将本地文件上传到远程服务器,格式为put <本地文件路径+文件名>。
  • get:从远程服务器下载文件到本地,格式为get <远程文件路径+文件名>。
  • mput:批量上传多个文件到远程服务器,格式为mput <文件名称1> <文件名称2>…。

在这里插入图片描述
批量上传成功
在这里插入图片描述

  • mget:批量下载多个远程文件至本地,格式为mget <文件名称1> <文件名称2>…。

在这里插入图片描述
在这里插入图片描述

  • delete:删除远程单个文件,格式为delete <远程文件名>。

在这里插入图片描述

  • mkdir:创建一个远程目录,格式为mkdir <远程目录名>。

在这里插入图片描述

  • rmdir:删除远程目录,格式为rmdir <远程目录名>。

在这里插入图片描述


总结

本文档详细讲解了FTP服务的核心知识与实操内容,从FTP的基本定义、VSFTP的两种传输模式(主动/被动)、端口作用,到FTP的工作原理(控制通道与数据通道的建立逻辑),再到Linux系统中VSFTP服务的完整搭建流程(包括防火墙关闭、软件安装、配置文件修改、用户权限设置等),并提供了匿名用户与本地用户的登录测试步骤及用户黑白名单配置方法。

通过学习本文档,学习者可清晰理解FTP服务的运行机制,掌握VSFTP服务的部署与配置技巧,能够根据实际需求(如匿名共享、本地用户专属访问、权限控制等)灵活调整FTP服务参数,满足不同场景下的文件传输需求。同时,文档中对TFTP、SFTP等类似协议的介绍,也为学习者拓展文件传输解决方案的认知提供了参考,助力学习者在实际工作中选择更合适的文件传输方式。

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

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

相关文章

5.3 包管理工具 npm yarn pnpm 对比

基本介绍 工具发布时间开发者定位npm2010 年npm Inc / OpenJS FoundationNode.js 官方包管理器Yarn2016 年Facebook&#xff08;现 Meta&#xff09;更快、更可靠的替代方案pnpm2016 年Zoltan Kochan高性能、节省磁盘空间 一、核心机制与设计差异 1. npm&#xff08;Node Pa…

爬虫基础学习-授权认证,cookie认证,异常处理

验证&#xff1a; HTTPBasicAuthHandler&#xff08;用户基本的身份验证处理&#xff09; HTTPPasswordMgrWithDefaultRealm&#xff08;经常和authhandler一起出现&#xff09;#创建一个密码管理器 password_mgr urllib.request.HTTPPasswordMgrWithDefaultRealm() #添加进目…

开发避坑指南(34):mysql深度分页查询优化方案

问题语句 SELECT* FROMt_order_log l WHERE1 1 AND l.create_time > 2024-08-28 AND l.create_time < 2024-09-04 23:59:59 LIMIT 10000,10上述查询sql&#xff0c;即使create_time字段已建立索引&#xff0c;但偏移量达到几十万时候&#xff0c;查询耗时将近1分钟&…

Unreal Engine UFloatingPawnMovement

Unreal⚡ Unreal Engine - UFloatingPawnMovement&#x1f3f7; 定义&#x1f9e9; 类继承关系⚙️ 关键特性&#x1f6e0;️ 常见配置&#xff08;Details 面板/代码&#xff09;&#x1f4dd; 使用方法1) 在 Pawn 中添加组件&#xff08;C&#xff09;2) 绑定输入与驱动移动3…

某网盘不好用?有没有类似某网盘的存储软件?阿里云国际站 OSS:云存储的全能助手,你 get 了吗?

在这个数据爆炸的时代&#xff0c;数据存储和管理成为了众多企业和个人面临的一大挑战。想象一下&#xff0c;你是一位视频博主&#xff0c;随着粉丝量的增长&#xff0c;视频素材越来越多&#xff0c;电脑硬盘根本装不下&#xff0c;每次找素材都要花费大量时间。又或者你是一…

安全运维过程文档体系规范

安全运维过程文档体系规范 1. 文档体系总览 本文档体系严格遵循“安全运维生命周期”模型设计&#xff0c;涵盖业务建立、协同、运维管理、识别防御监测、响应和效果评估六个核心阶段。体系旨在通过标准化、规范化的文档管理&#xff0c;确保所有安全运维活动有章可循、有据可查…

【计算机网络】 IPV4和IPV6区别

IPv4 和 IPv6 是两代 互联网协议&#xff08;Internet Protocol&#xff09;&#xff0c;它们的核心作用都是&#xff1a; &#x1f449; 为网络设备分配唯一地址&#xff0c;让它们能在网络中互相通信。1️⃣ 地址长度IPv4&#xff1a;32 位&#xff08;4 字节&#xff09;&am…

哈希:最长连续序列

题目描述&#xff1a;无序的整型数组&#xff0c;求连续最长序列。 输入&#xff1a;nums [100,4,200,1,3,2] 输出&#xff1a;4 &#xff08;因为&#xff1a;最长数字连续序列是 [1, 2, 3, 4]&#xff0c;长度为 4。&#xff09; 说明&#xff1a;连续指的是数字的连续…

python中的生成器

概要python中的生成器是一种特殊的迭代器&#xff0c;如果按照c语言的说法&#xff0c;就是一种特殊的指针&#xff0c;但是python语言的一个语言特性是兼容了函数化编程&#xff0c;类似lambda匿名函数机制。本文重点介绍生成器表达式的使用&#xff0c;是一种很快捷&#xff…

【Coze】Windows 环境下使用 Docker 部署 Coze Studio 的详细指南

一、前言&#xff1a; Coze Studio 是一站式 AI Agent 开发工具。提供各类最新大模型和工具、多种开发模式和框架&#xff0c;从开发到部署&#xff0c;为你提供最便捷的 AI Agent 开发环境。 提供 AI Agent 开发所需的全部核心技术&#xff1a;Prompt、RAG、Plugin、Workflo…

票务系统小程序源码

1. 系统概述 github地址 本系统是一个历经多年迭代和市场检验的综合性智慧票务解决方案。它以小程序和后台管理系统为核心&#xff0c;深度整合了线上OTA渠道、线下多种支付方式以及各类智能硬件&#xff0c;为旅游景区、展馆、活动中心等场景提供稳定、高效、功能完备的一体化…

Python 文件操作与异常处理全解析

目录 一、文件的基本概念 1. 什么是文件 2. 文件操作的核心内容 3. 文件操作的作用 二、文件的基本操作 1. 文件操作三步走 2. 打开文件&#xff1a;open () 函数 2.1 文件路径 2.2 常用 mode 模式 3. 写入文件&#xff1a;write () 函数 4. 关闭文件&#xff1a;cl…

领码方案:通用物联网数据采集低代码集成平台——万物智联时代的黄金钥匙

摘要&#xff1a; 领码方案通过“协议抽象层低代码引擎AI智能中枢”架构&#xff0c;实现物联网设备数据采集、存储、分析的零代码配置化集成。支持200工业协议即插即用&#xff0c;10分钟完成设备上云&#xff0c;数据流转效率提升70%&#xff0c;AI模型调用耗时降低90%。该方…

后台管理系统-10-vue3之用户管理组件配置子路由和静态页面

文章目录 1 配置子路由 1.1 router/index.js(添加路由) 1.2 views/User.vue(用户管理) 1.3 验证路由是否生效 2 User.vue(静态页面) 2.1 搜索框和表格的静态搭建 2.2 用户表格的数据获取渲染 2.2.1 user.js(准备数据) 2.2.2 mock.js(拦截请求的URL) 2.2.3 api.js(axios请求的UR…

AMPAK正基科技系列产品有哪些广泛应用于IOT物联网

關於正基AMPAK 智慧物聯網 無線射頻模組專家 專業品牌 正基科技是一家擁有超過 20 年無線模組研發、設計、生產、行銷與產品技術整合服務經驗的公司。 有專業的高頻模組硬體設計及軟體整合工程師團隊&#xff0c;具備豐富的客戶應用經驗&#xff0c;能因應客戶與市場導向的產品…

【PyTorch】环境配置

文章目录1. 配置cuda环境2. 配置conda环境3. 配置pytorch gpu环境1. 配置cuda环境 在命令行输入以下命令可以查看当前显卡驱动版本和最高支持的cuda版本 nvidia-smi根据cuda版本去官网下载并安装cuda 下载链接&#xff1a;https://developer.nvidia.com/cuda-toolkit-archive…

vue3实现实现手机/PC端录音:recorder-core

通过 recorder-core 这个插件实现录音recorder-core插件使用下方的js文件是安装后封装的一个js文件&#xff0c;在需要使用的地方直接引入这个文件&#xff1a;import record from “./recorderCore.js”;// 文件名称&#xff1a;recorderCore.js// recorder-core插件使用方式…

deepseek 本地部署,如何支持工具调用

这里需要考虑显卡是否和模型匹配&#xff0c;支不支持推理 先把模版拉取到本地&#xff1a;git clone https://github.com/sgl-project/sglang.git 我的位置是 /data/home/sglang 注意模版位于sglang下的examples/chat_template中 根据对应的模版部署模型&#xff0c;比如 …

Excel中运行VB的函数

“插入” -》 “模块”Function FormatCodeFlex(inputStr As String, Optional defaultVal As String "0") As StringOn Error GoTo ErrorHandlerDim parts() As StringDim i As Integer 使用 "-" 分割字符串parts Split(inputStr, "-") 确保至…

《零基础入门AI:深度学习之NLP基础学习》

一、自然语言处理&#xff08;NLP&#xff09;概述 1. 基本概念 ​ 自然语言处理&#xff08;Natural Language Processing, NLP&#xff09;是人工智能与计算语言学交叉的核心领域&#xff0c;致力于实现计算机对人类自然语言的自动理解、分析、生成与交互。其研究目标在于构…