在Ubuntu系统中安装TFTP(Trivial File Transfer Protocol)服务器是一个相对简单的过程,TFTP常用于网络设备配置、固件更新或跨文件系统传输小文件,本文将详细介绍在Ubuntu上安装、配置和使用TFTP服务器的完整步骤,包括必要的环境准备、服务安装、配置文件修改、防火墙设置以及常见问题的排查方法。

环境准备
在开始安装之前,确保系统已更新至最新状态,这可以避免因软件包版本不兼容导致的问题,打开终端,执行以下命令更新软件包列表和已安装的软件包:
sudo apt update sudo apt upgrade -y
建议为TFTP服务创建一个专用的目录,用于存放传输的文件,创建/srv/tftp目录并设置适当的权限:
sudo mkdir -p /srv/tftp sudo chmod -R 777 /srv/tftp
777权限允许所有用户读写,便于测试和生产环境灵活操作,但在生产环境中可根据需求调整权限。
安装TFTP服务器
Ubuntu的软件源中提供了tftpd-hpa包,这是一个常用的TFTP服务器实现,支持IPv6和多种配置选项,使用以下命令安装该包:
sudo apt install tftpd-hpa -y
安装完成后,系统会自动启动TFTP服务,并设置为开机自启,可以通过以下命令检查服务状态:
sudo systemctl status tftpd-hpa
如果显示active (running),则表示服务正常运行。
配置TFTP服务器
TFTP服务器的主要配置文件位于/etc/default/tftpd-hpa,使用文本编辑器(如nano或vim)打开该文件:

sudo nano /etc/default/tftpd-hpa
文件中的关键参数包括:
RUN_DAEMON:设置为yes以启用守护进程模式。OPTIONS:定义服务器的运行选项,如-l -c -s,其中-l以独立模式运行,-c允许创建新文件,-s指定服务目录。TFTP_DIRECTORY:指定TFTP根目录,默认为/srv/tftp。
修改后的配置文件示例如下:
RUN_DAEMON="yes"
OPTIONS="-l -c -s /srv/tftp"
TFTP_DIRECTORY="/srv/tftp"
TFTP_EXTRA_OPTIONS="--secure --create --map-user=root"
保存文件后,重启TFTP服务以应用配置:
sudo systemctl restart tftpd-hpa
防火墙与网络设置
如果系统启用了UFW防火墙,需要允许TFTP服务的端口(默认为UDP 69)通过,执行以下命令:
sudo ufw allow tftp
对于生产环境,建议限制访问来源IP,例如仅允许特定网段访问:
sudo ufw allow from 192.168.1.0/24 to any port tftp
确保网络中的客户端能够访问TFTP服务器的IP地址,可通过ip a命令查看服务器IP,并在客户端使用tftp命令测试连接,
tftp 192.168.1.100
进入TFTP交互模式后,使用get或put命令传输文件。

文件传输测试
为验证TFTP服务器是否正常工作,可在/srv/tftp目录中创建一个测试文件,例如test.txt为“Hello, TFTP!”,然后在客户端执行以下命令下载文件:
tftp -i 192.168.1.100 get test.txt
若文件成功下载到客户端当前目录,则说明服务器配置正确,上传测试可通过put命令完成:
tftp -i 192.168.1.100 put localfile.txt
上传的文件将出现在/srv/tftp目录中。
常见问题排查
- 权限问题:如果文件上传失败,检查
/srv/tftp目录的权限是否正确,可通过ls -ld /srv/tftp查看,确保用户对目录有读写权限。 - 服务未启动:若无法连接到TFTP服务器,使用
sudo systemctl status tftpd-hpa检查服务状态,并查看日志/var/log/syslog中的错误信息。
相关问答FAQs
Q1: 如何修改TFTP服务器的默认端口?
A1: 编辑/etc/default/tftpd-hpa文件,在OPTIONS参数中添加-p <端口号>,例如OPTIONS="-l -c -s -p 1234 /srv/tftp",修改后重启服务,并确保防火墙允许新端口的访问。
Q2: TFTP传输大文件时失败,如何解决?
A2: TFTP默认支持的最大块大小为512字节,可通过调整OPTIONS参数中的-B选项增加块大小,例如OPTIONS="-l -c -s -B 8192 /srv/tftp",检查客户端是否支持更大的块大小,并确保服务器有足够的磁盘空间。
原创文章,发布者:酷番叔,转转请注明出处:https://cloud.kd.cn/ask/72465.html