Transfer is a reliable and straightforward TFTP (Trivial File Transfer Protocol) server application for macOS. TFTP is a high-level protocol to read and write files from or to a remote server. The protocol was developed in the 1970s; however, it is still commonly used because of its simplicity and minimal memory and processing requirements. For example, TFTP is used to boot diskless workstations or load files to network devices such as routers.
Our friend Sam Clements trusted us with the idea of developing a TFTP server for macOS. He shared his frustrations about the lack of a robust and reliable TFTP server solution for macOS. In particular, we identified two main limitations of existing implementations currently available for macOS, including the macOS’ built-in TFTP server:
- No real-time updates of current transfers in progress: TFTP transfers are very slow; therefore, progress updates are essential for a better user experience. However, because some of the existing applications offer just a front-end GUI to control (start, stop) and configure the root folder of the macOS’ built-in TFTP server, they don’t provide real-time updates of current transfers in progress. Other TFTP server applications lack this functionality as well.
- No support for broadcast transfer requests: By design, TFTP requests made to the broadcast address 255.255.255.255 should be rejected to prevent unauthorized transfers; however, under some circumstances, support for broadcast transfer requests is necessary. The macOS’ built-in TFTP server and other available alternatives for macOS don’t support broadcast transfer requests.
Transfer‘s primary goal is to address these limitations, offering a user interface that allows you to have complete control of the transfers and the files that can be accessed via TFTP.
The app is fully compliant with RFC 1350 – The TFTP Protocol (Revision 2) and provides support for the following TFTP protocol extensions and options:
- RFC 2347 – TFTP Option Extension
- RFC 2348 – TFTP Blocksize Option
- RFC 2349 – TFTP Timeout Interval and Transfer Size Options
The user interface is straightforward, with a file management view for the root TFTP directory and two lists for displaying the status of transfers, one for downloads (read requests) and another one for uploads (write requests). You can drag and drop files to or out of Transfer, or quick preview, open, rename and delete files in the root TFTP directory in the file management view.
The information for each transfer includes the name of the file, the transfer rate, how much time is left to complete the transfer (when the file size is known), whether the transfer mode is binary or ASCII, and the IP address of the client that initiated the transfer. And Transfer automatically saves the information of completed transfers if you need to go back and check something about them or export them to CSV.
Also, settings are available to configure how you wish to handle overwriting existing files during uploads and enable broadcast transfer requests and advanced tuning of the TFTP protocol.
File transfers over TFTP might be something you don’t come across very often (or not at all), but Transfer will get the job done if you require it.
Transfer is $9.99 and can be downloaded here. A 3-day free trial is available.
Hi Adrian – I’m having some trouble actually figuring out how to get the file I want transferred to my wifi extender (it’s a firmware update for a bricked device). I have dragged the .img file to the top window, and see the IP address that I set the extender to (192.168.1.10) In the lower left corder, but the file just seems to be sitting there, and I don’t see any button to click to actually trigger sending the file to the extender. What am I missing here?
Hi Dave,
Transfer is a server mode application only. It cannot be used as a client, which means you need to initiate the transfer from the device (the extender in your case), unless the extender itself is also creating a TFTP server. If so, you would need a TFTP client, such as Mac’s built-in tftp command-line client, to transfer the file to the extender.
Hi – just downloaded to trial. My client connects ok – but Transfer times out and fails, regardless of file size
Hi Ruairi,
If there’s a firewall between the Mac and the TFTP client, make sure it allows UDP traffic. If you need further assistance, please contact us.
Hello! I am also facing the same issue described above. I am trying with the trial version of the app on Catalina. Firewall is disabled and netstat output shows the port is opened (udp4 0 0 *.69 *.*.), but the transfer still times out. Do you have any other tips on how to fix this issue? Thank you!
Hi Vera, what TFTP client are you using? Is it timing out with zero bytes transferred or is it timing out mid transfer? For better assistance, please contact us.
TFTP client is a TP-Link router and the timeout happens almost at the end of the transfer. I have taken your advice and used the contact form to give a wider explanation for the problem.
Are there any file size limitations? I’ve primarily been using a TFPT server called Pumpkin, but it seems to be limited to around 30MB. I have to resort to a Windows VM and tftp64 when I come across a large file.
Hi Donovan. Transfer works fine with large files. There are no file size limitations.
Hi. I’m trialing this for my team at Cisco. Got FTP working fine with default/ro****@ci***.com as the credentials. But TFTP doesn’t seem to work and nothing is shown in the log. Using macOS Big Sur 11.5. No firewalls installed. Maybe something on the MacOS blocking TFTP?
Hi Adrian
I have recently aquired Transfer and I am looking to do tftp transfers to/from my Cisco kit but when I try to do a tftp of a Cisco config file I get the error on Transfer gui “too many open files” can you please help.
Thanks
Si
Does Transfer support RFC 7440, the windowsize option? This greatly increases the transfer rate, with a compatible client. (I’m writing the client.)
Hi Glen. That’s a great question. Transfer doesn’t support RFC 7440 because the app was primarily designed for use with networking equipment from major vendors like Cisco and Aruba, which do not support the windowsize option. However, I understand you’re implementing your own client. I’d love to hear more about your use case to see if adding support for the windowsize option in Transfer makes sense. Thank you!