arm学习笔记005之Linux平台下TFTP服务器构建

艾璞瑜
2023-12-01
    TFTP(Trivial File Transfer Protocol,简单的文件传输协议)是 TCP/IP 协议族中的一个用来在客户机与服务器之间进行简单文件传输的协议,提供不复杂、开销不大的文件传输服务,端口号为 69。

    TFTP 这种简单的基于 UDP 的文件传输协议,通常只能用于小文件的传输,并且它不具备通常的 FTP 的许多功能,因此它只能从文件服务器上获得或写入文件,不能列出目录,也不能进行认证。在嵌入式开发中,TFTP 服务用于通过网线从 PC 服务端的 TFTP 目录下下载镜像文件到开发板中。

基于 Red Hat Enterprise Linux 5 的 TFTP 服务器构建:
1.查看 TFTP 服务是否安装
    用 setup 命令 或 rpm -qa | grep tftp
2.安装 TFTP 服务器
    rpm -ivh tftp-server-0.42-3.1.i386.rpm
3.配置 TFTP 服务器
    vi /etc/xinetd.d/tftp 进行如下配置

service tftp
{
        disable                 = no
        socket_type             = dgram
        protocol                = udp
        wait                    = yes
        user                    = root
        server                  = /usr/sbin/in.tftpd
        server_args             = -s /tftpboot
        per_source              = 11
        cps                     = 100 2
        flags                   = IPv4
}

4.查看 TFTP 服务是否启动
    netstat -a | grep tftp
5.启动或重启 TFTP 服务器
    /etc/init.d/xinetd start  /etc/init.d/xinetd restart

补充:rpm 是 Red Hat 下的软件包管理工具,一般常用的命令有:
(1) 查询系统已安装的软件;语法:rpm -q 软件名
    # rpm -q tftp-server
    tftp-server-0.42-3.1

    -q就是 --query ,中文意思是“问”,此命令表示的是,是不是系统安装了 tftp-server;如果已安装会有信息输出;如果没有安装,会输出 tftp-server 没有安装的信息。查看系统中所有已经安装的包,要加 -a 参数 。

    # rpm -qa

(2) 安装新软件包;语法:rpm -ivh 软件包
    # rpm -ivh tftp-server-0.42-3.1.i386.rpm
(3) 删除软件包;语法:rpm -e 软件包名


(下面的都还没试过)

基于 Ubuntu 11.10 的 TFTP 服务器构建:
1.安装 TFTP 服务器 
    sudo apt-get install xinetd tftpd tftp
2.建立 TFTP 服务器配置文件
    sudo vim /etc/xinetd.d/tftp    在文中输入如下配置信息    

service tftp
{
protocol = udp
port = 69
socket_type = dgram
wait = yes
user = root
server = /usr/sbin/in.tftpd
server_args = -s /home/book/work/tftpboot
disable = no
}
3.启动 TFTP 服务器
    sudo service xinetd start
注意:在 Ubuntu 11.10 中不允许直接执行 TFTP 服务的初始化脚本,例如:/etc/init.d/xinetd start 。xinetd(eXtended InterNET services daemon)

基于 Ubuntu 的另一种构建 TFTP 服务器的方法:
1.安装tftp客户端及服务器端的软件,tftp-hpa是客户端,tftpd-hpa是服务器端。
    sudo aptitude install tftp-hpa tftpd-hpa
2.配置TFTP服务器
    sudo vim /etc/default/tftpd-hpa
    将原来的内容改为:
    # /etc/default/tftpd-hpa
    TFTP_USERNAME="tftp"
    TFTP_ADDRESS="0.0.0.0:69"
    #TFTP_OPTIONS="--secure"
    TFTP_DIRECTORY="/tftpboot"
    TFTP_OPTIONS="-l -c -s"
3.重新启动 TFTP 服务
    sudo service tftpd-hpa restart    

补充:/etc/init.d/ 目录下放的都是系统相关服务的初始化脚本,例如 nfs 服务:/etc/init.d/nfs 。

基于 Windows 的 TFTP 服务器构建:
    在 Windows 下构建 TFTP服务器相对 Linux 容易得多,只要安装 TFTP 相关工具tftpboot.rar即可。安装完上述工具之后,就可以实现开发板使用 tftp 命令从 Windows PC 机上下载文件。

 类似资料: