Need to push firmware to a switch or back up a router config? Your Mac can be the TFTP server. There are two ways: the TFTP daemon that ships with macOS, set up from Terminal, or Octet, a TFTP server for Mac with a window, a log and a Start button.
macOS includes tftpd, but it is off by default and has no settings window. Every command below runs in Terminal and needs your admin password.
# Load the built-in TFTP daemon (it listens on UDP port 69) $ sudo launchctl load -F /System/Library/LaunchDaemons/tftp.plist
tftpd serves the folder /private/tftpboot. Devices can only download files that are in it and readable.
# Copy a firmware image into the TFTP folder $ sudo cp ~/Downloads/c9300-17.15.06.bin /private/tftpboot/ $ sudo chmod 644 /private/tftpboot/c9300-17.15.06.bin
By default tftpd won’t create new files, so an upload such as a config backup fails unless the file already exists and is writable. Open up the folder, then create each target file before the device sends it.
$ sudo chmod 777 /private/tftpboot $ sudo touch /private/tftpboot/lab-sw1-config.txt $ sudo chmod 666 /private/tftpboot/lab-sw1-config.txt
A world-writable folder lets anyone on the network overwrite those files, so only do this on a trusted lab network and tighten it again afterwards.
$ sudo lsof -i :69 # Look for a launchd or tftpd line with UDP *:tftp. No output means it isn't running.
$ sudo launchctl unload -F /System/Library/LaunchDaemons/tftp.plist
Firewall note: if the macOS firewall is on (System Settings → Network → Firewall), it may block incoming connections, and devices will time out. Also find your Mac’s IP address yourself, in System Settings → Network or with ipconfig getifaddr en0 (en0 is usually Wi-Fi or built-in Ethernet). There is no transfer log to watch, so when a copy fails you have to guess why.
Octet is a TFTP server for Mac that skips Terminal. It runs on Apple silicon Macs with macOS 14 or later.
Click Choose… and select any folder with your images and configs. No /private/tftpboot, no chmod.
Octet listens on UDP port 69 and turns GET and PUT on or off with a switch.
Octet shows your Mac’s LAN IP, ready to type into the device.
Every transfer and error is logged, so a failed copy tells you why.
Octet Lite (1.0.2) is the free, basic version. Download Octet Lite. Octet TFTP, with faster transfers, progress bars, safe uploads, allowed devices and menu bar mode, is in review with Apple for the Mac App Store ($4.99). Compare Lite and Octet TFTP →
Either way, the device side is the same. In these examples the Mac is at 192.168.1.50.
! Download a firmware image from the Mac to flash (interactive prompts) lab-sw1# copy tftp: flash: Address or name of remote host []? 192.168.1.50 Source filename []? c9300-17.15.06.bin ! Back up the running config to the Mac lab-sw1# copy running-config tftp: Address or name of remote host []? 192.168.1.50 Destination filename [lab-sw1-confg]? lab-sw1-config.txt ! Using a management port or VRF? Set the source interface first: lab-sw1(config)# ip tftp source-interface GigabitEthernet0/0
Device can ping the Mac but the copy times out? Something between them is blocking TFTP. See firewall and routing tips.
Octet Lite is a free download for Apple silicon Macs. Octet TFTP is in review with Apple for the Mac App Store.