23.19 Debian上如何安装配置tftp服务 https://scz.617.cn/unix/200807021815.txt A: scz@nsfocus apt-get update -u apt-cache search tftpd apt-get install tftpd 一般安装完就自动启动了: netstat -na -u | grep :69 # mkdir /tftpboot # chmod 777 /tftpboot # ls -ld /tftpboot drwxrwxrwx 2 root root 4096 2008-07-02 18:15 /tftpboot/ 编辑/etc/inetd.conf,给/usr/sbin/in.tftpd指定参数: -s /tftpboot kill -1 使之生效。 如果tftpd提供下载服务,应该事先在服务端"chmod 444 downloadfile"。 如果tftpd提供上载服务,应该事先在服务端"chmod 222 uploadfile"。 这里仅指定了最小所需权限,放宽权限当然没问题。 A: Debian 4.0上TFTPD(8)手册页 -------------------------------------------------------------------------- 摘要 tftpd [-n] [-s] [] 描述 tftpd侦听69/UDP口,参看/etc/services。该服务一般通过inetd(8)启动,参看 /etc/inetd.conf。 tftp不要求帐号、口令即可访问远程系统。由于缺乏身份认证信息,in.tftpd在 处理get请求时只允许访问全局可读文件。而在处理put请求时,要求server端文 件名已存在且全局可写。 in.tftpd以nobody身份运行。 tftp只能访问中指定目录下的文件。假设该目录列表 为"/root/src/demo /tmp",则get请求可以访问/root/src/demo/somefile或者 /tmp/somefile。如果没有指定,缺省值为/tftpboot, 不过/etc/inetd.conf中一般指定成/srv/tftp。如果指定成/,意味着整个文件 系统可访问。 修改/etc/inetd.conf指定自己的目录列表,并kill -1 使之生效。 -n 以相对路径请求不存在的文件时,tftpd不产生"否定确认信息"。不过我测 了一下,没啥效果,搞不懂。 -s 相当于启动了chroot功能,所有绝对路径都将局限在chroot环境中。chroot 的根路径为中的第一个目录,如果没有指定 ,则使用/tftpboot。如果指定了-s /tmp,而get 请求/somedir/somefile,最终实际访问的是/tmp/somedir/somefile。 对于多目主机上的tftpd,情况有点复杂。tftpd产生响应时用的源端口不是 69/UDP,而是一个随机端口,此时如果响应用的源IP不是请求用的目标IP,对于 客户端来说,这个响应不被接受。请用Wireshark抓包加强理解。 参看 tftp(1), inetd(8) --------------------------------------------------------------------------