ルータやスイッチのSWイメージを操作剃る時に、TFTPサーバがあると便利です。FTPサーバももはや死語に近いご時世で、TFTPって何?と思われる方もいると思いますが、ファイル転送のためのアプリケーションプロトコルです。
TFTP (Trivial File Transfer Protocol) は、UDP port 69を使い認証機能などなく、純粋にファイルを転送するためのプロトコルです。クライアント-サーバ型のアプリケーションですので、TFTPサーバとTFTPクライアントがいます。
macOSでは、OSに tftpd が搭載されていて、利用することができます。
これまでのバージョンでも利用できてましたが、macOS Catalinaでもtftpdを動かせました。
tftpdを起動する
$ sudo launchctl load -w /System/Library/LaunchDaemons/tftp.plist
$ sudo lsof -i :69 Password: COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME launchd 1 root 23u IPv6 0x3062b36b420cb861 0t0 UDP *:tftp launchd 1 root 38u IPv6 0x3062b36b420cb861 0t0 UDP *:tftp launchd 1 root 44u IPv4 0x3062b36b420ca409 0t0 UDP *:tftp launchd 1 root 45u IPv4 0x3062b36b420ca409 0t0 UDP *:tftp
ファイルを配置する
/private/tftpboot 配下にファイルを配置
TFTPでファイル転送する
macOS上では、ターミナルで、tftpコマンドが利用可能です。
※Ciscoルータでは、IOSイメージをtftpサーバからファイル転送する場合、「copy tftp: flash:」コマンドで利用できます。
$ tftp tftp> connect (to) 192.168.11.2 tftp> binary tftp> get test.jpg Received 13013 bytes in 0.8 seconds tftp> tftp> quit $
tftpdを終了する
$ sudo launchctl unload -w /System/Library/LaunchDaemons/tftp.plist
念の為、ポートが閉じているか、確認しておきましょう。
$ sudo lsof -i :69 $