快速简便的文件传输——了解Linux TFTP
在Linux系统中,我们常常需要进行文件的传输。然而,使用传统的FTP协议虽然可以实现文件传输,但配置过程相对复杂,不太适合快速简便的文件传输。那么,有没有一种更加方便快捷的文件传输方式呢?答案是肯定的——它就是TFTP。
您知道流行的文件传输协议有一个更简单的替代方案吗?它就是 TFTP,以下是在 Linux 上设置它的方法。
TFTP(Trivial File Transfer Protocol,简单文件传输协议)于 1980 年首次被定义。它是一个相当古老的协议,于 1981 年 6 月由 Karen R. Sollins 在 RFC 783(征求意见)中作为 TFTP 协议修订版 2 发布。
早期,TFTP 的主要目标是通过网络发送和接收文件。特别是,它用于传输引导期间所需的文件,以使系统能够通过网络引导。
下面介绍如何在 Linux 机器上设置 TFTP 服务器。
什么是 TFTP?
TFTP 仍用于文件传输目的,它支持的功能没有根本变化。TFTP 用于通过 UDP/IP 下载和发送文件。它没有其他文件传输协议中常见的身份和授权控制、文件列表、删除或重命名等附加功能。
与在传输层使用 TCP 的高级文件传输协议不同,它工作在 UDP 协议上,不具有检查属于文件的数据包是否会发送到另一端等功能。由于这个限制,它更适合在局域网中使用,而不是在互联网或广域网中使用。
尽管上面列出了所有这些看似不利的特性,但 TFTP 协议非常强大的一个方面是它的简单性。与其替代方案相比,该协议的实现非常容易,即使对于没有操作系统的环境也是如此。由于这个特性,它在嵌入式系统中有广泛的使用领域。
在 Linux 上安装 TFTP 服务器
使用嵌入式设备时,安装 TFTP 服务器服务很重要。在 Linux 系统上,可以运行多个 TFTP 服务器实现。如果您使用的是基于 Debian 的发行版,您可以安装tftpd-hpa、tftpd或atftpd软件包。如果您不确定选择哪一个,请考虑安装 tftpd-hpa 软件包。
┌──(linuxmi㉿linuxmi)-[~/linuxmi.com] └─$ sudo apt-get install tftpd-hpa

安装后,TFTP 服务将开始侦听 UDP 端口 69。要通过 TFTP 服务器将文件提供给其他系统,您需要记住一些先决条件:
第一是将所需文件复制到 TFTP 主目录或该主目录下的目录,第二是使文件权限对公众可见
要找出 TFTP 服务器主目录是什么,您可以查看/etc/default/tftpd-hpa文件中的TFTP_DIRECTORY变量。通常,您会看到/var/lib/tftpboot或/srv/tftp 之类的目录。如果需要,您可以更改此目录并重新启动服务。
┌──(linuxmi㉿linuxmi)-[~/linuxmi.com] └─$ cat /etc/default/tftpd-hpa

为了便于使用,如果您将相关 TFTP 主目录的所有者更改为您的用户帐户,则无需在运行的每个命令中添加 sudo 前缀。使用 chown 命令将所有权从 root 更改为当前用户:
sudo chown -R $USER /srv/tftp
TFTP 服务器包名称和默认主目录可能因使用的 Linux 发行版而异。
使用 TFTP 服务器发送文件
有时在某些情况下,TFTP 是将文件从嵌入式 Linux 系统移动到外部环境的唯一选择。例如,有时系统可能不支持任何可用于传输文件的可写媒体。
在这种情况下,由于 TFTP 客户端可能会在busybox中编译,您可以将系统中保存的文件发送到网络上的 TFTP 服务器。
要使用 TFTP 客户端应用程序,请发出busybox tftp命令:
busybox tftp
要将示例文件发送到 TFTP 服务器,您需要使用如下命令:
busybox tftp -l example.bin -p 192.168.1.111
虽然上面的命令是正确的,但在将文件传输到 TFTP 服务器时会出错。由于返回的错误消息不是不言自明的,因此很难理解真正的问题是什么。
这里的问题是因为 TFTP 服务器上的一些安全程序。TFTP 要求具有相同名称的文件应位于将写入文件的目录中,作为文件上传的先决条件,并且该文件的写入权限应可供所有人使用。
换言之,无法通过 TFTP 客户端上传 TFTP 服务器上不存在的文件。如果您创建一个同名的空文件并编辑其访问权限,则上述上传过程将成功。为此,您必须在相关的 TFTP 服务器主目录中运行以下命令:
cd /srv/tftp touch example.bin chmod 666 example.bin
现在您可以成功执行上传了。
也可以禁用上述安全措施并让 TFTP 服务器创建一个不存在的文件。为此,您可以在启动tftpd-hpa应用程序时使用-c或–create参数。将此参数添加到/etc/default/tftpd-hpa文件中现有的TFTPD_OPTIONS变量就足够了:
# /etc/default/tftpd-hpa TFTP_USERNAME="tftp" TFTP_DIRECTORY="/srv/tftp" TFTP_ADDRESS="0.0.0.0:69" TFTP_OPTIONS="--secure --create"
为什么使用 TFTP 服务器进行文件传输?
TFTP 最重要的优点是速度快,并且可以帮助您节省时间。它是将网络设备的配置文件传输到其他系统的理想选择。此外,它具有非常简单的使用标准。它可以与基于 Windows 和 Linux 的操作系统上的软件一起轻松运行。最后,在技术上无法使用 FTP 的情况下,TFTP 总是可以挽救局面。
当然,最大的缺点是不安全。因此,使用 TFTP 服务器传输文件时必须非常小心。
除了文件传输之外,您不能使用 TFTP 服务器执行文件删除、编辑和修改等功能。对于那些使用或寻求高级系统的人来说,此功能是一个主要缺点。最后,它不需要身份验证,如果您认真对待自己的安全性,这是一个主要缺点。
在其他操作系统上设置 TFTP
如果要在 Windows 上使用 TFTP,则无需安装任何第三方软件。您可以使用控制面板中的打开或关闭 Windows 功能选项启用 TFTP。
本文介绍了Linux系统中TFTP(Trivial File Transfer Protocol)的使用方法和特点。与FTP相比,TFTP具有更加简单、快速、轻量级的特点,既不需要繁琐的配置,也不会占用大量的系统资源。通过学习TFTP的使用方法,我们可以实现快速简便的文件传输,提高工作效率。因此,TFTP绝对是每个Linux用户都值得了解和掌握的重要工具!
以上是快速简便的文件传输——了解Linux TFTP的详细内容。更多信息请关注PHP中文网其他相关文章!

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

热门话题

CentOS 和 Ubuntu 的关键差异在于:起源(CentOS 源自 Red Hat,面向企业;Ubuntu 源自 Debian,面向个人)、包管理(CentOS 使用 yum,注重稳定;Ubuntu 使用 apt,更新频率高)、支持周期(CentOS 提供 10 年支持,Ubuntu 提供 5 年 LTS 支持)、社区支持(CentOS 侧重稳定,Ubuntu 提供广泛教程和文档)、用途(CentOS 偏向服务器,Ubuntu 适用于服务器和桌面),其他差异包括安装精简度(CentOS 精

CentOS 安装步骤:下载 ISO 映像并刻录可引导媒体;启动并选择安装源;选择语言和键盘布局;配置网络;分区硬盘;设置系统时钟;创建 root 用户;选择软件包;开始安装;安装完成后重启并从硬盘启动。

CentOS将于2024年停止维护,原因是其上游发行版RHEL 8已停止维护。该停更将影响CentOS 8系统,使其无法继续接收更新。用户应规划迁移,建议选项包括CentOS Stream、AlmaLinux和Rocky Linux,以保持系统安全和稳定。

Docker利用Linux内核特性,提供高效、隔离的应用运行环境。其工作原理如下:1. 镜像作为只读模板,包含运行应用所需的一切;2. 联合文件系统(UnionFS)层叠多个文件系统,只存储差异部分,节省空间并加快速度;3. 守护进程管理镜像和容器,客户端用于交互;4. Namespaces和cgroups实现容器隔离和资源限制;5. 多种网络模式支持容器互联。理解这些核心概念,才能更好地利用Docker。

CentOS 已停止维护,替代选择包括:1. Rocky Linux(兼容性最佳);2. AlmaLinux(与 CentOS 兼容);3. Ubuntu Server(需要配置);4. Red Hat Enterprise Linux(商业版,付费许可);5. Oracle Linux(与 CentOS 和 RHEL 兼容)。在迁移时,考虑因素有:兼容性、可用性、支持、成本和社区支持。

CentOS 停止维护后,用户可以采取以下措施应对:选择兼容发行版:如 AlmaLinux、Rocky Linux、CentOS Stream。迁移到商业发行版:如 Red Hat Enterprise Linux、Oracle Linux。升级到 CentOS 9 Stream:滚动发行版,提供最新技术。选择其他 Linux 发行版:如 Ubuntu、Debian。评估容器、虚拟机或云平台等其他选项。

如何使用 Docker Desktop?Docker Desktop 是一款工具,用于在本地机器上运行 Docker 容器。其使用步骤包括:1. 安装 Docker Desktop;2. 启动 Docker Desktop;3. 创建 Docker 镜像(使用 Dockerfile);4. 构建 Docker 镜像(使用 docker build);5. 运行 Docker 容器(使用 docker run)。

VS Code扩展安装失败的原因可能包括:网络不稳定、权限不足、系统兼容性问题、VS Code版本过旧、杀毒软件或防火墙干扰。通过检查网络连接、权限、日志文件、更新VS Code、禁用安全软件以及重启VS Code或计算机,可以逐步排查和解决问题。
