Ubuntu 14.10 (utopic) に TFTP サーバーをインストールして設定する方法は?

Ubuntu 14.10 (utopic) に TFTP サーバーをインストールして設定する方法は?

以前は 14.04 を使用していましたが、TFTP サーバーとクライアントをセットアップして動作させることができました。14.10 にアップグレードしたところ、TFTP サーバーが動作しなくなりました。

私がやったことは次のとおりです:

  1. パッケージをインストールします。

    sudo apt-get install tftpd-hpa
    
  2. 設定ファイルを次のように編集します。

    sudo vi /etc/default/tftpd-hpa

    # /etc/default/tftpd-hpa
    TFTP_USERNAME="tftp"
    TFTP_DIRECTORY="/tftpboot"
    TFTP_ADDRESS="0.0.0.0:69"
    TFTP_OPTIONS="-s -c -l"
    
  3. TFTP フォルダーを作成します。

    sudo mkdir /tftpboot
    sudo chmod -R 777 /tftpboot
    sudo chown -R nobody /tftpboot
    
  4. 新しい設定を適用するにはアプリを再起動してください。

    sudo service tftpd-hpa restart
    

ソース

当時は、それがtftpd-hpaTFTP サーバー用のパッケージであり、tftp-hpaTFTP クライアント用のパッケージであることを知らなかったため、TFTP クライアント用の別のパッケージをインストールしました。

  1. 次のパッケージをインストールします。

    sudo apt-get install xinetd tftpd tftp
    
  2. ディレクトリの権限を変更します/etc/xinetd.d

    sudo chmod –R 777 xinetd.d
    
  3. tftp という名前のファイルを作成し/etc/xinetd.d、次のように記述します。

    service tftp {
    socket_type = dgram
    protocol = UDP.
    WAIT = YES
    user = root
    server = /usr/sbin/in.tftpd
    server_args =-s /tftpboot
    disable = no
    per_source = 11
    cps = 100 2
    flags = IPv4
    }
    
  4. 保存して終了。

  5. ディレクトリを作成しtftpboot、権限を変更します。

    cd /
    sudo mkdir /tftpboot
    chmod –R 777 /tftpboot
    
  6. サービスを再起動する

    sudo /etc/init.d/xinetd restart
    

TFTP サーバーと TFTP クライアント用の別のパッケージをインストールするこのステップ バイ ステップのプロセスは 14.04 では機能しますが、14.10 では機能しません。2 回目のインストールとセットアップ ( sudo apt-get install xinetd tftpd tftp) が、TFTP サーバーが機能しない原因であると思います。必要ないと思われるパッケージはすでにアンインストールしました。しかし、TFTP サーバーはまだ機能しません。TFTP サーバーを機能させるにはどうすればよいですか?

答え1

これは私にとってはうまくいきます:

service tftp
{
protocol        = udp
port            = 69
socket_type     = dgram
wait            = yes
user            = nobody
server          = /usr/sbin/in.tftpd
server_args     = /tftpboot
disable         = no
}

答え2

これは古い質問ですが、明確さを求めている人にとっては私の答えが役立つかもしれません:

tftpd-hpaは自己完結型の TFTP サーバーです。動作させるために xinetd を構成する必要はありません。実際、私が読んだ推奨事項の中には、tftpd-hpaとの間でポート 69 の競合が発生するものがありますxinetd

答え このページの他のユーザーは例です。このxinetd設定は他の tftp パッケージでは動作すると思いますが、 ではどのように動作するのかわかりませんtftpd-hpa

tftpd-hpaのデフォルト設定を見てみましょう/etc/default/tftpd-hpa:

# /etc/default/tftpd-hpa

TFTP_USERNAME="tftp"
TFTP_DIRECTORY="/srv/tftp"
TFTP_ADDRESS=":69"
TFTP_OPTIONS="--secure"

より多くのオプションを備えたソリューションを必要としない限り、しないでくださいtftp を処理するか、ポート 69 で listen するように構成しますxinetd(または、まったくインストールしないでください)。/etc/default/tftpd-hpa必要に応じて編集してから実行すれば、sudo systemctl restart tftpd-hpa問題は解決するはずです。次の方法で確認できます。

$ sudo netstat -tulpn | grep 69
udp        0      0 0.0.0.0:69              0.0.0.0:*                           45262/in.tftpd
udp6       0      0 :::69                   :::*                                45262/in.tftpd

関連情報