tftp 服务器在 scientific linux 6.1 上无法运行

tftp 服务器在 scientific linux 6.1 上无法运行

我无法让 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

如果有人知道可能出什么问题,我可以提供一些帮助......

答案1

看来 SELinux 是导致问题的根源。我没能让 tftp 和它一起工作,所以我完全禁用了 SELinux。我知道不建议这么做,但如果其他人想知道怎么做,这里是方法:你需要编辑 /etc/selinux/config 文件并将包含“SELINUX=”的行更改为:

SELINUX=disabled

系统重启强制的。如果没有它,更改将不会生效。

答案2

检查 ICMP 是否未被禁止iptables。它解决了我的问题。

顺便说一句,无需禁用 SELinux 即可使其正常工作。

答案3

echo 0 >/selinux/enforce

这会使 SELinux 处于宽容模式,但重新启动将清除此模式。

cat /selinux/enforce

这将验证它处于宽容模式。

这样你就不必重启机器了。只需确保它SELINUX=disabled/etc/selinux/config重启后仍然可用即可。

相关内容