正确配置TFTP服务器-ubuntu

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服务器-ubuntu_ubuntu

至此,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

正确配置TFTP服务器-ubuntu_ubuntu_02

成功下载文件,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

正确配置TFTP服务器-ubuntu_tftp_03

下载和上传测试都成功了,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安装有问题,重新安装一下就可以正常运行了。