Mac OS XでTFTPサーバーを起動する

Mavericksです。

初めにサービスの設定ファイルを見てみる。

% cat /System/Library/LaunchDaemons/tftp.plist
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Disabled</key>
<true/>
<key>Label</key>
<string>com.apple.tftpd</string>
<key>ProgramArguments</key>
<array>
<string>/usr/libexec/tftpd</string>
<string>-i</string>
<string>/private/tftpboot</string>
</array>
<key>inetdCompatibility</key>
<dict>
<key>Wait</key>
<true/>
</dict>
<key>InitGroups</key>
<true/>
<key>Sockets</key>
<dict>
<key>Listeners</key>
<dict>
<key>SockServiceName</key>
<string>tftp</string>
<key>SockType</key>
<string>dgram</string>
</dict>
</dict>
</dict>
</plist>

まずはサンプルのファイルを用意。

% cat <<EOF | >/private/tftpboot/hello.txt
Hello, and
GoodBye.
EOF

まずはつないでみる。

% tftp localhost
tftp> status
Connected to localhost.
Mode: netascii Verbose: off Tracing: off
Rexmt-interval: 5 seconds, Max-timeout: 25 seconds
tftp> quit

Connected って出ておっ、つながったかなっておもうじゃないですか。

% tftp localhost
tftp> get hello.txt
Transfer timed out.
tftp> quit

つながったと思った?残念、つながってませんでした!

% sudo lsof -i:69

空っぽなのです。

サービスを立ち上げます。

% sudo launchctl load -w /System/Library/LaunchDaemons/tftp.plist
% sudo lsof -i:69                                                (git)-[master]
COMMAND PID USER   FD   TYPE             DEVICE SIZE/OFF NODE NAME
launchd   1 root  108u  IPv6 0x4b902fe356b26297      0t0  UDP *:tftp
launchd   1 root  110u  IPv4 0x4b902fe35704aec7      0t0  UDP *:tftp

今度こそ立ち上がったっぽいです。

% tftp localhost
tftp> get hello.txt
Received 26 bytes in 0.0 seconds
tftp> quit

中身を確認。

% pwd
/Users/noguchiwataru/
% cat hello.txt
Hello, and
GoodBye.

用が済んだらサービスを停止する。

% sudo launchctl unload -w /System/Library/LaunchDaemons/tftp.plist
% sudo lsof -i:69

参考文献

Wataru NOGUCHI について

Server and Network Engineer, Software Engineer.
カテゴリー: Mac, TFTP, ネットワーク パーマリンク

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です