1、安装相关软件包:tftp(服务端),tftp(客户端),xinetd
打开终端,输入命令:sudo apt-get install tftpd tftp xinetd
2、建立配置文件
在/etc/xinetd.d/下新建一个配置文件tftp
sudo vi /etc/xinetd.d/tftp
在里面输入tftp代码
service tftp
{
socket_type = dgram
protocol = udp
wait = yes
user = root
server = /usr/sbin/in.tftpdserver_args = -s /home/tftpboot
/*这个是设置文件目录,我把它设置在/home/tftpboot/*/
disable = no
per_source = 11
cps = 100 2
flags = IPv4
}
3、保存退出。注意等号两边都要加空格。
4、在home路径下新建一个tftpboot文件夹(这个就是配置文件里设置的服务器目录),并设置权限。
sudo mkdir /home/tftpboot
sudo chmod 777 tftpboot -R
5、重启服务
sudo /etc/init.d/xinted restart
至此,tftp服务已经安装成功。
6、查看tftp服务
在终端输入:netstat -a|grep tftp
显示:udp 0 0*:tftp
这说明,服务器已经启动。
7、测试一下服务
在/home/tftpboot下新建一个测试文件
sudo vim /home/tftpboot/test.txt
随便输入一些东西,不能空着。
然后转到其他目录操作:
sudo tftp 127.0.0.1 (tftp后面加目标主机的IP,本地测试我使用127.0.0.1)
a、测试get命令下载文件:
get test.txt
成功下载文件,test.txt文件被下载到当前目录。
b、测试put命令上传文件:
(1)在当前目录新建一个文件hello.c,并输入内容。(不要空着)
sudo vim hello.c
(2)在/home/tftpboot/目录下也要建一个同名文件hello.c,权限设置777
sudo vim /home/tftpboot/hello.c
sudo chmod 777 /home/tftpboot/hello.c
这一步是必须的,tftp上传文件可以理解为是覆盖文件操作,所以tftpboot目录下必须要有一个同名文件,而且权限开放。
put hello.c
下载和上传测试都成功了,q退出tftp模式。
tftp错误代码分析:
1、file not found 如果get一个文件时这样报错,可能是/tftpboot下没有此文件.还有就是/etc/xinetd.d/tftp文件配置错误。
2、Access violation 如果put文件时这样报错,可能是/tftpboot/文件下没有同名文件,不能进行覆盖操作。或者有同名文件,但是权限未开。
3、transfer timed out 如果超时报错,就是/etc/xinetd.d/tftp文件配置错误。
4、permission denied 这是无权操作, 使用sudo tftp 127.0.0.1
5、tftp服务已启动,可运行tftp出现 -bash: tftp: command not found
可能是tftp安装有问题,重新安装一下就可以正常运行了。