我无法让 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
重启后仍然可用即可。