ubuntu下配置tftp服务以及开发板中通过tftp下载文件

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

2、建立配置文件(蓝色的目录是可以更改为其他地址的,例如/home/user/tftpboot)
在/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、建立tftp服务文件目录(上传文件与下载文件的位置),并且更改其权限
sudo mkdir /tftpboot

sudu chmod 777 /tftpboot

4、重新启动服务
sudo /etc/init.d/xinetd restart
至此tftp服务已经安装完成了,下面可以对其进行一下测试。


5. 当前目录~下建立一个测试文件test_local,内容为:

This is a file from local!

在/tftpboot目录下建立一个文件test_server,内容为:

This is a file from server!


改变用户到root,在~目录运行tftp,

$tftp 192.168.1.161 (本机的ip地址)

或tftp localhost

tftp> get test_server
Received 31 bytes in 0.0 seconds
tftp> quit
$

通过get命令,可以从/tftpboot下,下载test_server文件。

这样,就验证了从server端下载文件是成功的。


tftp> put test_local
Error code 2: Access violation

试图通过put命令,把当前目录下的test_local文件,通过tftp上传到它的服务文件目录/tftpboot。

经查找该错误信息,发现是因为这样的规定:tftp默认只允许下载文件,要上传文件,必须是服务器中已存在同名的文件,且该文件权限允许被覆盖。

在/tftpboot目录中,touch test_local,并将test_local文件设为777。

再次通过tftp上传文件test_local

tftp> put test_local
Sent 30 bytes in 0.0 seconds

这样,就验证了从本地向server端上传文件是成功的。

这样就验证了tftp服务配置的正确性。当文件上传与下载结束后,可以通过quit命令退出。



你可能感兴趣的:(socket,server,测试,ubuntu,File)