TFTP設定の問題

TFTP設定の問題

私のシステムでTFTPが正常に動作することはできません。私は/etc/default/tftpd-hpaすべてと同様に権限を設定しましたが、/srv/tftp/これを行うたびにタイムアウトが発生します(そしてlocalhostで127.0.0.1に接続されます)。 TFTPがどこかに文書化されていないようですが、そうですか?この問題をデバッグする方法についてご協力いただきありがとうございます。777/srv/get test

編集#1

/srvこれは所有するコンテンツを持つ(K)Ubuntuシステムにあり、root:root今はに変更しましたが、nobody:nogroupまだ同じタイムアウトが発生します。

$ ls -la
total 12
drwxrwxrwx 3 nobody nogroup 4096 Nov  5 08:47 .
drwxrwxrwx 3 nobody nogroup 4096 Nov  5  2013 ..
drwxrwxrwx 2 nobody nogroup 4096 Nov  5  2013 artifacts
-rwxrwxrwx 1 nobody nogroup    0 Nov  5 08:48 test
-rw-r--r-- 1 reg    reg        0 Nov  5 08:47 vx.bin
reg@ubuntu:/srv/tftp$tftp 127.0.0.1
tftp> get test
Transfer timed out.

編集#2

tftp私は実行中のインスタンスがないようだと気づいて起動しようとしましたが、#tftpUbuntuでapt-get install cobblerCobblerをインストールする必要があるため、そうしました。その後、再試行して次のような結果を得ました。

# tftpd
Traceback (most recent call last):
  File "/usr/sbin/tftpd", line 51, in <module>
    import tornado.ioloop as ioloop
ImportError: No module named tornado.ioloop
root@ubuntu:/srv# 

これが何を意味するのか疑問に思います。手がかりはありますか?

答え1

私は最近この問題を何度も直接処理しなければなりませんでした。

  • tftpdはxinetdで実行されますか、それとも別のデーモンとして実行されますか?
  • /etc/hosts.allow または hosts.deny を変更する必要があります。
  • SELinuxが有効になっていますか(「getenforce」コマンドを使用して確認)?
  • ホストファイアウォールが実行されていますか? (サービス iptables 状態)
  • tftpdがデータディレクトリとして使用しているディレクトリは確実ですか?
  • 「インポートしたい」ファイルは実際に存在しますか?

私の賭けは上記の組み合わせです。ファイアウォール、SELinux、データディレクトリの場所など。

/ srvがモード0777で開かれたくありません。また、tftpデータディレクトリに対してもこれを行う必要はありません。誰でも読むことができるファイルだけが必要です。ファイルをサーバーに置かない限り。この場合は、事前にファイルを作成してファイルを作成するときに誰でも書き込むように設定する必要があります。

頑張ってください!

答え2

ついについて行きました。このガイドこれは、openbsd-inetdこのプログラムもインストールする必要があり、RUN_DAEMON="yes"tftp設定ファイルでも設定する必要があることを示します/etc/default/tftpd-hpa

アップデート#1

上記のリンクはもう機能しなくなりましたので、ここで次の選択肢を見つけました。 Ubuntu 12.04 LTSでTFTPサーバーを実行する(正確)修正する

答え3

Debian Jessieで「転送がタイムアウトしました」という問題が発生しました。

/etc/default/tftpd-hpa住所行があります: TFTP_ADDRESS="0.0.0.0:69"

サーバー全体のアドレスに置き換えてください。たとえば、

TFTP_ADDRESS="192.168.99.10:69"

そしてデーモンを再起動してください。これで問題が解決したようです。

Debian のこの変数は--addressデーモンのオプションを設定します。ディストリビューションごとに異なる設定が必要になる場合がありますが、最終的に次のようにするとアドレスが表示されますps x

# ps x | grep tftp
3988 ?        Ss     0:00 /usr/sbin/in.tftpd --listen --user tftp --address 192.168.99.10:69 --secure /docs/tftp-pxe

サーバーやクライアントにバグがあるようです。

答え4

CentOS / Fedoraの場合は、TFTPで詳細なメッセージングを有効にできます。構成ファイルで/etc/xinetd.d/tftpserver_args変数を次のように変更します。

server_args = -v -v -l /var/log/tftpd

必ずサーバーを再起動してください。他の-vスイッチを追加してより詳細にすることができます。

関連情報