安装TFTP服务
-
更新系统
sudo apt update && sudo apt upgrade -y
-
安装必要组件
sudo apt install tftpd-hpa tftp-hpa -y # tftpd-hpa是服务端,tftp-hpa是客户端
配置TFTP服务器
-
创建共享目录并授权
sudo mkdir -p /srv/tftp sudo chmod 777 /srv/tftp # 开放读写权限
-
修改配置文件
编辑配置文件:sudo nano /etc/default/tftpd-hpa
修改为以下内容:
TFTP_USERNAME="tftp" TFTP_DIRECTORY="/srv/tftp" # 指定共享目录 TFTP_ADDRESS=":69" TFTP_OPTIONS="--secure --create" # 允许文件创建
-
重启服务生效
sudo systemctl restart tftpd-hpa sudo systemctl enable tftpd-hpa # 设置开机自启
防火墙设置(如启用)
sudo ufw allow 69/udp # 开放UDP 69端口 sudo ufw reload
客户端测试传输
-
本地测试(服务端同机操作)
echo "Hello TFTP" > /srv/tftp/test.txt # 创建测试文件 tftp localhost # 连接本机服务 tftp> get test.txt # 下载文件 tftp> put upload.txt # 上传文件(需先创建) tftp> quit
-
跨设备测试(从另一台Linux设备)
tftp <服务器IP> tftp> get test.txt
常见问题排查
-
错误 “Access violation”
检查目录权限:sudo chmod -R 777 /srv/tftp
-
错误 “File not found”
确认文件路径在/srv/tftp
内,且文件名大小写匹配 -
服务启动失败
检查日志:journalctl -u tftpd-hpa -b
安全注意事项
- 仅限内网使用:TFTP无加密传输,避免在公网使用
- 最小权限原则:定期清理
/srv/tftp
无用文件 - IP白名单限制(高级):
编辑/etc/default/tftpd-hpa
,在TFTP_OPTIONS
中添加:
--address 192.168.1.100:69
# 限制监听IP
引用说明:本文配置基于Debian/Ubuntu ARM系统,参考官方文档TFTP-HPA及Linux Man Pages,其他发行版需调整包管理命令(如RPM系使用
yum install tftp-server
),测试设备为Raspberry Pi 4B(ARMv8)。
最终效果:
- 服务端运行状态:
systemctl status tftpd-hpa
显示 active (running) - 传输验证:在
/srv/tftp
目录可见上传/下载的文件,客户端无报错即成功。
原创文章,发布者:酷番叔,转转请注明出处:https://cloud.kd.cn/ask/6409.html