Назад | Перейти на главную страницу

tftpd разрешает соединения, но истекает время передачи файла

Я запускаю Ubuntu 12.04 на виртуальной машине VirtualBox. Я установил tftpd-hpa пакет. Я использую это для загрузки встроенной системы Linux, и я заметил, что при первой загрузке моей виртуальной машины это не сработает, но перезапустите tftpd-hpa сервис заставлял его работать каждый раз, до следующей загрузки.

Сегодня я запустил сценарий оболочки от Texas Instruments, который, возможно, испортил мою конфигурацию tftpd, и теперь я вообще не могу заставить его работать. Я могу подключиться, но передает таймаут даже на localhost (я также пробовал 127.0.0.1):

steve@steve-VirtualBox:~$ tftp
tftp> connect localhost
tftp> status
Connected to localhost.
Mode: netascii Verbose: off Tracing: off
Rexmt-interval: 5 seconds, Max-timeout: 25 seconds
tftp> get zImage
Transfer timed out.

tftp> 

Обратите внимание, что /var/lib/tftpboot/zImage действительно существует, однако я получаю точно такое же поведение для несуществующего файла.

Вот содержание /etc/default/tftpd-hpa:

# /etc/default/tftpd-hpa

TFTP_USERNAME="tftp"
TFTP_DIRECTORY="/var/lib/tftpboot"
TFTP_ADDRESS="0.0.0.0:69"
TFTP_OPTIONS="--secure"

Вот это /etc/xinetd.d/tftp:

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

Кажется, вы запускаете tftpd-hpa из xinetd и как отдельную службу одновременно. Пожалуйста, выберите одно и отключите другое.

Например. устанавливать disable = yes в /etc/xinetd.d/tftp и перезапустите xinetd. Затем перезапустите автономную службу service tftpd-hpa restart и попробуйте снова установить соединение.

Установка TFTP_ADDRESS = "0.0.0.0:69" у меня не сработала, по крайней мере, для обоих интерфейсов. Настройка TFTP_ADDRESS=":69" сделал работу

1) удалить / переустановить tftpd-hpa

2) добавить в / etc / default / tftpd-hpa

RUN_DAEMON="yes"

Возможно, вам придется проделать дыру в брандмауэре. С шага 4 из http://www.thelinuxdaily.com/2010/02/guide-on-tftp-server-setup-in-fedora/:

Вставьте следующую строку перед строкой «COMMIT» файла / etc / sysconfig / iptables, а затем перезапустите службу с помощью «service iptables restart»:

-A INPUT -m state --state NEW -m udp -p udp --dport 69 -j ACCEPT

Видеть этот ответ.

Мне пришлось отредактировать /etc/default/tftpd-hpa и установите IP-адрес в TFTP_ADDRESS= переменная.

Это было в Debian Jessie, но может быть то же самое в Ubuntu.