2

Я не могу заставить tftp работать на моей машине под управлением Scientific Linux 6.1:

[root@bugs ~]# ls /tftpboot/
default  example.txt  MX075000.002_107  MX075100.002_025  MX076000.002  MX076200.002      MX0779900.002
[root@bugs ~]# tftp localhost
tftp> status
Connected to localhost.
Mode: netascii Verbose: off Tracing: off Literal: off
Rexmt-interval: 5 seconds, Max-timeout: 25 seconds
tftp> get example.txt
Transfer timed out.

Это конфигурация tftp:

[claudiu@bugs claudiu]$ cat /etc/xinetd.d/tftp
service tftp
{
    disable = no
    socket_type     = dgram
    protocol        = udp
    wait            = yes
    user            = root
    server          = /usr/sbin/in.tftpd
    server_args     = -c -s /tftpboot -v -v -v
    per_source      = 11
    cps         = 100 2
    flags           = IPv4
}

xinetd запущен и работает:

[claudiu@bugs claudiu]$ sudo service xinetd status
xinetd (pid  23864) is running...

Tftp, кажется, включен, и порт 69 открыт:

[claudiu@bugs claudiu]$ chkconfig | grep tftp
    tftp:           on
[claudiu@bugs claudiu]$ sudo nmap -sU localhost | grep 69
69/udp   open|filtered tftp

Кроме того, разрешения, кажется, установлены правильно:

[claudiu@bugs claudiu]$ ls -l / | grep ftp
drwxrwxrwx.   2 root    root     4096 Jan  5 15:48 tftpboot
[claudiu@bugs claudiu]$ cd /tftpboot/
[claudiu@bugs tftpboot]$ ls -l example.txt
-rwxrwxrwx. 1 root root 0 Jan  4 15:38 /tftpboot/example.txt

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

3 ответа3

3

Кажется, что SELinux был причиной проблемы. Мне не удалось заставить tftp работать с ним, поэтому я полностью отключил SELinux. Я знаю, что это не рекомендуется, но если кому-то еще нужно знать, как это сделать, вот оно: вам нужно отредактировать файл /etc /selinux /config и изменить строку, содержащую «SELINUX =», на:

SELINUX=disabled

Перезагрузка системы обязательна. Без этого изменения не вступят в силу.

2

Убедитесь, что ICMP не запрещен в iptables . Это решило мои проблемы.

Кстати, SELinux не нужно отключать, чтобы он работал.

1
echo 0 >/selinux/enforce

Это переведет SELinux в разрешающий режим, однако перезагрузка очистит это.

cat /selinux/enforce

Это подтвердит, что он находится в разрешающем режиме.

Таким образом, вам не нужно перезагружать машину. Просто убедитесь, что SELINUX=disabled в /etc/selinux/config чтобы он выдержал перезагрузку.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .