オンラインで見つけた記事を使用して、数週間にわたって新しい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
ここでも同じ問題です。古い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」のタイムアウト
(接続は問題ないようですが、ファイルを取得できません)。
以下のパッケージをインストールします。
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
私が言うように、最初にtftp localhost
、次にget ...
。
出力を与えるcat /var/log/syslog | grep tftp