Como instalar e configurar um servidor TFTP em 14.04

3

Eu tenho tentado construir um servidor TFTP em uma nova compilação do Ubuntu 14.04 por várias semanas usando artigos que eu encontrei on-line, mas todas as minhas tentativas parecem falhar como o servidor TFTP que eu tenho instalado parece não estar respondendo. Não importa se eu GET ou PUT, sempre recebo um erro de tempo limite.

Os artigos mais recentes que experimentei são:

  • Como eu instalo e executo um servidor TFTP?
  • link

Ambos foram malsucedidos, cada vez com o cliente TFTP reclamando de um erro de tempo limite.

Eu adicionei (ou pelo menos eu acho) regras ao UFW e ao iptables para permitir acesso à porta UDP 69, mas sem sucesso.

Eu tenho construído minha base Ubuntu 14.04 OS a partir do arquivo mini.iso que baixei das páginas de download do Ubuntu em uma VM VirtualBox (ver 4.3.8 r92456) em execução na minha máquina Win7 pro. Nenhum pacote adicional foi instalado durante a compilação inicial, mas eu instalei o SSH e o NTP (ambos parecem estar funcionando) após a compilação inicial. O cliente TFTP está sendo executado da minha máquina Win7 e a máquina Ubuntu tem um endereço IP estático.

A conexão está sendo feita a partir de um cliente TFTP remoto na minha máquina 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
    
por Paumaz 04.02.2015 / 23:02

2 respostas

1

Apenas o mesmo problema aqui. Velho Ubuntu 9.? que atualizou para 14.04 clicando em "Sim". O usuário é definido a partir de "antes" (padrão tudo).

Eu encontrei para trabalhar com:

tftp AAA.DDD.DDD.RRR  
get test  
^D  

cat test

Isso funciona, onde AAA.DDD.DDD.RRR é o IP real da minha própria máquina.
(Atualmente tenho uma rede offline local estática, portanto, por exemplo: tftp 192.168.1.1 é fornecido como comando)
Substituindo este endereço numérico pela palavra "localhost" == > Tempo limite em "get"
(parece conectar ok, mas não pode pegar os arquivos).

    
por Göran 05.04.2015 / 09:37
9

Instale os seguintes pacotes.

sudo apt-get install xinetd tftpd tftp

Crie /etc/xinetd.d/tftp

sudo nano /etc/xinetd.d/tftp

e coloque esta entrada

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

Crie uma pasta /tftpboot , que deve corresponder ao que você deu em server_args . principalmente será tftpboot

sudo mkdir /tftpboot
sudo chmod -R 777 /tftpboot
sudo chown -R nobody /tftpboot

Reinicie o serviço xinetd .

sudo /etc/init.d/xinetd restart

Você deve permitir udp port 69 no firewall.

Editar 1

Como eu digo, primeiro tftp localhost , depois get ... .

Dar saída cat /var/log/syslog | grep tftp

    
por 2707974 05.02.2015 / 08:43