TFTP 即简单文本传输协议,允许用户通过 协议在系统之间传输文件。默认情况下,协议使用的是 UDP 的 69 号端口。TFTP 协议广泛用于无盘设备的远程启动。因此,在你的本地网络建立一个 TFTP 服务器,这样你就可以对 和其他无盘设备做一些操作,这将非常有趣。
TFTP 仅仅能够从远端系统读取数据或者向远端系统写入数据,而没有列出远端服务器上文件的能力。它也没提供用户身份验证。由于安全隐患和缺乏高级功能,TFTP 通常仅用于局域网内部(LAN)。
安装 TFTP 服务器
首先你要做的事就是安装 TFTP 客户端和 TFTP 服务器:
-
dnf install tftp-server tftp -y
上述的这条命令会在 /usr/lib/systemd/system
目录下为 创建 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
。