sudo apt-get install xinetd:支持对tcp、udp、RPC服务的东东
3.安装完 xinetd应该会建立目录/etc/xinetd.d,在此目录中添加文件:tftpd
#gedit /etc/xinetd.d
#sudo touch tftpd
4.sudo gedit /etc/xinetd.d/tftpd
想tftpd中添加如下内容:
service tftp
{
disable = no
socket_type = dgram
wait = no
user = root
protocol = udp
server = /usr/sbin/in.tftpd
server_args = -s /home/tftpd ----------------------------自己创建的tftp主目录
log_on_success = PID HOST DURATION
log_on_failure = HOST
}
5.在/home下建立tftpd目录,作为服务器的目录
sudo mkdir /home/tftpd
释放权限:
sudo chmod 777 /home/tftpd
6.打开inetd.conf 注释掉内容:
sudo gedit /etc/inetd.conf
#tftp dgram udp wait nobody /usr/sbin/in.tftpd /usr/sbin/in.tftpd -s /var/lib/tftpboot ----------若没有请自己添加此句。
7.配置
sudo vi /etc/default/tftpd-hpa
# /etc/default/tftpd-hpa
TFTP_USERNAME="tftp"
TFTP_DIRECTORY="/var/lib/tftpboot " //改成你想要的那个tftpboot
TFTP_ADDRESS="0.0.0.0:69"
TFTP_OPTIONS="-l -c -s" //这里是选项
重启tftpd服务
sudo /etc/init.d/tftpd-hpa restart
9、测试服务tftp是否启动
netstat -a|grep tftp
显示 :
udp 0 0 *:tftp *:*
则启动服务了
tftp的目录是在/var/lib/tftpboot,可以进行修改。在第7步进行修改。
通过查看进程可以查看当前tftp server 主目录
ps -axu | grep tftp
root 10736 0.0 0.0 2280 684 ? Ss 21:26 0:00 /usr/sbin/in.tftpd -s /home/tftpd
# tftp 127.0.0.1
tftp> get 1.c
Received 7 bytes in 0.1 seconds
tftp> put 2.c
Sent 10 bytes in 0.0 seconds
tftp> quit
# ls
1.c 2.c
# cd /tftpboot/
# ls
1.c 2.c
下面是网上总结出来的常见错误及解决方法:
现象一:
tftp> get file
Transfer timed out.
原因:
tftpd服务没有启动
解决方法:启动服务
sudo /etc/init.d/xinetd restart
sudo /etc/init.d/tftpd-hpa restart
现象二:
tftp> get file
Error code 2: Only absolute filenames allowed
原因:
在/etc/xinetd.d/tftpd中设置的server_args为/etc/default/tftpd-hpa
下面是我的机器上/etc/default/tftpd-hpa配置
# /etc/default/tftpd-hpa
RUN_DAEMON="yes"
TFTP_ADDRESS="0.0.0.0:69"
OPTIONS="-s /home/tftpd -c -p -U 077 -u tftpd"
现象三:
tftp> put file
Error code 1: File not found
原因:
指定的文件不存在;或tftpd启动参数中没有指定-c选项,允许上传文件~上传的时候一定要确保文件先存在于上传目录下。
现象四:
tftp> get file
tftp: : Permission denied
原因:权限不足
请查看chmod 是不是配置好