Ubuntu配置tftp服务器

时间:2022-01-23 10:00:55

TFTP(Trivial File Transfer Protocol,简单文件传输协议)是TCP/IP协议族中的一个用来在客户机与服务器之间进行简单文件传输的协议,提供不复杂、开销不大的文件传输服务。也就是说它是用来在不同网络设备间传输文件的。


系统:Ubuntu 10.04


如非特别说明,所有操作均为root用户权限操作,获取root权限命令:sudo -s


1、下载相关服务程序 

apt-get --install tftp-hpa tftpd-hpa xinetd


说明:tftp-hpa是tftp的客户端程序,tftpd-hpa是服务端,xinetd是互联网信息服务程序(通常随系统装好了)。


2、配置tftp服务

①修改/etc/default/xinetd文件,使文件内容如下(默认情况,通常这一步不用做什么修改)

# Default settings for xinetd. This file is sourced by /bin/sh from
# /etc/init.d/xinetd


# enable xinetd Inetd compat mode

INETD_COMPAT=Yes

# Options to pass to xinetd
#
# -stayalive comes by default : it can be removed if xinetd is expected
# not to start when no service is configured
#
XINETD_OPTS="-stayalive"


②修改/etc/xinetd.conf,文件内容如下,默认情况下不需要做什么修改。

# Simple configuration file for xinetd
#
# Some defaults, and include /etc/xinetd.d/

defaults
{
# Please note that you need a log_type line to be able to use log_on_success
# and log_on_failure. The default is the following :
# log_type = SYSLOG daemon info
}
includedir /etc/xinetd.d


③修改/etc/xinetd.d/tftp文件,如果没有则创建一个,使tftp文件内容如下。

service tftp
    {
       socket_type = dgram
       wait = yes
       disable = no
       user = root
       protocol = udp
       server = /usr/sbin/in.tftpd
       server_args = -s -c /tftpboot
       #log_on_success += PID HOST DURATION
       #log_on_failure += HOST
       per_source = 11
       cps =100 2
       flags =IPv4
    }


说明:-s -c /tftpboot即你的tftp服务器目录,通过ip地址建立tftp连接后,可以从这个目录传送文件,也可以下载文件到这个目录。-c参数必须要,这个参数允许你的tftp服务器目录中创建新的文件,网上很多文章少了这个参数。

④修改/etc/default/tftpd-hpa文件,如果没有则创建一个。使文件内容如下

# /etc/default/tftpd-hpa

RUN_DAEMON="no"
OPTIONS="-s /tftpboot -c -p -U tftpd"


3、建立服务端目录

在终端输入下面命令

mkdir /tftpboot                

chmod -R 777 tftpboot


说明:这个目录只要和前面各个配置文件中被引用到的地方一致即可,不一定要在根目录下。


4、重启互联网信息服务

service xinetd restart


说明:网上很多文章加了sudo service tftpd-hpa restart 或者 sudo service tftpd restart ,这个命令在实践中无法执行,也不需要。


5、测试tftp是否能正常使用

假设/tftpboot,也就是你的tftp服务器目录下有一个文件a,/home目录下有一个文件b,且当前在/home目录下。

在终端输入 tftp 127.0.0.1 进行本机的文件自传:

①向服务器传输文件b

tftp>put b 

②从服务器下载文件a

tftp>get a

如果没有任何错误提示,则/tftpboot和/home两个目录下将同时存在a和b两个文件



Linux下tftp相关命令请参考:http://man.linuxde.net/tftp