Linux 下部署 TFTP 服务

1. TFTP服务简介

TFTP是 Trivial File Transfer Protocol 的缩写,即简单文件传输协议,是一个基于 UDP 协议实现的用于在客户机和服务器之间进行简单文件传输的协议,适合于开销不大、不复杂的应用场合

TFTP协议专门为小文件传输而设计,只能从服务器上获取文件,或者向服务器写入文件,不能列出目录,也不能进行认证。TFTP协议传输是由客户端发起的

客户机和服务器之间的交互过程如下图示:
在这里插入图片描述

2. Linux下部署TFTP服务

2.1 安装TFTP服务

  • Ubuntu联网,安装xinetd(extended internet daemon)托管服务
sudo apt-get install xinetd

在这里插入图片描述

  • 查询/etc/下是否存在xinetd.conf文件,若没有需自己新建一个,内容修改如下
# Simple configuration file for xinetd
#
# Some defaults, and include /etc/xinetd.d/
defaults
{
    
    

}
#表示告诉xinetd要包含的文件或目录是/etc/xinetd.d
includedir /etc/xinetd.d
  • 创建linux/tftp文件夹,并赋予可读可写可执行权限(777)
mkdir -p /home/andyxi/linux/tftp
sudo chmod 777 /home/andyxi/linux/tftp/
  • 安装tftp-hpa(客户端)和tftpd-hpa(服务端)服务程序
sudo apt-get install tftp-hpa tftpd-hpa
  • 打开tftpd-hpa配置文件/etc/default/tftpd-hpa,将上面创建的tftp目录设置为TFTP服务器工作目录
TFTP_DIRECTORY="/home/andyxi/linux/tftp"

⏩ 创建/etc/xinetd.d/tftp配置文件,并添加如下内容,如果/etc文件夹中没有xinetd.d子目录,可自行创建

server tftp
{
    
    
  socket_type = dgram
  wait = yes
  disable = no
  user = root
  protocol = udp
  server = /usr/sbin/in.tftpd
  server_args = -s /home/andyxi/linux/tftp -c 
  #log_on_success += PID HOST DURATION
  #log_on_failure += HOST
  per_source = 11
  cps =100 2
  flags =IPv4
}
  • 重启tftpd-hpa服务
sudo service tftpd-hpa restart
  • 重启xinetd服务
sudo service xinetd restart

2.2 TFTP测试

这里使用 Ubuntu作为TFTP服务器端,Linux开发板作为客户端来进行TFTP测试。确保网络环境正常,Ubuntu、Windows和开发板能相互ping通

  • 在ubuntu的/home/andyxi/linux/tftp目录下创建test.c文件
cd /home/andyxi/linux/tftp
vi test.c
  • 在开发板中执行tftp命令将虚拟机TFTP工作目录下的test.c文件拷贝到开发板中
tftp -g -r test.c 192.168.10.100
  • 若文件被成功传输到开发板上,说明TFTP服务部署成功

猜你喜欢

转载自blog.csdn.net/Chuangke_Andy/article/details/127479449