On Windows I love the lightweight and open source TFTPD32, but there may come a time when you find youself needing to transfer some files and all you have is your trusty mac.
Luckily there’s a built in tftp daemon that you can use in a pinch.
By default tftpd uses the following folder:
/private/tftpboot
which is hidden in finder, but can be accessed by using “go to folder” or hitting Command+Shift+G and entering /private/tftpboot
To launch the daemon run the following commands:
sudo launchctl load -F /System/Library/LaunchDaemons/tftp.plist
sudo launchctl start com.apple.tftpd
Be sure Read/Write/eXecute permissions are set on the tftpboot folder and any files you wish to transfer:
sudo chmod 777 /private/tftpboot
sudo chmod 777 /private/tftpboot/*
If you’ll be transferring a file TO your TFTP server, the file will technically need to exist on the server beforehand so create it with touch. For example:
sudo touch /private/tftpboot/running-config
sudo chmod 777 /private/tftpboot/running-config
If you’d like a graphical front end for launching tftp then check out the great TftpServer.
Now go ahead and get transferring.
Thanks, that was helpful! Obviously TFTP Tool does not let me change the working path on El Capitan. That’s ok, but unexpected 😉 Works fine now!
THANK YOU. I’d been fighting with PXE all day and with your instructions, I got it working.
Thank you for taking time to write this post. I actually was running the TFTP Gui and it stopped working after updating to El Capitan. Running these two commands below helped me.
sudo chmod 777 /private/tftpboot
sudo chmod 777 /private/tftpboot/*
Clutch post
Nice post. It did what I needed it to do. Do I just reboot or is there anything to do to shut down the tftp server?
I did find a Mac terminal pocket guide in our office. I did a sudo launchctl stop com.apple.tftpd and a sudo launchctl unload /System/Library/LaunchDaemons/tftp.plist
I’ve tried three different tftp servers, and the problem I have on both my machines is that port 69 still shows closed. tcpdump shows the incoming tftp requests, and the filename, but that’s it. That bangs away for a minute, then the tftp on the other end (cisco switch) times out.
Any ideas? Firewall is off.
Make sure you are looking at the UDP port binding – not TCP
Make sure that nothing else has already binded to port UDP 69 (use netstat). If another process has it bound up, you will have to stop that process first
Make sure that you are trying to open the tftp server as root – since UDP 69 is a privileged port, you can’t get it open if you are not running as root
Click on start TFTP does not start the TFTP server. Anything I am missing?
Folder rights properly set. I see Green colour for both working folder and parent folder permissions.
@Prem: Did you ever get this working? I have the same problem.
$ brew install dnsmasq
$ dnsmasq -d –enable-tftp –tftp-root=.
Although English is not my mother tongue, I was born in the German speaking area, but as far as I understand I have to go with Mac OS X El Capitan, with Server Connect, sounds very promising.
But I will follow this tutorial point by point exactly with TFTP server, in case of problems with the installation I will log in here.
when use tftpserver,there are some error :
Apr 12 11:22:05 xiaoxiliudeMacBook-Pro TftpServer[18380]: objc[18380]: Class FIFinderSyncExtensionHost is implemented in both /System/Library/PrivateFrameworks/FinderKit.framework/Versions/A/FinderKit (0x7fff8eaf9c90) and /System/Library/PrivateFrameworks/FileProvider.framework/OverrideBundles/FinderSyncCollaborationFileProviderOverride.bundle/Contents/MacOS/FinderSyncCollaborationFileProviderOverride (0x114ba5cd8). One of the two will be used. Which one is undefined.
Thank you so much !!! been scratching head to find the way to make it work
HI I have been struggling this issue. My TfgpServer gui shows server status as “Stopped” while Attirbutes OK shows all green. Any advice?
thanks, useful!!
I have same issue as Networry. Can someone please share the solution to fix?
It’s nearly impossible to find educated people for this topic, but you seem like you know what you’re talking about!
Thanks
Agreed.. Much obliged!
I used this post to debrick my Archer C7 router. It showed no log when transferring the firmware but did the trick. The frontend you have linked to in the post did not, however, work. Thanks much!
Super helpful, worked flawless on Mojave 2 Cisco too!
THANKS!!
Life saver.. THANKS!
This issue?
com.apple.xpc.launchd[1] (com.apple.tftpd[1303]): Service exited with abnormal code: 1
built in tftpd in Catalina exits immediately with an error code 1. no workaround I could find. Apparently there was an upgrade path to macOS Server via Mac App Store, but it’s been discontinued.
ended up using dnsmasq and its built in tftpd capability. See “Anonymous” comment from 2017. they got the syntax wrong though.
install Brew if you haven’t already via instructions from brew.sh.
then: sudo brew install dnsmasq
to temporarily run tftpd and serve files from your current directory then:
dnsmasq -d –enable-tftp -tftp-root=.
looks like the website font screws up the comment
that’s two dashes for enable-tftp and tftp-root
How do I point my Cisco phone to the TFTP server I just created?
It needs to be a URL, I tried
tftp://LOCAL_MACHINE_IP:69/private/tftpboot/FIRMWAREFILE.loads
tftp://LOCAL_MACHINE_IP/private/tftpboot/FIRMWAREFILE.loads
tftp://localhost:8800/private/tftpboot/FIRMWAREFILE.loads
tftp://localhost/private/tftpboot/FIRMWAREFILE.loads
tftp://private/tftpboot/FIRMWAREFILE.loads
Nothing has worked! What’s the right address?
you saved my day.
Thank you, Bryan
Brilliant, Thank You!