如何在 Fedora 上建立一个 TFTP 服务器
创始人
2024-03-02 03:31:49
0次

TFTP 即 简单文本传输协议 Trivial File Transfer Protocol ,允许用户通过 UDP 协议在系统之间传输文件。默认情况下,协议使用的是 UDP 的 69 号端口。TFTP 协议广泛用于无盘设备的远程启动。因此,在你的本地网络建立一个 TFTP 服务器,这样你就可以对 安装好的 Fedora 和其他无盘设备做一些操作,这将非常有趣。

TFTP 仅仅能够从远端系统读取数据或者向远端系统写入数据,而没有列出远端服务器上文件的能力。它也没提供用户身份验证。由于安全隐患和缺乏高级功能,TFTP 通常仅用于局域网内部(LAN)。

安装 TFTP 服务器

首先你要做的事就是安装 TFTP 客户端和 TFTP 服务器:

dnf install tftp-server tftp -y

上述的这条命令会在 /usr/lib/systemd/system 目录下为 systemd 创建 tftp.service 和 tftp.socket 文件。

/usr/lib/systemd/system/tftp.service
/usr/lib/systemd/system/tftp.socket

接下来,将这两个文件复制到 /etc/systemd/system 目录下,并重新命名。

cp /usr/lib/systemd/system/tftp.service /etc/systemd/system/tftp-server.service
cp /usr/lib/systemd/system/tftp.socket /etc/systemd/system/tftp-server.socket

修改文件

当你把这些文件复制和重命名后,你就可以去添加一些额外的参数,下面是 tftp-server.service 刚开始的样子:

[Unit]
Description=Tftp Server
Requires=tftp.socket
Documentation=man:in.tftpd

[Service]
ExecStart=/usr/sbin/in.tftpd -s /var/lib/tftpboot
StandardInput=socket

[Install]
Also=tftp.socket

在 [Unit] 部分添加如下内容:

Requires=tftp-server.socket

修改 [ExecStart] 行:

ExecStart=/usr/sbin/in.tftpd -c -p -s /var/lib/tftpboot

下面是这些选项的意思:

  • -c 选项允许创建新的文件
  • -p 选项用于指明在正常系统提供的权限检查之上没有其他额外的权限检查
  • -s 建议使用该选项以确保安全性以及与某些引导 ROM 的兼容性,这些引导 ROM 在其请求中不容易包含目录名。

默认的上传和下载位置位于 /var/lib/tftpboot。

下一步,修改 [Install] 部分的内容

[Install]
WantedBy=multi-user.target
Also=tftp-server.socket

不要忘记保存你的修改。

下面是 /etc/systemd/system/tftp-server.service 文件的完整内容:

[Unit]
Description=Tftp Server
Requires=tftp-server.socket
Documentation=man:in.tftpd

[Service]
ExecStart=/usr/sbin/in.tftpd -c -p -s /var/lib/tftpboot
StandardInput=socket

[Install]
WantedBy=multi-user.target
Also=tftp-server.socket

启动 TFTP 服务器

重新启动 systemd 守护进程:

systemctl daemon-reload

启动服务器:

systemctl enable --now tftp-server

要更改 TFTP 服务器允许上传和下载的权限,请使用此命令。注意 TFTP 是一种固有的不安全协议,因此不建议你在与其他人共享的网络上这样做。

chmod 777 /var/lib/tftpboot

配置防火墙让 TFTP 能够使用:

firewall-cmd --add-service=tftp --perm
firewall-cmd --reload

客户端配置

安装 TFTP 客户端

yum install tftp -y

运行 tftp 命令连接服务器。下面是一个启用详细信息选项的例子:

[client@thinclient:~ ]$ tftp 192.168.1.164
tftp> verbose
Verbose mode on.
tftp> get server.logs
getting from 192.168.1.164:server.logs to server.logs [netascii]
Received 7 bytes in 0.0 seconds [inf bits/sec]
tftp> quit
[client@thinclient:~ ]$

记住,因为 TFTP 没有列出服务器上文件的能力,因此,在你使用 get 命令之前需要知道文件的具体名称。


via: https://fedoramagazine.org/how-to-set-up-a-tftp-server-on-fedora/

作者:Curt Warfield 选题:lujun9972 译者:amwps290 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

相关内容

热门资讯

“Linux 中国” 开源社区... 这是一个艰难的决定 —— 这不是调侃,而是当你真正做出改变了你十几年生活轨迹的决定时,你就会明白这个...
硬核观察 #1263 德国铁路... #1 德国铁路公司招聘 Windows for Workgroups 3.11 管理员该职位要求了解...
人工智能教程(七):Sciki... 在本系列的 上一篇文章 中,我们用 TensorFlow 构建了第一个神经网络,然后还通过 Kera...
关闭 WSL 中正在运行的 L... 以下是使用 WSL 关闭在 Windows 内运行的 Linux 系统的不同方法。你使用 WSL 在...
MX Linux 23.2 “... 最新的 MX Linux 23.2 小版本更新带来了基本的改进和新增功能。MX Linux 推出了 ...
硬核观察 #1262 网络上最... #1 网络上最古老的软件存档库之一即将关闭美国新墨西哥州立大学(NMSU)最近宣布,即将于 2024...
如何在 RHEL 上通过绑定配... 在 Linux 中,你可以根据自己的需要创建高级网络设置,如 网络绑定 Network Bondin...
Linux Matrix 消息... Matrix 用户可以升级 Fractal 6 了!Fractal 是目前 最好的 Matrix 客...
如何通过 VLC 使用字幕 使用 VLC 媒体播放器播放和管理字幕的新手指南。我是一个超级动漫迷,如果你想观看最新的剧集,那么你...
硬核观察 #1261 X 计划... #1 X 计划在奥斯汀建立内容审核总部据报道,该部门将招聘 100 名全职员工,将主要关注 CSE ...