前言

我相信大家接触到 tftp 大多数原因是 PXE 网络自动化部署的功劳,一般是在 Linux 环境下采用 PXE+TFTP+DHCP+(HTTP/FTP/NFS) 来实现,因为最近在生产环境中分别测试使用了云霁科技的 Cloudboot 和大名鼎鼎的 Cobbler,只是针对大规模型号和配置不一样的物理机实现成本太高配置不够灵活,最后考虑采用 Windows 笔记本 + 交换机 + tftpd32 来实现。而且最近在更新 Cisco 网络交换机固件的时候发现使用 tftp 相比 ftp 来说更加容易,想想就整一篇简单的文档出来。

tftp 是一个非常简单好用的文件传输协议

更新历史

2017 年 01 月 18 日 - 初稿

阅读原文 - https://liaojiaxin158.github.io/post/tftp/

扩展阅读

TFTP - http://www.tftp-server.com/


tftp 应用场景

TFTP(Trivial File Transfer Protocol,简单文件传输协议)是 TCP/IP 协议族中的一个用来在客户机与服务器之间进行简单文件传输的协议,提供不复杂、开销不大的文件传输服务。端口号为 69,它基于 UDP 协议而实现。

  1. 交换机或路由器升级或备份
  2. 无盘工作站存放 boot loader
  3. 嵌入式开发时装载系统
  4. 大规模的服务安装布署

tftp 使用

注意修改防火墙和 selinux 配置

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
# 安装 
yum install -y tftp-server

# 注意 disable 选项为 no
# 修改项 server_args=,可以修改 tftp-server 的根目录,参数 - s 指定 chroot,-c 指定了可以创建文件
vi /etc/xinetd.d/tftp
service tftp
{
socket_type = dgram
protocol = udp
wait = yes
user = root
server = /usr/sbin/in.tftpd
server_args = -s /var/lib/tftpboot
disable = no
per_source = 11
cps = 100 2
flags = IPv4
}

# 设置 tftp 开机自动启动
chkconfig tftp on

# 启动 xinetd 服务
/etc/init.d/xinetd restart

# 验证 tftp 是否启动成功并监听本地 69 端口
netstat -anup | grep 69
udp 0 0 0.0.0.0:69 0.0.0.0:* 15763/xinetd

# 测试上传和下载
yum install tftp
tftp -i 192.168.1.1 put test
tftp -i 192.168.1.1 get test
文章目录
  1. 1. 前言
  2. 2. 更新历史
  3. 3. tftp 应用场景
  4. 4. tftp 使用