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
}
5 ответов
Кажется, вы запускаете 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 ВХОД -m состояние -state NEW -m udp -p udp --dport 69 -j ПРИНЯТЬ
Смотрите этот ответ.
Мне пришлось редактировать /etc/default/tftpd-hpa
и установите IP-адрес в TFTP_ADDRESS=
переменная.
Это было в Debian Jessie, но может быть то же самое в Ubuntu.