如何安装和运行TFTP服务器?


59

我有一个嵌入式VxWorks目标,需要从我的Ubuntu计算机启动其内核。如何安装和运行TFTP服务器?

Answers:


102

TFTP服务器安装和设置

  1. 安装以下软件包。

    sudo apt-get install xinetd tftpd tftp
    
  2. 创建/etc/xinetd.d/tftp并放​​入此条目

    service tftp
    {
    protocol        = udp
    port            = 69
    socket_type     = dgram
    wait            = yes
    user            = nobody
    server          = /usr/sbin/in.tftpd
    server_args     = /tftpboot
    disable         = no
    }
    
  3. 创建一个文件夹/ tftpboot,它应该与您在server_args中输入的内容匹配。主要是tftpboot

    sudo mkdir /tftpboot
    sudo chmod -R 777 /tftpboot
    sudo chown -R nobody /tftpboot
    
  4. 重新启动xinetd服务。

    较新的系统:

    sudo service xinetd restart
    

    较旧的系统:

    sudo /etc/init.d/xinetd restart
    

现在,我们的tftp服务器已启动并正在运行。

测试我们的tftp服务器

  1. 在tftp服务器的/ tftpboot路径中创建一个名为test的文件,其中包含一些内容

    使用ifconfig命令获取tftp服务器的IP地址

  2. 现在,在其他系统中,请执行以下步骤。

    tftp 192.168.1.2
    tftp> get test
    Sent 159 bytes in 0.0 seconds
    
    tftp> quit
    
    cat test
    

来源:http//mohammadthalif.wordpress.com/2010/03/05/installing-and-testing-tftpd-in-ubuntudebian/


1
由于xinetd由新贵产生,因此只需要更改步骤4。你需要用“服务的xinetd重启”重新启动它
BЈовић

3
我遵循了此说明,并遭到了拒绝!目标文件名[c2950-i6q4l2-mz.121-22.EA1b.bin]?TFTP:收到错误代码2-访问冲突%Error打开tftp://10.1.11.14/c2950-i6q4l2-mz.121-22.EA1b.bin(权限被拒绝)#copy flash:c2950-i6q4l2-mz.121-22 .EA1b.bin tftp:远程主机的地址或名称[]?10.1.11.14目标文件名[c2950-i6q4l2-mz.121-22.EA1b.bin]?TFTP:收到错误代码2-访问冲突
Mohammad Rafiee 2014年

1
@Mohammad Rafiee:链接到此处的博客文章添加了一些信息:sudo chmod -R 777 /tftpboot在“测试我们的tftp服务器”的步骤1和2之间运行。并不是说它对我有帮助,但是看起来它对其他人有所帮助。
Gauthier 2014年

2
在14.04,这对我不起作用。关于/tftpbootin 的信息/etc/xinetd.d/tftp似乎无关紧要。而是由客户端在/srv/tftp中指定的目录中查找/etc/inetd.conf。自文章以来,如果设置的方式改变了,或者我以某种方式搞砸了,我不会。如果上述答案对您不起作用,请尝试放入测试文件/srv/tftp
Gauthier 2014年

2
请注意,使用Ubuntu 16.04,您将体验error code 2 (access violation)。要修复它把tftpboot -sserver_args(没有斜线,-s在年底来源:icesquare.com/wordpress/...
CharlesB

7

您可以安装atftpd,它将创建一个目录/tftpboot,您可以在其中放置文件。尤其将pxelinux.0文件放在那里。如有必要,将解决任何将来的配置。

当您使用

sudo apt-get install atftpd

它将使用Debconf提示您进行一些选择。您可以设置许多选择(服务器超时可能有用),尤其是basepath。您还可以调整多播范围。


pxelinux.0有什么用?我正在引导VxWorks目标,因此我认为我只需要/ tftpboot中的文件vxworks。
user1689961 2012年

抱歉-对我不起作用。
user1689961 2012年

尝试重命名vxworkspxelinux.0,以查看我的答案是否对将来的用户有用。
ζ--

这不适用于13.04。我只是想
BЈовић

@BЈовић这有点旧了,老实说,我不知道13.04的程序。
–ζ

5

您可以安装tftpd-hpa和更改配置。此博客文章中介绍了安装tftpd-hpa的步骤。


2
虽然从理论上讲这可以回答问题,但最好在此处包括答案的基本部分,并提供链接以供参考。
guntbert

仅仅因为tftpd-hpa是一个愚蠢的简单tftp服务器来使用,并且实际上并不需要该帖子中所需的任何配置,而只是将您的文件放在/ var / lib / tftpboot中就可以设置您(在ubuntu 16.04上不确定)关于其他操作系统)。
mschuett
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.