web-dev-qa-db-ja.com

14.04にTFTPサーバーをインストールおよび構成する方法

オンラインで見つけた記事を使用して、数週間にわたって新しいUbuntu 14.04ビルドでTFTPサーバーを構築しようとしましたが、インストールしたTFTPサーバーがそうではないため、すべての試行が失敗したようです応答する。 GETかPUTかは関係ありません。常にタイムアウトエラーが発生します。

私が試した最新の記事は次のとおりです。

TFTPクライアントがタイムアウトエラーを訴えるたびに、これらは両方とも失敗しました。

UDPポート69へのアクセスを許可するルールをUFWとiptablesに追加しました(または少なくとも持っていると思います)が、成功しません。

UbuntuのダウンロードページからWin7 proマシンで実行されているVirtualBox VM(ver 4.3.8 r92456)にダウンロードしたmini.isoファイルから、ベースのUbuntu 14.04 OSを構築しています。初期ビルド中に追加のパッケージはインストールされませんでしたが、初期ビルド後にSSHとNTP(両方とも機能しているように見える)をインストールしました。 TFTPクライアントはWin7マシンから実行されており、Ubuntuマシンには静的IPアドレスがあります。


Win7マシン上のリモートTFTPクライアントから接続が確立されています。

$ netstat -apu
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name
udp        0      0 *:tftp                  *:*                                 8166/xinetd
udp        0      0 test.paumaz.local:ntp   *:*                                 1332/ntpd
udp        0      0 localhost:ntp           *:*                                 1332/ntpd
udp        0      0 *:ntp                   *:*                                 1332/ntpd
udp6       0      0 fe80::250:56ff:febe:ntp [::]:*                              1332/ntpd
udp6       0      0 localhost:ntp           [::]:*                              1332/ntpd
udp6       0      0 [::]:ntp                [::]:*                              1332/ntpd

$ netstat -l
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State
tcp        0      0 localhost:mysql         *:*                     LISTEN
tcp        0      0 *:ssh                   *:*                     LISTEN
tcp6       0      0 [::]:http               [::]:*                  LISTEN
tcp6       0      0 [::]:ssh                [::]:*                  LISTEN
udp        0      0 *:tftp                  *:*
udp        0      0 test.paumz.local:ntp    *:*
udp        0      0 localhost:ntp           *:*
udp        0      0 *:ntp                   *:*
udp6       0      0 fe80::250:56ff:febe:ntp [::]:*
udp6       0      0 localhost:ntp           [::]:*
udp6       0      0 [::]:ntp                [::]:*
Active UNIX domain sockets (only servers)
Proto RefCnt Flags       Type       State         I-Node   Path
unix  2      [ ACC ]     STREAM     LISTENING     7010     @/com/ubuntu/upstart
unix  2      [ ACC ]     STREAM     LISTENING     7559     /var/run/dbus/system_bus_socket
unix  2      [ ACC ]     SEQPACKET  LISTENING     7370     /run/udev/control
unix  2      [ ACC ]     STREAM     LISTENING     9458     /var/run/mysqld/mysqld.sock
unix  2      [ ACC ]     STREAM     LISTENING     9209     /var/run/acpid.socket
3
Paumaz

ここでも同じ問題です。古いUbuntu 9.? 「はい」をクリックして14.04にアップグレードしました。ユーザーは「前」から定義されます(デフォルトはすべて)。

私はそれが動作することがわかりました:

tftp AAA.DDD.DDD.RRR  
get test  
^D  

cat test

AAA.DDD.DDD.RRRは自分のマシンの実際のIPです。
(現在、静的なローカルオフラインネットがあるため、例:tftp 192.168.1.1がコマンドとして指定されています)
この数値アドレスを「localhost」という単語に置き換えます==>「get」のタイムアウト
(接続は問題ないようですが、ファイルを取得できません)。

1
Göran

以下のパッケージをインストールします。

Sudo apt-get install xinetd tftpd tftp

/etc/xinetd.d/tftpを作成

Sudo nano /etc/xinetd.d/tftp

そして、このエントリを置きます

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

フォルダ/tftpbootを作成します。これは、server_argsで指定したものと一致する必要があります。ほとんどはtftpbootになります

Sudo mkdir /tftpboot
Sudo chmod -R 777 /tftpboot
Sudo chown -R nobody /tftpboot

xinetdサービスを再起動します。

Sudo /etc/init.d/xinetd restart

ファイアウォールでudp port 69を許可する必要があります。

編集1

enter image description here

私が言うように、最初にtftp localhost、次にget ...

出力を与えるcat /var/log/syslog | grep tftp

9
2707974