July 15, 2008 · Server · Email This Post

If you're new here, you may want to subscribe to my RSS feed. Thanks for visiting!

atftp is Multi-threaded TFTP server implementing all options (option extension and multicast) as specified in RFC1350, RFC2090, RFC2347, RFC2348 and RFC2349. Atftpd also supports multicast protocol known as mtftp, defined in the PXE specification. The server supports being started from inetd as well as in daemon mode using init scripts.

Install atftp Server in Ubuntu

sudo aptitude install atftpd

This will complete the installation

Using atftpd

By default atftpd server starts using inetd so we need to tell atftpd to run as a server directly, not through inetd.Edit /etc/default/atftpd file using the following command

sudo gedit /etc/default/atftpd

Change the following line

USE_INETD=true

to

USE_INETD=false

save and exit the file

Now you need to run the following command

sudo invoke-rc.d atftpd start

Configuring atftpd

First you need to create a directory where you can place the files

sudo mkdir /tftpboot

sudo chmod -R 777 /tftpboot

sudo chown -R nobody /tftpboot

sudo /etc/init.d/atftpd restart

Security configuration for atftp

Some level of security can be gained using atftp libwrap support. Adding proper entry to /etc/hosts.allow and /etc/hosts.deny will restrict access to trusted hosts. Daemon name to use in these files is in.tftpd.

/etc/hosts.allow /etc/hosts.deny

in.tftpd : FQD or IP

atftp client installation

Advance Trivial file transfer protocol client,atftp is the user interface to the Internet ATFTP (Advanced Trivial File Transfer Protocol), which allows users to transfer files to and from a remote machine. The remote host may be specified on the command line, in which case atftp uses host as the default host for future transfers.

sudo aptitude install atftp

That’s it you are ready to transfer your files using tftp clients

Testing tftp server

Tranfering file hda.txt from 192.168.1.100 (Client using tftp) to 192.168.1.2 (Server 192.168.1.100). Get an example file to transfer (eg. hda.txt)

touch /tftpboot/hda.txt

chmod 777 /tftpboot/hda.txt

ls -l /tftpboot/

total 0
-rwxrwxrwx 1 ruchi ruchi 223 hda.txt

atftp 192.168.1.2

atftp> put hda.txt

Sent 722 bytes in 0.0 seconds

atftp> quit

ls -l /tftpboot/

total 4
-rwxrwxrwx 1 ruchi ruchi 707 2008-07-07 23:07 hda.txt

  • Share/Save/Bookmark

Related Articles

13 Comments to “Howto Setup advanced TFTP server in Ubuntu”

  1. Alex says:

    Great job!

    Just a little mistake, maybe this command “tftp 192.168.1.2″ should be “atftp 192.168.1.2″.

  2. admin says:

    @alex

    Thanks for your comment and i have updated the article

  3. Ivan Ruter says:

    Very helpful – have achieved transfer from Ubuntu client to Ubuntu server (named UbuntuServer_2 with address 192.168.1.2) on in-house LAN.

    Next step is to be able to transfer from Windows XP to Ubuntu server.

    Results so far, using ‘ftp http://ftp.hostname‘ as suggested in Windows X Help:

    ftp http://ftp.UbuntuServer_2 -> Unknown host

    ftp http://ftp.192.168.1.2 -> Uknown host

    ftp 192.168.1.2 -> connected to 192.168.1.2, then after a few secs, connection closed by remote host.

    Question: any suggestions.

    Eventual aim is to be able to upload files from NuSphere phpEd (Standard) which only supports ‘passive’ FTP, installed on the Windows XP PC to the Ubuntu sever.

  4. admin says:

    @Ivan Ruter

    If you want to transfer files from xp,any linux clients you can use ftp server on your ubuntu that is easy to transfer files

  5. andrea mucci says:

    Hi Guys

    My Question is:

    Is possible to configure a Tftp Server for multiples domains or users.
    For example a client connet to testtftp.com the server send a response with a mail folder
    but if i connect on testtftp2.com th tfpt server send a reponse qith other folder direction

    this possible this?

  6. Peter says:

    Hi admin,

    Great job!

    However I am having difficulties once it has all been installed.

    When Trying to Download a file from the server (Using tftp client on another computer), I get the following error:
    ———————-
    tftp> get config.jpg
    tftp: error received from server
    tftp: aborting
    ———————-

    AND

    When Trying to Upload a file to the server (Using tftp client on another computer) I get this error:
    ———————-
    tftp> put config.jpg
    tftp: error received from server
    ———————-

    I’ve checked the permissions of the /tftpboot folder and it has all read/write access for ALL users.

    I’ve got plenty experience with apache via port 80 and 443 (http and https) and also ftp. But i’ve never worked with tftp before and its proving to be so hard to get going.

    Am I missing something?

    Please help… I am desperate to get this going
    Any help would be greatly appreciated so thanks in advance.
    Peter

  7. Robert says:

    This was most useful – thanks you! That said, I had one additional step to make on Ubuntu server 8.10:

    When editing the /etc/default/atftpd to change USE_INETD=true, I also had to amend the options line to point to the /tftpboot directory.

    My original options line read:
    OPTIONS=”–daemon –port 69 –tftpd-timeout 300 –retry-timeout 5 –mcast-port 1758 –mcast-addr 239.239.239.0-255 –mcast-ttl 1 –maxthread 100 –verbose=5 /var/lib/tftpboot”

    My Amended options line reads:
    OPTIONS=”–daemon –port 69 –tftpd-timeout 300 –retry-timeout 5 –mcast-port 1758 –mcast-addr 239.239.239.0-255 –mcast-ttl 1 –maxthread 100 –verbose=5 /tftpboot”

  8. Maus says:

    Your article was very helpfull

    Still having some problems though. everthing works fine for tiny text files, but If i send anything larger (maybe 100k) it fails.

    I am trying to set this up so my PXE client can boot with thintux

    any help would be appreciated.

    almost forgot, If I run the atftp client on the server itself i dont have a problem.

  9. Jcoman says:

    I think I have followed this very helpful article to the letter.

    My problem is I get the error:

    atftpd: can’t bind port :69/udp

    whenever I start atftpd

    Any suggestions?

    Thanks

  10. Stephane says:

    Maybe:

    /etc/init.d/inetd restart

    and then

    /etc/init.d/atftpd start

  11. Nice post, a lot of thanks!!

  12. Aaron says:

    Well done!

    atftp may have moved /tftpboot directory to /var/lib/tftpboot

    look in /etc/default/atftpd

    It was this way on ubuntu 8.10.

  13. Peter says:

    I’m using ubuntu server 9.04 and I get the following error when I type the command which is supposed to start the standalone service (sudo invoke-rc.d atftpd start):

    invoke-rc.d: initscript atftpd, action “start” failed.

    Any suggestions why it doesn’t start? I haven’t found any log files in /var/log… I tried setting it up using the –logfile option but it didn’t work.

    Thanks,
    Peter

Leave a Reply