tftp 服务部署

发布于:2024-05-09 ⋅ 阅读:(27) ⋅ 点赞:(0)

这个服务挺简单的,但是今天用到了,还是写一下把

简单文件传输协议(Trivial File Transfer Protocol,TFTP)是一种基于 UDP 协议在客户端
和服务器之间进行简单文件传输的协议。顾名思义,它提供不复杂、开销不大的文件传输服
务(可将其当作 FTP 协议的简化版本)。
TFTP 的命令功能不如 FTP 服务强大,甚至不能遍历目录,在安全性方面也弱于 FTP
服务。而且,由于 TFTP 在传输文件时采用的是 UDP 协议,占用的端口号为 69,因此
文件的传输过程也不像 FTP 协议那样可靠。但是,因为 TFTP 不需要客户端的权限认证,
也就减少了无谓的系统和网络带宽消耗,因此在传输琐碎(trivial)不大的文件时,效率
更高。

TFTP 服务是使用 xinetd 服务程序来管理的。xinetd 服务可以用来管理
多种轻量级的网络服务,而且具有强大的日志功能。简单来说,在安装 TFTP 软件包后,还需
要在 xinetd 服务程序中将其开启,把默认的禁用(disable)参数修改为 no:

  1. 安装tftp

    yum install tftp-server tftp xinetd 
    
    # 检查一下包是否安装
    [root@localhost ~]# rpm -qa|grep tftp
    tftp-5.2-22.el7.x86_64
    tftp-server-5.2-22.el7.x86_64
    [root@localhost ~]# rpm -qa|grep xinetd
    xinetd-2.3.15-14.el7.x86_64
    
  • tftp-server 服务端
  • tftp 客户端
  • xinetd 用来管理TFTP 的程序
  1. 编辑 /etc/xinetd.d/tftp

    service tftp
    {
            socket_type             = dgram
            protocol                = udp
            wait                    = yes
            user                    = root
            server                  = /usr/sbin/in.tftpd
            server_args             = -s /var/lib/tftpboot -c   
            disable                 = no 	
            per_source              = 11
            cps                     = 100 2
            flags                   = IPv4
    }
    
  • disable = no 启用tftp服务器
  • server_args = -s /var/lib/tftpboot -c /var/lib/tftpboot 默认的存储位置,可以修改, -c 加上-c参数可以上传文件,不然就无法上传

重启xinetd服务

[root@localhost ~]# systemctl restart xinetd
[root@localhost ~]# systemctl enable xinetd

tftp使用udp 69端口,需要开放端口,或者关闭防火墙

  1. 测试
    tftp默认文件路径在/var/lib/tftpboot/
    在服务端生成文件
    [root@localhost ~]# echo "success" > /var/lib/tftpboot/test.txt
    

在客户端下载测试

[root@localhost ~]# tftp 192.168.92.80
tftp> get test.txt
tftp> q
[root@localhost ~]# cat test.txt 
success

192.168.92.80 是服务端的IP

在客户端上传测试

[root@localhost ~]# ll
total 8
-rw-------. 1 root root 1357 Apr 28 10:41 anaconda-ks.cfg
-rw-r--r--. 1 root root    8 May  7 09:31 test.txt
[root@localhost ~]# tftp 192.168.92.80
tftp> put test.txt
Error code 0: Permission denied
[root@localhost ~]# tftp 192.168.92.80
tftp> put anaconda-ks.cfg
Error code 0: Permission denied
[root@localhost ~]# chmod 777 anaconda-ks.cfg 
[root@localhost ~]# tftp 192.168.92.80
tftp> put anaconda-ks.cfg
Error code 0: Permission denied
[root@localhost ~]# ls
anaconda-ks.cfg  test.txt
[root@localhost ~]# tftp 192.168.92.80
tftp> put anaconda-ks.cfg

在上面报了一个权限错误 Error code 0: Permission denied,解决办法将 服务端 执行:
chmod 777 /var/lib/tftpboot


网站公告

今日签到

点亮在社区的每一天
去签到