配置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命令退出。