参考:
http://wiki.ubuntu.org.cn/Tftpd-hpa
http://www.oklinux.cn/html/network/ser/20080301/47786.html
【概述】
软件包tftpd-hpa为一个开源的tftp服务器,安装完后,通过简单配置即可完成tftp服务的架设。值得注意的是,开启tftp服务的方式有3种:直接通过in.tftp可执行程序;通过xinetd启动;通过inetd启动。本文介绍前两种方式。
【软件包的安装】
通过apt-get install tfto-hpa就能安装好,安装完后,相关安装路径如下所示:
执行程序:/usr/sbin/in.tftpd
执行脚本:/etc/init.d/tftpd-hpa (通过手动执行start,stop,restart等命令)
配置文件:/etc/default/tftp-hpa
值得注意的是,当软件包安装后,其在启动路径下会自动添加开机自动启动的脚本(见rc1.d~rc5.d的目录下的自动启动脚本),以及在inetd.conf文件中创建启动项
【方式1:直接启动】
1:创建一个目录用于tftp文件传输(本文使用目录/home/eric/tftp,创建时注意该目录的访问权限设置,下同)
2:修改配置文件
打开/etc/default/tftp-hpa文件,参考如下配置:
//File tftp-hpa
RUN_DAEMON="yes"
OPTIONS="-l -c -s /home/eric/tftp"
//////////////////
-l参数:表示不依靠inetd, xinetd启动
-c参数:表示可以在目录下创建文件
-s参数:表示tftp目录的路径
3:手动启动方式:执行 /etc/init.d/tftpd-hpa start
查看tftp服务是否成功启动可通过netstat命令,下同
#netstat -l -n
显示应应出现有udp在69端口监听
4:关于开机自动启动
上文提到软件包在安装完成后会添加自动启动脚本,在不需要自动启动以及想通过xinetd启动的模式下,需要关闭开机的自动启动。这里推荐一个小工具,叫sysv-rc-conf,通过apt安装后,执行后能一个友好的界面对开机自动启动的程序进行配置。通过sysv-rc-conf可配置tftp-hpa服务在不同的启动模式下是否启动。
【方式2:通过xinetd启动】
1:取消inetd的启动方式
打开inetd配置文件/etc/inetd.conf,将tftp开头的一行注释掉
2:安装xinetd
3:配置xinetd
在xinetd的文档中,已经有了对启动tftp服务的配置,参考/usr/share/doc/xinetd/sample.conf中关于tftp配置的段,在xinetd的配置文件夹中创建如下文件:
vim /etc/xinetd.d/tftpd
//File:tftpd
service tftp
{
disable = no
socket_type = dgram
wait = no
user =root
protocal = udp
server = /usr/sbin/in.tftpd
server_args = -c -s /home/eric/tftp
}
4:重启xinetd服务(此时请确保没有出现方式1中已经启动的tftp服务)
#/etc/init.d/xinetd restart
此时使用netstat命令查看是否有程序于69端口监听
【验证方式】
1:通过本地
使用tftp localhost进行文件传输验证
2:通过另一台计算机(如使用一台xp的计算机)
C:/Documents and Settings/Administrator>tftp 192.168.1.12 get tftp_test
Transfer successful: 0 bytes in 1 second, 0 bytes/s
C:/Documents and Settings/Administrator>tftp 192.168.1.12 put default.pls
Transfer successful: 69 bytes in 1 second, 69 bytes/s
【后续】
关于tftp服务还有访问权限相关的控制,本文没有描述
//////////