Scientific Linux6.1を実行しているマシンでtftpを動作させることができません。
[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
誰かが何がうまくいかないか考えているなら、私はいくつかの助けを使うことができます...
SELinuxが問題を引き起こしていたようです。 tftpを動作させることができなかったので、SELinuxを完全に無効にしました。推奨されないことはわかっていますが、他の誰かがこれを行う方法を知る必要がある場合は、次のようになります。/etc/selinux/configファイルを編集し、「SELINUX =」を含む行を次のように変更する必要があります。
SELINUX=disabled
システムの再起動は必須です。これがないと、変更は有効になりません。
iptables
でICMPが禁止されていないことを確認します。それは私の問題を解決しました。
ちなみに、SELinuxを機能させるために無効にする必要はありません。
echo 0 >/selinux/enforce
これにより、SELinuxはパーミッシブモードになりますが、再起動するとこれがクリアされます。
cat /selinux/enforce
これにより、許容モードになっていることが確認されます。
このようにして、マシンを再起動する必要はありません。 SELINUX=disabled
in /etc/selinux/config
したがって、再起動後も存続します。