2

如何在 Linux 上设置 TFTP 服务器

 2 years ago
source link: https://os.51cto.com/article/714214.html
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

如何在 Linux 上设置 TFTP 服务器-51CTO.COM

如何在 Linux 上设置 TFTP 服务器
作者:Linux迷 2022-07-18 10:15:14
您知道流行的文件传输协议有一个更简单的替代方案吗?它就是 TFTP,以下是在 Linux 上设置它的方法。

您知道流行的文件传输协议有一个更简单的替代方案吗?它就是 TFTP,以下是在 Linux 上设置它的方法。

TFTP(Trivial File Transfer Protocol,简单文件传输协议)于 1980 年首次被定义。它是一个相当古老的协议,于 1981 年 6 月由 Karen R. Sollins 在 RFC 783(征求意见)中作为 TFTP 协议修订版 2 发布。

早期,TFTP 的主要目标是通过网络发送和接收文件。特别是,它用于传输引导期间所需的文件,以使系统能够通过网络引导。

下面介绍如何在 Linux 机器上设置 TFTP 服务器。

a4092bc536bf5921de02955f758283801500dc.jpg

什么是 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
0318c470738fa0ce5c24853e83ca2d15fc5d91.png

安装后,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
31188aa74c91480c19b43383638c7e2ffaec83.png

为了便于使用,如果您将相关 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"
061634771bf520fc00c926f04fac50159ae071.png

为什么使用 TFTP 服务器进行文件传输?

TFTP 最重要的优点是速度快,并且可以帮助您节省时间。它是将网络设备的配置文件传输到其他系统的理想选择。此外,它具有非常简单的使用标准。它可以与基于 Windows 和 Linux 的操作系统上的软件一起轻松运行。最后,在技术上无法使用 FTP 的情况下,TFTP 总是可以挽救局面。

当然,最大的缺点是不安全。因此,使用 TFTP 服务器传输文件时必须非常小心。

除了文件传输之外,您不能使用 TFTP 服务器执行文件删除、编辑和修改等功能。对于那些使用或寻求高级系统的人来说,此功能是一个主要缺点。最后,它不需要身份验证,如果您认真对待自己的安全性,这是一个主要缺点。

在其他操作系统上设置 TFTP

如果要在 Windows 上使用 TFTP,则无需安装任何第三方软件。您可以使用控制面板中的打开或关闭 Windows 功能选项启用 TFTP。


Recommend

  • 3

    TFTP反射放大攻击浅析 Larry ·...

  • 6

    Using iOmega IX4-200d as DHCP, DNS, TFTP and PXE server 02/03/2011This article is a bit off-topic if compared to what I usually write about ‘VDI’, but I thought it was worth to share. I really like the...

  • 4
    • wsgzao.github.io 3 years ago
    • Cache

    tftp 安装和使用小结

    我相信大家接触到 tftp 大多数原因是 PXE 网络自动化部署的功劳,一般是在 Linux 环境下采用 PXE+TFTP+DHCP+(HTTP/FTP/NFS) 来实现,因为最近在生产环境中分别测试使用了云霁科技的 Cloudboot 和大名鼎鼎的 Cobbler,只是针对大规模型号和配置不一样的物理机实...

  • 12

    How To Setup a TFTP server on CentOS 8This guide will discuss how to install TFTP Server on CentOS 8 / RHEL 8 Linux machine. The Trivial File Transfer Protocol (TFTP) is a UDP protocol designed to allow users to transfer file...

  • 9
    • computingforgeeks.com 2 years ago
    • Cache

    Setup TFTP server on CentOS 8|RHEL 8|Rocky Linux 8

    Setup TFTP server on CentOS 8|RHEL 8|Rocky Linux 8This guide will discuss how to install TFTP Server on CentOS 8|RHEL 8|Rocky Linux 8 Linux machine. The Trivial File Transfer Protocol (TFTP) is a UDP protocol designed to allo...

  • 8
    • service.tp-link.com.cn 2 years ago
    • Cache

    TP-Link 使用TFTP工具升级失败怎么办?

        TFTP升级是TP-LINK部分路由器的升级方式,使用tftp32.exe升级工具进行升级,排查之前确认已经按照升级流程操作:

  • 7
    • service.tp-link.com.cn 2 years ago
    • Cache

    TP-Link TFTP(tftpd32.exe)是什么?

    tftpd32.exe是一种使用TFTP协议的文件传送工具,我司较老版本的路由器使用这种工具软件来升级路由器。 一般情况下,该工具与升级文件在同一个压缩包内,解压下载到的升级程序后就可...

  • 8

         TFTP方式升级软件,但运行TFTP文件时出现错误提示,可参考以下内容进行排查。 1、提示“Insufficient privileges to run”,即没有足...

  • 2
    • service.tp-link.com.cn 2 years ago
    • Cache

    TP-Link TFTP方式软件升级设置指导

    1、运行TFTP软件 打开解压后的升级软件文件夹,文件夹中的内容如下图所示。

  • 4

    如何在 Linux 上设置私有 Git 服务器 作者:Linux迷 2022-08-24 08:33:27 Git 是全球开发人员使用的开源版本控制系统。下面介绍如何创建自己的 Git Linux 服务器来托管项目。 Git 是全球开发人员使用的开...

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK