如何在CentOS 8/RHEL 8 Linux上设置TFTP服务器
本指南将讨论如何在CentOS 8/RHEL 8 Linux机器上安装TFTP Server。普通文件传输协议(TFTP)是UDP协议,旨在允许用户在系统之间传输文件。 TFTP使用UDP端口69进行数据传输。
TFTP协议的最理想用例是无盘设备(如工作站)的远程启动。通过在CentOS 8/RHEL 8上设置TFTP服务器,可以进行大型安装,例如Fedora/CentOS和RHEL服务器以及网络中的桌面安装。
使用TFTP,我们只能在远程系统中读写文件,而不能在远程服务器上列出文件或者进行任何更改。由于不支持用户身份验证,建议在局域网(LAN)中运行TFTP服务器。 TFTP仅提供很少的安全性。
那么,如何在CentOS 8/RHEL 8上安装TFTP Server?
在RHEL 8/CentOS 8上安装TFTP服务器
TFTP服务器和客户端软件包可在RHEL/CentOS 8 Linux的基本OS存储库中找到。打开我们喜欢的终端模拟器并运行以下命令,以在RHEL 8/CentOS 8上安装TFTP Server。
sudo dnf install -y tftp-server tftp
在RHEL 8/CentOS 8上配置TFTP服务器
安装会自动在/usr/lib/systemd/system下为systemd创建一个tftp服务和套接字文件。将系统配置文件复制到/etc/systemd/system目录。
sudo cp /usr/lib/systemd/system/tftp.service /etc/systemd/system/tftp-server.service sudo cp /usr/lib/systemd/system/tftp.socket /etc/systemd/system/tftp-server.socket
编辑/etc/systemd/system/tftp-server.service服务并设置这些值。
sudo tee /etc/systemd/system/tftp-server.service<<EOF [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 EOF
添加到ExecStart行中的选项的含义。-c:允许创建新文件。-p:用于在正常的系统提供的访问控制之上不执行任何其他权限检查。-s:建议用于安全性和与较早的引导ROM的兼容性。
请注意,根据服务文件中的配置,文件上载和下载的默认位置是/var/lib/tftpboot。
在RHEL 8/CentOS 8上启动TFTP服务器
我们已经正确完成了TFTP服务器的配置。让我们重新加载systemd守护程序:
sudo systemctl daemon-reload
重新加载后,启动并启用服务器:
$sudo systemctl enable --now tftp-server Created symlink /etc/systemd/system/multi-user.target.wants/tftp-server.service → /etc/systemd/system/tftp-server.service. Created symlink /etc/systemd/system/sockets.target.wants/tftp-server.socket → /etc/systemd/system/tftp-server.socket.
确认服务正在运行。
systemctl status tftp-server
这是我的截图。
为TFTP目录设置正确的权限。
sudo chmod 777 /var/lib/tftpboot
对于运行防火墙服务的系统,允许使用TFTP端口:
sudo firewall-cmd --add-service=tftp --permanent sudo firewall-cmd --reload
将测试文件添加到TFTP目录。
sudo touch /var/lib/tftpboot/file{1..3}.txt echo "Hello File 1" | sudo tee /var/lib/tftpboot/file1.txt echo "Hello File 2" | sudo tee /var/lib/tftpboot/file2.txt echo "Hello File 3" | sudo tee /var/lib/tftpboot/file3.txt
在CentOS 8/RHEL 8上使用TFTP客户端
让我们使用TFTP客户端测试与TFTP Server的连接。这可能是网络中的其他计算机。但是可以将运行TFTP服务器的同一台计算机用于此操作
安装TFTP客户端:
sudo yum install tftp -y
尝试使用tftp命令连接到TFTP服务器。
$tftp 10.10.1.152 tftp>
这是我们可以在shell上使用的命令。
Commands Jan be abbreviated. Commands are: connect connect to remote tftp mode set file transfer mode put send file get receive file quit exit tftp verbose toggle verbose mode trace toggle packet tracing literal toggle literal mode, ignore ':' in file name status show current status binary set mode to octet ascii set mode to netascii rexmt set per-packet transmission timeout timeout set total retransmission timeout ? print help information help print help information
示例允许下载添加的文件。
$cat file1.txt file2.txt file3.txt Hello File 1 Hello File 2 Hello File 3
要上传文件,请使用put命令。
tftp> put client_test.log
使用退出退出。
tftp> quit
我们已经了解了如何在CentOS 8/RHEL 8 Linux系统上安装TFTP服务器,以及如何配置TFTP客户端以从TFTP服务器上载和下载文件。在下一次之前,请保持连接状态以获取更新。