1

以下のコマンドを使用して、ファイルを tftp サーバーに送信しようとしています。

tftp -p -l test.txt xx.xx.xx.xx

そして、tftp の使用法は次のとおりです。

BusyBox v1.13.2 (2011-03-24 18:58:44 CDT) マルチコール バイナリ

使用法: tftp [オプション]... ホスト [ポート]

tftp サーバーとの間でファイルを転送する

オプション:

    -l FILE Local FILE
    -r FILE Remote FILE
    -g      Get file
    -p      Put file

ファイルを送信しようとしているときに上記のコマンドを使用すると、次のエラーが発生しました。

tftp: サーバーエラー: (2) アクセス違反

しかし、手動でサーバーに test.txt (送信する必要のあるファイル名) を作成し、サーバーに転送しようとすると、正常にアップロードされました。

手動で作成せずにファイルを送信するにはどうすればよいですか?

tftp サーバーに xinetd サービスを使用しています。以下はその構成ファイルです。

#/etc/xinetd.d/tftp :

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

サーバーにファイルを作成せずに動作させるための変更を提案してください。

4

1 に答える 1

2

これが私が問題をデバッグした方法です。

# tail /var/log/syslog

上記のコマンドの出力には、tftpd が からファイルを提供していたことが示されていますが、 in/srv/tftpについては言及されていません。/srv/tftp/etc/xinetd.d/tftp

また、この投稿は問題のデバッグに役立ちました: http://toddharris.net/blog/2011/06/19/debugging-xinetd-at-system-launch/。xinetd をデバッグ モードで実行しても、この問題は発生しませんでした。

/etc/inetd.conf次のリンクに記載されているように、 犯人は tftp 行でした: http://www.beer.org/blog/category/tech-stuff.html ほとんどの場合、xinetd がデーモンとして実行されている/etc/inetd.conf場合、./etc/xinetd.dそのため、xinetd がデーモンとして実行されている場合にこの問題が発生します。

tftp 行を/etc/inetd.confコメントアウトして xinetd を再起動すると、この問題が修正されました。

于 2015-06-10T11:24:02.803 に答える