如何在 Linux 上设置古老又简单的 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 服务器的详细内容。更多信息请关注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)

热门话题

语言多线程可以大大提升程序效率,C 语言中多线程的实现方式主要有四种:创建独立进程:创建多个独立运行的进程,每个进程拥有自己的内存空间。伪多线程:在一个进程中创建多个执行流,这些执行流共享同一内存空间,并交替执行。多线程库:使用pthreads等多线程库创建和管理线程,提供了丰富的线程操作函数。协程:一种轻量级的多线程实现,将任务划分成小的子任务,轮流执行。

要打开 web.xml 文件,可以使用以下方法:使用文本编辑器(如记事本或 TextEdit)使用集成开发环境(如 Eclipse 或 NetBeans)使用命令行编辑命令(Windows:notepad web.xml;Mac/Linux:open -a TextEdit web.xml)

关于Linux系统自带Python解释器的删除问题许多Linux发行版在安装时会预装Python解释器,它并非通过软件包管理器�...

Linux最适合用作服务器管理、嵌入式系统和桌面环境。1)在服务器管理中,Linux用于托管网站、数据库和应用程序,提供稳定性和可靠性。2)在嵌入式系统中,Linux因其灵活性和稳定性被广泛应用于智能家居和汽车电子系统。3)在桌面环境中,Linux提供了丰富的应用和高效的性能。

DebianLinux以其稳定性和安全性着称,广泛应用于服务器、开发和桌面环境。虽然目前缺乏关于Debian与Hadoop直接兼容性的官方说明,但本文将指导您如何在Debian系统上部署Hadoop。 Debian系统需求:在开始Hadoop配置前,请确保您的Debian系统满足Hadoop的最低运行要求,这包括安装必要的Java运行时环境(JRE)和Hadoop软件包。 Hadoop部署步骤:下载并解压Hadoop:从ApacheHadoop官方网站下载您需要的Hadoop版本,并将其解

“DebianStrings”并非标准术语,其具体含义尚不明确。本文无法直接评论其浏览器兼容性。然而,如果“DebianStrings”指的是在Debian系统上运行的Web应用,则其浏览器兼容性取决于应用本身的技术架构。大多数现代Web应用都致力于跨浏览器兼容性。这依赖于遵循Web标准,并使用兼容性良好的前端技术(如HTML、CSS、JavaScript)以及后端技术(如PHP、Python、Node.js等)。为了确保应用与多种浏览器兼容,开发者通常需要进行跨浏览器测试,并使用响应式

使用Go语言连接Oracle数据库时是否需要安装Oracle客户端?在使用Go语言开发时,连接Oracle数据库是一个常见需求�...
