Windows で TFTP サーバーとクライアントをセットアップおよび構成する方法

TFTP(Trivial File Transfer Protocol)は、普段使いのファイル転送方法ではありませんが、ネットワークブート(PXE)、デバイス設定、ファームウェアアップデートなど、特定の状況で役立ちます。とはいえ、実は非常に基本的なプロトコルで、セキュリティも管理機能もなく、UDPポート69番を使用するだけです。シンプルなため、大きなファイルの転送速度もかなり速いですが、暗号化も認証も不要で、まるで虚空に向かって叫んでいるような感覚を覚えておく必要があります。ファイアウォールやネットワーク設定が適切でない場合など、設定によってはTFTPの起動に苦労することもあります。そこで、WindowsでのTFTPの設定と使い方について、実際のシナリオで役立ったヒントも交えて簡単に説明します。

Windows で TFTP サーバーを実行する方法 (TFTPD64 を使用)

TFTPD64 を使用した簡易 TFTP サーバー

ちょっと試してみたり、すぐに結果が欲しい場合は、これがおそらく最も簡単な方法です。無料のオープンソースツールであるtftpd64をダウンロードしてください。ポータブル版でもインストーラー版でも、どちらでも構いません。お好みのものをお選びください。目標は、起動して共有フォルダを選択するだけです。注:Windowsファイアウォールがポート69のUDPトラフィックを許可するように設定されていない場合、クライアントは接続できませんので、この点は重要な確認事項です。

  • を実行しますtftpd64.exe。管理者権限やファイアウォールルールが必要であることに関する小さなプロンプトが表示される場合があります。
  • TFTPサーバータブに切り替えます。「設定」をクリックし、共有したいフォルダ( などC:\TFTP-Share)を選択します。ファイルをアップロードする場合は、書き込み可能であることを確認してください。
  • TFTP セキュリティを「なし」に設定します。今のところこれをロックダウンするつもりはありません。
  • 重要:設定を変更した後は、tftpd64 を再起動して設定を確定してください。ちょっとしたヒント:特にしばらく実行していた場合は、アプリを再起動すると奇妙な問題が解決することがあります。
  • 次に、他のマシンが TFTP サーバーにアクセスできるように、UDP ポート 69 を開きます。最も簡単な方法は、次のような PowerShell コマンドを使用し、 New-NetFirewallRule -DisplayName 'TFTP-UDP-In' -Direction Inbound -Action Allow -Protocol UDP -LocalPort 69 次のように有効にすることですEnable-NetFirewallRule 'TFTP-UDP-In'

すべてがうまくいけば、クライアントは接続できます。PCのローカルIPアドレスを指定するだけで、ファイルの送受信が可能になります。tftpd64のTFTPサーバーはクライアントとしても機能するため、「TFTPクライアント」タブに切り替えてIPアドレスを入力し、「Get」または「Put」ボタンを使用することで、双方向にファイルを転送できます。問題が発生した場合は、ログビューアにログが表示されるので、トラブルシューティングにご活用ください。また、ポートやファイアウォールの問題が主な原因である場合もありますので、念のためご確認ください。

Windows で TFTP クライアントを有効にする (デフォルトではないため)

WindowsにはTFTPクライアントが標準で有効化されていません。コマンドラインを使ってファイルをアップロードまたはダウンロードする必要がある場合は、インストールする必要があります。Windows 10/11では、PowerShellで管理者権限で以下のコマンドを実行してください。

Enable-WindowsOptionalFeature -Online -FeatureName TFTP

Windows Server の場合、コマンドは少し異なります。

Install-WindowsFeature TFTP-Client

その後は、コマンドラインツールを使うだけですtftp.exe。便利なコマンドをいくつかご紹介します。

  • ファイルをアップロード:tftp 192.168.1.100 PUT filepath\yourfile.bin
  • ファイルをダウンロード:tftp 192.168.1.100 GET filename.bin

理由はわかりませんが、一部の設定では、TFTP クライアントが最初は不安定になることがあります。再起動するか、ファイアウォール ルールを確認する必要がある場合があります。

Windows Server の組み込み TFTP サーバーの使用

Windows Serverをご利用の場合は、より統合された環境になります。WDS(Windows展開サービス)の一部として、TFTPサーバーが組み込まれています。これは主にPXEブートやネットワーク経由のOSインストール用に設計されています。設定手順は以下のとおりです。

  • サーバー マネージャーで、[役割と機能の追加]に移動します。
  • Windows 展開サービスの役割を選択し、トランスポート サーバーを選択します。
  • TFTP ルートのディレクトリ ( などC:\tftp) を作成し、レジストリの RootFolderHKLM\SYSTEM\CurrentControlSet\services\WDSServer\Providers\WDSTFTPキーを使用してそのパスを設定します。
  • WDSServerサービスを開始し、自動的に開始するように設定します。
    Get-Service WDSServer | Start-Service Set-Service WDSServer -StartupType Automatic
  • ファイアウォールで UDP ポート 69 が開いていることを確認します。
    (Get-NetFirewallRule -DisplayName 'Windows Deployment Services (UDP-In)').Enabled
  • クライアントでファイルを取得してテストします。tftp -i 192.168.1.10 get test.zip

注:この内蔵サーバーはファイルのダウンロードのみ可能で、アップロードはできません。なぜこのような仕組みになっているのかは分かりませんが、双方向の転送が必要な場合は面倒です。また、これらの手順の一部では、正常に動作しない場合、サーバーの再起動または再インストールが必要になる場合があります。

もちろん、Windows では時々少し扱いに​​くくなることがあります。

これらのヒントが、TFTP 設定の安定と動作に役立つことを願っています。TFTPD64 の軽量サーバー、コマンドラインオプション、そして Windows Server 独自のツールを組み合わせれば、それほど手間をかけずに(あるいは少なくともボトルネックがどこにあるのかを把握しながら)設定を完了できる可能性は十分にあります。