macOS で TFTP サーバを起動する
ネットワーク機器に触れていると OS や設定ファイルの退避先として TFTP サーバを利用したくなることが、しばしばあります。Snow Leopard のクライアント版では、デフォルトで TFTP サーバが無効になっていますので、有効にしてみます。
Snow Leopard には標準で TFTP サーバがインストールされています。パラメータファイルは /System/Library/LaunchDaemons/tftp.plist になります。]
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 |
|
ProgramArguments の部分を読むと「/usr/libexec/tftpd -s /private/tftpboot」を起動するようになっているようです。-s オプションは TFTP サーバで公開するディレクトリを指定します。詳細は man ページに詳しく書かれています。TFTP サーバを起動したいだけであれば、tftp.plist はデフォルトのままで構わないので、以下のように launchctl から TFTP サーバを起動します。
1 |
|
TFTP サーバは UDP/69 を Listen しますので、正常に起動しているか、否かは、lsof コマンドで 69 番ポートを Listen しているプロセスを確認することで分かります。
1 2 3 4 |
|
TFTP サーバを利用する¶
接続する¶
tftp コマンドで対象サーバへ接続します。ここではローカルコンピュータで起動している TFTP サーバ(127.0.0.1)へ接続してみます。正常に接続出来れば、tftp> プロンプトが返ってきます。
1 2 |
|
ASCII / BINARY モードを切り替える¶
FTP 同様、TFTP でもファイルをダウンロードする前に対象ファイルがテキストなのか、それともバイナリなのかを、モードとして指定します。
- ASCII モード
- テキストファイルを扱う場合に ascii コマンドで指定する。
- BINARY モード
- バイナリファイルを扱う場合に binary コマンドで指定する。
現在のモードは status コマンドで確認出来ます。以下は ASCII モードに切り替えた例です(デフォルトでは ASCII モードです)。
1 2 3 4 5 |
|
以下は BINARY モードに切り替えた例です。
1 2 3 4 5 |
|
ダウンロードする¶
get コマンドで対象ファイル名を指定し、ダウンロードします。
1 2 |
|
アップロードする¶
put コマンドで対象ファイル名を指定し、アップロードします。ただし、TFTP でファイルをアップロードする場合、アップロードしようとしているファイルが存在している必要があります(上書きしか出来ません)。TFTP サーバとして公開しているディレクトリに tmp.txt というファイルが無い状態で、tmp.txt をアップロードしようとすると、以下のエラーとなってしまいます。
1 2 |
|
エラーを避け、意図した通りにファイルをアップロードするには事前にファイルを作成しておき、更に書き込み権限を与えておきます。ここでは touch でファイルを新規作成し、更に chmod で書き込み権限を付与しています。
1 2 3 4 5 |
|
切断する¶
quit コマンドで TFTP サーバから切断出来ます。
1 2 |
|
TFTP サーバを停止する¶
起動時同様、launchctl で TFTP サーバを停止します。
1 |
|
TFTP サーバを正常に停止出来ていれば、lsof で UDP/69 を確認しても、Listen しているプロセスが無いことが確認出来ます。
1 2 |
|