Как установить и настроить TFTP-сервер на 14.04
Я пытался собрать TFTP-сервер на новой сборке Ubuntu 14.04 в течение нескольких недель, используя статьи, которые я нашел в Интернете, но все мои попытки, похоже, провалились, поскольку установленный мной TFTP-сервер, похоже, не отвечать. Неважно, если я получаю или PUT, я всегда получаю ошибку тайм-аута.
Самые последние статьи, которые я пробовал:
- Как мне установить и запустить TFTP сервер?
- http://community.spiceworks.com/how_to/100006-install-and-configure-tftp-under-ubuntu-14-04
Оба из них были неудачны, каждый раз, когда клиент 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