Как установить и настроить TFTP-сервер на 14.04

Я пытался собрать TFTP-сервер на новой сборке Ubuntu 14.04 в течение нескольких недель, используя статьи, которые я нашел в Интернете, но все мои попытки, похоже, провалились, поскольку установленный мной TFTP-сервер, похоже, не отвечать. Неважно, если я получаю или PUT, я всегда получаю ошибку тайм-аута.

Самые последние статьи, которые я пробовал:

Оба из них были неудачны, каждый раз, когда клиент TFTP жаловался на ошибку тайм-аута.

Я добавил (или, по крайней мере, думаю, что у меня есть) правила к UFW и iptables, чтобы разрешить доступ к UDP-порту 69, но безуспешно.

Я собирал свою базовую ОС Ubuntu 14.04 из файла mini.iso, который я скачал со страниц загрузки Ubuntu, на виртуальную машину VirtualBox (версия 4.3.8 r92456), работающую на моей машине с Win7 pro. Никаких дополнительных пакетов не было установлено во время начальной сборки, но я установил SSH и NTP (оба из которых работают) после начальной сборки. Клиент TFTP работает с моего компьютера с Win7, а компьютер с Ubuntu имеет статический IP-адрес.


Соединение устанавливается с удаленного клиента TFTP на моей машине с Win7.

$ 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

2 ответа

Решение

Точно такая же проблема здесь. Старая 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

Другие вопросы по тегам