如何在 CentOS 6.2 上创建可运行的 TFTP 服务器

如何在 CentOS 6.2 上创建可运行的 TFTP 服务器

我正在尝试在 CentOS 6.2 上设置 TFTP 服务器。/etc/xinet.d/tftp配置文件如下:

service tftp
{
    disable = no
    socket_type     = dgram
    protocol        = udp
    wait            = yes
    user            = root
    server          = /usr/sbin/in.tftpd
    server_args     = -s /tftpboot -vvv
    per_source      = 11
    cps         = 100 2
    flags           = IPv4
}

selinux 和防火墙已禁用。/etc/hosts.allow/etc/hosts.deny文件为空。当我尝试从 TFTP 服务器获取文件时,文件传输总是失败,并且我看到以下错误/var/log/messages

Jul 11 03:16:53 localhost xinetd[4155]: xinetd Version 2.3.14 started with libwrap loadavg labeled-networking options compiled in.
Jul 11 03:16:53 localhost xinetd[4155]: Started working: 1 available service
Jul 11 03:17:00 localhost xinetd[4155]: START: tftp pid=4157 from=192.168.10.3
Jul 11 03:17:00 localhost in.tftpd[4158]: RRQ from 192.168.10.3 filename 1
Jul 11 03:17:00 localhost in.tftpd[4158]: sending NAK (0, Permission denied) to 192.168.10.3
Jul 11 03:17:01 localhost in.tftpd[4159]: RRQ from 192.168.10.3 filename 1
Jul 11 03:17:01 localhost in.tftpd[4159]: sending NAK (0, Permission denied) to 192.168.10.3
Jul 11 03:17:03 localhost in.tftpd[4160]: RRQ from 192.168.10.3 filename 1

目录tftpboot权限为(命令输出ls -l):

drw-rw-rw-.   3 root root  4096 Jul 11 03:32 tftpboot

我还看到该tftpboot目录以绿色背景显示ls -l(与其他文件/目录不同)(为什么?因为我知道绿色背景仅适用于粘性位)。

我做错了什么?如何让 TFTP 服务器正常工作?

答案1

你的/etc/xinet.d/tftp配置文件是正确的。

的权限/tftpboot应为 755 或drwxr-xr-x

确保 chkconfig --list 显示在 xinetd 下启用了 tftp。

xinetd based services:
        chargen-dgram:  off
        chargen-stream: off
        daytime-dgram:  off
        .
        .
        rsync:          on
        tcpmux-server:  off
        tftp:           on

答案2

我碰到过几次这种情况。

检查/etc/xinetd.conf您的服务器是否被命名以允许访问xinetd守护进程,并检查/etc/host.allow您的网络是否允许tftpin.tftpd

答案3

我们尝试并执行了上述所有操作(多次运行 tftp),但无法在 CentOS7 上运行。无论我们做什么,写入许可问题仍然存在。最后采纳了 @justjeff 的建议和“setenforce 0”,它成功了。

内核有所有最新的补丁。

再次出现 selinux 问题。

相关内容