1.安装tftp的服务端和客户端:
sudo apt-get install tftpd-hpa ;安装tftp服务端
sudo apt-get install tftp-hpa ;安装tftp客户端
2.安装xinetd
sudo apt-get install xinetd
3.安装完 xinetd应该会建立目录/etc/xinetd.d,在此目录中添加文件:tftpd
sudo touch tftpd
4.sudo gedit /etc/xinetd.d/tftpd
想tftpd中添加如下内容:
service tftp
{
disable = no
socket_type = dgram
wait = no
user = root
protocol = udp
server = /usr/sbin/in.tftpd
server_args = -s /home/tftpd ----------------------------自己创建的tftp主目录
log_on_success = PID HOST DURATION
log_on_failure = HOST
}
5.在/home下建立tftpd目录,作为服务器的目录
sudo mkdir /home/tftpd
释放权限:
sudo chmod 777 /home/tftpd
6.打开inetd.conf 注释掉内容:
sudo gedit /etc/inetd.conf
#tftp dgram udp wait nobody /usr/sbin/in.tftpd /usr/sbin/in.tftpd -s /var/lib/tftpboot ----------若没有请自己添加此句。
7.重启xinetd服务
sudo /etc/init.d/xinetd restart
8.重启tftpd服务
sudo /etc/init.d/tftpd-hpa restart
通过查看进程可以查看当前tftp server 主目录
ps -axu | grep tftp
root 10736 0.0 0.0 2280 684 ? Ss 21:26 0:00 /usr/sbin/in.tftpd -s /home/tftpd
下面是网上总结出来的常见错误及解决方法:
现象一:
tftp> get file
Transfer timed out.
原因:
tftpd服务没有启动
解决方法:启动服务
sudo /etc/init.d/xinetd restart
sudo /etc/init.d/tftpd-hpa restart
现象二:
tftp> get file
Error code 2: Only absolute filenames allowed
原因:
在/etc/xinetd.d/tftpd中设置的server_args为/etc/default/tftpd-hpa
下面是我的机器上/etc/default/tftpd-hpa配置
/etc/default/tftpd-hpa
RUN_DAEMON=“yes”
TFTP_ADDRESS=“0.0.0.0:69”
OPTIONS="-s /home/tftpd -c -p -U 077 -u tftpd"
现象三:
tftp> put file
Error code 1: File not found
原因:
指定的文件不存在;或tftpd启动参数中没有指定-c选项,允许上传文件~上传的时候一定要确保文件先存在于上传目录下。
现象四:
tftp> get file
tftp: : Permission denied
原因:权限不足
请查看chmod 是不是配置好
现象五:
tftp> get 68645_.bin
Error code 1: File not found
原因:tftp服务目录下无该文件
配置文件中/etc/xinetd.d/tftpd的server_args中-s指定了服务器目录,但可能未生效(具体原因有待探究),真正生效的目录可以通过ps aux | grep tftp查看:–secure后紧跟的目录