转自:ubuntu16.04安装配置tftp服务_carspiriter的博客-CSDN博客_ubuntu安装tftp
首先声明:tftp是client客户端,tftpd是server服务器端,d应该指的是daemon。如果你要从别人的tftp服务器端上传/下载东西,就要用到tftp;如果你为别人提供tftp服务,供别人上传/下载东西,那就要安装tftpd服务程序。
ubuntu中常用的tftp服务器和客户端是tftpd-hpa和tftp-hpa
==========================================================================================
tftpd-hpa(服务器)
安装:
- sudo apt-get install tftpd-hpa
配置:
- sudo vim /etc/default/tftpd-hpa
- TFTP_USERNAME="tftp"
TFTP_DIRECTORY="/tftpboot" //指定将来下位机的下载目录为上位机的/tftpboot,此目录随意指定即可
TFTP_ADDRESS="0.0.0.0:69"
TFTP_OPTIONS="-l -c -s" - 修改完毕,保存退出
- sudo mkdir /tftpboot //创建tftpd-hpa网络服务的下载目录
- 修改下载目录的用户和组权限为当前用户(例如carspiriter用户)
- sudo chown carspiriter /tftpboot -R
- sudo chgrp carspiriter /tftpboot -R
- 修改下载目录的权限
- sudo chmod 777 /tftpboot
使用:
- 重新启动tftpd-hpa网络服务:sudo service tftpd-hpa restart
==============================================================================================
tftp-hpa(客户端)
安装:
- sudo apt-get install xinetd
- sudo apt-get install tftp-hpa
配置:
- vim /etc/xinetd.d/tftp
- 配置内容如下图
- 重启tftp服务:sudo service xinetd restart
============================================================================================
测试:
- 随便找个目录,只要不是/tftpboot就行
- tftp 127.0.0.1
- tftp> get xxx //下载(下载成功后没有提示,并且在当前目录下会出现xxx文件)
============================================================================================
Bug修复:
- 现象:后来在使用的过程中碰到了如图问题
- 原因:从Log可以看到,是在执行in.tftpd文件的时候出错退出的。而in.tftpd在两个地方都有设置执行,故而冲突。
一个是在xinetd超级守护进程中有设置开机自动执行in.tftpd,如下图文件/etc/xinetd.d/tftp中server = /usr/sbin/in.tftpd
另外一个地方就是在tftpd自己的启动文件/etc/init.d/tftpd-hpa也有设置,如图:
- 方法:只要不让xinetd启动tftpd服务就可以了,具体操作如下:
1.
2. disable = yes
3.
-
总结:出问题的原因在于不了解xinetd托管服务,导致在多个地方设置开启tftpd,造成端口冲突。这个后续要深入学习下。
参考:
- Tftpd-hpa - Ubuntu中文
- Ubuntu下搭建tftp服务器最简单方法_服务器应用_Linux公社-Linux系统门户网站
- Linux tftp命令
- https://blog.csdn.net/canhaimingyue/article/details/52544772