深入了解Linux的TFTP根目录:网络传输必备工具 (linux的tftp根目录)

TFTP是一种特殊的文件传输协议,它适用于本地网络环境中安全可靠的文件传输。Linux系统中,TFTP根目录是TFTP服务器存放文件的根目录,也是TFTP客户端访问服务器文件的入口。深入了解Linux的TFTP根目录,可以让我们更加熟悉TFTP的应用和原理,掌握TFTP文件传输的技巧和方法。

一、TFTP简介

TFTP(Trivial File Transfer Protocol)是一种简单的文件传输协议,它基于UDP协议实现。TFTP协议主要用于本地网络中安全可靠的文件传输,例如在用户终端与服务器之间传输配置文件、固件文件等。TFTP协议没有提供任何安全验证机制,也没有对传输进行加密处理,因此只适用于内部网络中文件传输。

TFTP协议的操作非常简单,客户端通过TFTP读或写文件获取或发送文件。TFTP请求消息包括操作码(RRQ或WRQ)、文件名、传输模式等信息;TFTP响应消息包括确认码(ACK或NACK)、数据包、错误代码等信息。TFTP协议支持文件分块传输,每个数据包的大小默认为512字节。TFTP协议的特点是传输速度较慢,但是传输的可靠性相对较高。

二、TFTP根目录

TFTP根目录是TFTP服务器存储文件的根目录,也是TFTP客户端访问服务器文件的入口。在Linux系统中,TFTP根目录的位置默认为/var/lib/tftpboot/,也可以通过修改TFTP服务器配置文件/etc/default/tftp-hpa来更改根目录的位置。

TFTP根目录中包括一些重要的文件和目录,如下:

1. pxelinux.0:该文件为PXE网络引导的核心文件,用于PXE客户端从TFTP服务器引导操作系统。

2. default:该文件为TFTP客户端默认文件,用于指定客户端在从TFTP服务器获取文件时没有指定文件名的情况下返回的文件。

3. /tftpboot/pxelinux.cfg目录:该目录包含PXE网络引导的配置文件。

4. /tftpboot/images目录:该目录包含影像系统的文件,用于PXE网络引导时使用。

5. /tftpboot/boot.msg和/tftpboot/README:该文件用于向用户提供有关TFTP服务器的使用说明。

除了以上文件和目录之外,TFTP根目录还可以存储其他TFTP服务需要传输的文件,如Firmware固件文件、配置文件等。在使用TFTP服务器时,需要注意TFTP根目录的访问权限,保证客户端可以正常访问。

三、使用TFTP进行文件传输

使用TFTP进行文件传输需要使用TFTP客户端和TFTP服务器。在Linux系统中,常用的TFTP服务器有tftpd-hpa、atftpd、hpa-tftpd等,常用的TFTP客户端有tftp、atftp等,我们以tftpd-hpa和tftp为例进行讲解。

1. 安装tftpd-hpa和tftp

在Ubuntu和Debian系统中,可以通过以下命令安装tftpd-hpa和tftp:

“`

sudo apt-get update

sudo apt-get install tftpd-hpa tftp

“`

在CentOS系统中,可以通过以下命令安装tftpd-hpa和tftp:

“`

sudo yum update

sudo yum install tftp-server tftp

“`

2. 配置TFTP服务器

在Ubuntu和Debian系统中,TFTP服务器的配置文件为/etc/default/tftpd-hpa,可以通过以下命令进行修改:

“`

sudo nano /etc/default/tftpd-hpa

“`

在文件中设置TFTP根目录,例如:

“`

TFTP_DIRECTORY=”/var/lib/tftpboot”

“`

另外,还需要设置TFTP服务器的IP地址和传输模式等,例如:

“`

TFTP_ADDRESS=”0.0.0.0:69″

TFTP_OPTIONS=”-c -l -s”

“`

在CentOS系统中,TFTP服务器的配置文件为/etc/xinetd.d/tftp,可以通过以下命令进行修改:

“`

sudo nano /etc/xinetd.d/tftp

“`

设置TFTP根目录和传输模式,例如:

“`

server_args = -c -s /var/lib/tftpboot

“`

3. 启动TFTP服务器

在Ubuntu和Debian系统中,TFTP服务器可以通过以下命令启动:

“`

sudo service tftpd-hpa restart

“`

在CentOS系统中,TFTP服务器可以通过以下命令启动:

“`

sudo systemctl start tftp.socket

“`

4. 使用TFTP客户端进行文件传输

使用TFTP客户端进行文件传输需要指定TFTP服务器的IP地址和文件名等信息,例如:

“`

tftp 192.168.1.100

tftp> get test

tftp> put test /var/lib/tftpboot/test

“`

TFTP客户端还可以通过-t选项指定传输模式为二进制模式,例如:

“`

tftp -t binary 192.168.1.100

“`

四、

TFTP是一种简单的文件传输协议,适用于本地网络环境中安全可靠的文件传输。Linux系统中,TFTP根目录是TFTP服务器存储文件的根目录,也是TFTP客户端访问服务器文件的入口。使用TFTP进行文件传输需要使用TFTP客户端和TFTP服务器,可以通过安装tftpd-hpa和tftp等软件进行实现。在使用过程中,需要注意TFTP根目录的访问权限,保证客户端可以正常访问。

相关问题拓展阅读:

如何安装linux的tftp服务器

嵌入式Linux的ftp最游激常用来完成开发板和开发环境Linux系统之间的的文段手件传输功能神燃袜,避免了频繁的U盘拷贝的过程。

以下资料来源网上:

fedora下tftp服务告哪器的安装与配置

总结过程如下:

1.下载tftp服务器、客户端tftp和守护进程xinetd三个包

yum install xinetd tftp tftp-server

/喊含/xinetd.i386 2:2.3.14-21.fc10

//tftp-0.49-1.fc10.i386.rpm

//tftp-server-0.49-1.fc10.i386.rpm

2.配置vi /etc/xinetd.d/tftp

修改server_args = -s /tftpboot -c,这里的-c一定要加上,否则只能下载不能上传!!!

service tftp

{

disable = no

socket_type= dgram

protocol = udp

wait = yes

user = root

server = /usr/in/in.tftpd

server_args= -s /tftpboot -c

per_source= 11

cps= 100 2

flags = IPv4

}

3.关闭防火墙

4.建立tftp工作目录并修改属性(不修改属性会出现error)

cd /

mkdir tftpboot

chmod 777 -R /tftpboot/

5.开启服务,上传下载文件

######################################

我的配置过程中先后顺序和出现的问题如下:

下载tftp服务客户端tftp和守护进程xinetd

yum install xinetd

yum install tftp tftp-server

//xinetd.i386 2:2.3.14-21.fc10

//tftp-0.49-1.fc10.i386.rpm

//tftp-server-0.49-1.fc10.i386.rpm

关闭防火墙

service xinetd restart

Stopping xinetd:

Starting xinetd:

cd /

mkdir tftpboot

cd tftpboot

cp /etc/inittab /tftpboot/

tftp 172.18.1.90

tftp> get inittab

Transfer timed out.

tftp>quit

# netstat -a|grep tftp

# ls

inittab

# touch aaa

# ls

aaa inittab

# tftp 172.18.1.90

tftp>郑友笑 get aaa

Transfer timed out.

tftp> quit

不知何故出现“Transfer timed out.”的错误提示,想想没有修改tftp配置文件:

# cd /etc/xinetd.d

# vi tftp

修改保存:

disable=no

server_args=-s /tftpboot/ -c

# cd /

# /etc/init.d/xinetd restart

Stopping xinetd:

Starting xinetd:

# netstat -a | grep tftp

udp 0 *:tftp*:*

# tftp 172.18.1.90

tftp> get aaa

Error code 1: File not found

tftp> get inittab

Error code 1: File not found

tftp> quit

错误不一样了,以为需要安装tftpd服务器端,yum install tftpd没有源

但这次想起来新建/tftpboot/目录时候没有对该目录权限进行修改,就一切ok了

# chmod 777 -R /tftpboot/

# tftp 172.18.1.90

tftp> get aaa

tftp> get inittab

tftp> q

# ls

aaa boot etc inittab lost+found mnt proc in srv tftpboot usr

bin dev home lib mediaopt root selinux sys tmpvar

//根目录出现了aaa和inittab文件,下载成功!

再来试试上传文件:

# cd /tftpboot

# ls

aaa inittab

# rm aaa

rm: remove regular empty file `aaa’? y

# ls

inittab

# tftp 172.18.1.90

tftp> put aaa

tftp: aaa: No such file or directory

tftp> put aaa

tftp: aaa: No such file or directory

tftp> q

# cd /

# ls

aaa boot etc inittab lost+found mnt proc in srv tftpboot usr

bin dev home lib mediaopt root selinux sys tmpvar

# tftp 172.18.1.90

tftp> put aaa

tftp> q

# cd /tftpboot

# ls

aaa inittab

上传成功!

上面错误原因就是tftp的执行目录要再根目录下进行,因为默认根目录为当前操作的目录

安装tftp服务器:

需要安装xinetd、tftp、tftp-server3软件

1、如果能上网,通过yum安装:

sudo yum install xinetd

sudo yum install tftp

sudo yum install tptp-server

2、如果不能上网,可以直接安装提供的rpm包:

sudo rpm -ivh xinetd-2.3.14-18.fc9.i386.rpm

sudo rpm -ivh tftp-0.48-3.fc9.i386.rpm

sudo rpm -ivhtftp-server-0.48-3.fc9.i386.rpm

配置tftp服务器:

修改/etc/xinetd.d/tftp文件

disable=yes 改为 disable=no

server_args=-s /var/lib/tftpboot 改为 server_args=-s /tftpboot/ -c

修改戚隐/etc/sysconfig/selinux文件

SELINUX=disabled (系统默认是enforcing)要改成disabled

chmod 777 /tftpboot 修改/tftpboot文件夹的权限

启动 service xinetd restart

查看tftp服务是否开启:

netstat -a | grep tftp

显示结果为 udp*:tftp *:* 表示服务已经开启,tftp配置成功

把openwrt-ar71xx-wp543-squashfs-4M-factory.img 文件复制到目录/tftpboot 下

在目录/home/x(目录名)下:

启动tftp服务器

sudo in.tftpd -l /tftpboot

tftp 192.168.0.26(本机的IP地址)

tftp>get a(文件名) 在服务器上下载文件判哗

tftp>put a(文件名) 上传文件到服务器上

tftp>q退出

启动tftp服务器:

service tftpd-hpa stop 停止tftp服务器

service tftpd-hpa start 开启tftp服务器

service tftpd-hpa stutus 查看tftp运行状态

service tftpd-hpa restart 重启tftp服务器

(注意:文件传输后文件的权限会发生变化)

进入TFTP操作:

connect:连接到远程tftp服务器

mode:文件传输模式

put:上传文件

get:下载文件

quit:退出

verbose:显示详细的处理信息

tarce:显示包路径

status:显示当前状态信息

binary:二进制传输模式

ascii:ascii 传送模式

rexmt:设置包传输的超时时间

timeout:设置重传的超时时间

help:帮助信息

? :帮助信息

-g 表示下载文件 (get)

-p 表示上传文件 (put)

-l 表示本地文件名 (local file)

-r 表示远程主机的文件名 (remote file)

例如,要从远程主机192.168.1.2上下载 embedexpert,则掘仔行应输入以下命令:

tftp -g -r embedexpert 192.168.1.2

出现的一些问题及原因(解决方法):

1、Transfer time out.

tftpd服务没有启动

2、Error code 0:Permission denied

可能是由SELinux造成的,在FC3和FC3以后的FC版本中SELinux默认的都是开启的,现在要关掉它。

修改文件/etc/sysconfig/selinux,设定SELINUX=disabled,然后重启电脑即可

或者 执行命令system-config-securitylevel打开“安全级别配置”对话框,将SELinux(S)选项中“强制”改为“允许”

3、Error code 1:File not found

指定的文件夹不存在;或tftpd启动参数中没有指定-c选项,允许上传文件

4、Error code 2:Only absolute filenames allowed

/etc/xinetd.d/tftpd文件的设置没设好,只需要将server_args= 改为你自己设定 的服务器文件夹就行了

5、Error code 2:Access violation

上传的文件要有相应的可读写(覆盖)的权限才能上传,要对文件的权限进行修改 chmod 777 a(文件名)

去下培昌和载

xinetd和tftp-server的rpm安装包.

安装完后就有 /etc/xinetd.d,在根据需要配置tftp

PS:使配盯用tftp可能需要关闭防火墙.

另外迅慧,站长团上有产品团购,便宜有保证

Ubuntu

linux的tftp根目录的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于linux的tftp根目录,深入了解Linux的TFTP根目录:网络传输必备工具,如何安装linux的tftp服务器的信息别忘了在本站进行查找喔。


数据运维技术 » 深入了解Linux的TFTP根目录:网络传输必备工具 (linux的tftp根目录)