之前只装了tftpd-hpa,发现开机不能自动启动tftp服务器,装了xinetd也没用。
而且xinetd之后,必须/etc/default/tftpd-hpa xinetd.conf两个文件的服务器路径都要改成一致才行,很麻烦。
后来看同事用的是openbsd-inetd,试了一下,很方便,记录下来。
首先确保没有装xinetd,装了的话卸载掉。
sudo apt-get install tftp-hpa tftpd-hpa openbsd-inetd
vim /etc/inetd.conf
tftp dgram udp wait nobody /usr/sbin/tcpd /usr/sbin/in.tftpd /home/richard/work/tftpboot
修改红色字体路径为tftp路径即可.
重启服务:
sudo service openbsd-inetd restart
测试:
在tftpboot目录下新建一个文件
touch test
tftp localhost
tftp> get test
inetd我猜测是internet superserver daemon的缩写。
20151209:
在重装系统时发现,其实inetd早就被xinetd替代了,所以最好还是用xinetd。另外,如果只安装 tftpd-hpa,也可以开启tftp服务,但是每次开机都需要手动执行一次service tftpd-hpa restart(注意是restart,不是start)。而安装xinetd后,每次开机,只要不执行service tftpd-hpa restart,都会以/etc/xinetd.d中的配置目录为准。一旦执行service tftpd-hpa restart,就会以/etc/default/tftpd-hpa配置为准。
xinetd.d的配置也很简单,只需在xinetd.d目录下新建一个tftp文件,内容为:
service tftp
{
disable = no
socket_type = dgram
protocol = udp
wait = yes
user = root
server = /usr/sbin/in.tftpd
server_args = -s /tftpboot
source = 11
cps = 100 2
flags =IPv4
}
可见xinetd的配置是以server为关键字,括号为界限配置的。配置好之后执行sudo server xinetd restart即可,注意一定要用sudo权限执行,即使是root用户也必须用sudo执行,否则会出现start: 未知任务: xinetd的错误,弄了一整天才发现是这个问题。
英文则提示为start: unknown jobs : xinetd
补充:
如果想开机自启动的话,可以执行sysv-rc-conf或update-rc.d配置,ubuntu10.04是chkconfig。
阅读(2942) | 评论(0) | 转发(0) |