配置ubuntu - tftp server服务器步骤

配置Ubuntu tftp服务的步骤:

1、安装相关软件包:Ubuntu tftp(服务端),tftp(客户端),xinetd
sudo apt-get install tftpd tftp xinetd

2、建立配置文件
在/etc/xinetd.d/下建立一个配置文件tftp
sudo vi tftp
在文件中输入以下内容:
service tftp
{socket_type = dgram
protocol = udp
wait = yes
user = root
server = /usr/sbin/in.tftpd
server_args = -s /tftpboot
disable = no
per_source = 11
cps = 100 2
flags = IPv4}
保存退出

3、建立Ubuntu tftp服务文件目录(上传文件与下载文件的位置),并且更改其权限
sudo mkdir /tftpboot
sudo chmod 777 /tftpboot -R

4、重新启动服务
sudo /etc/init.d/xinetd restart

至此Ubuntu tftp服务已经安装完成了,下面可以对其进行一下测试。


tftp服务器测试:

测试情况:

安装过程中出现的问题及原因
现象一:
tftp> get test.log
Transfer timed out.
原因:
tftpd服务没有启动


现象二:
tftp> get test.log
Error code 2: Only absolute filenames allowed
原因:
在/etc/xinetd.d/tftpd中设置的server_args为/etc/default/tftpd-hpa
cat /etc/default/tftpd-hpa
#Defaults for tftpd-hpa
RUN_DAEMON="no"
OPTIONS="-s /home/tftpd -c -p -U 077 -u tftpd"
设置的时候只要将server_args=改为你自己设定的服务器文件夹就行了

现象三:
tftp> put ex070416.log
Error code 1: File not found
原因:
指定的文件不存在;或tftpd启动参数中没有指定-c选项,允许上传文件

现象四(最经常出现的问题):

tftp> put test2.txt
Error code 2: Access violation
原因:tftp服务器默认情况下,是可以下载文件的,当要上传文件时,需要在服务器文件夹下有相同名称,并且需要相应的读写权限,如果现在使用的是 root用话,那么需要root的读写需要上传的文件的权限,同时在服务器文件夹下也需要读写权限,文件权限至少为666才可以.

正确做法例子:

文件下载

tftp服务器文件夹路径为:/tftproot

服务器下文夹为:


在tftproot下新建一个文件:


在其他文件夹下(如/opt)下载名叫test1.txt的文件,下载用的用户均为doyoo:


如上图所示:

出现了Permission denied的提示,说明doyoo这个用户对于/opt/没有写如文件的权限,那么需要root用户赋予这个权限,或者进入doyoo专用空间进行我们的测试

进入doyoo的用户空间:


这是发现我们可以进行tftp服务器的下载任务了

文件上传:

新建了一个名为:sendfile.txt的文件:


显然文件的权限属性为644

现在在tftp服务器中也同样新建一个名为sendfile.txt的文件,当然这里需要root用户赋予doyoo用户相应的写入权限,因为上传文件就是利用tftp覆盖住原来服务器就有的文件,

那么需要上传的文件在服务器中的映像对于用户doyoo来说当然也需要能写入的权限,所以同样的使用root改写sendfile.txt的权限,将其该为666.



可以看到上面已经完成了:

1.使用root用户修改doyoo用户对于tftproot文件夹的读写权限

2.tftproot文件夹下新建了一个名为sendfile.txt的文件。

3.sendfile.txt权限改为了666,不样的话,同样会出现Error code 2: Access violation的情况

完成上面的关键三步后,就可以上传文件了:



至此,tftp服务器的配置和测试完成了!


posted on 2015-02-09 19:56  嵌入式操作系统  阅读(2991)  评论(0编辑  收藏  举报

导航