linux tftp命令详解

linux tftp命令详解,第1张

tftp命令是linux下的一个命令,那么它的具体语法是怎样的呢?下面由我为大家整理了linux tftp命令的相关知识,希望对大家有帮助!

1.linux tftp命令语法

tftp(选项)(参数)

2.linux tftp命令选项

-c:指定与tftp服务器连接成功后,立即要执行的指令

-m:指定文件传输模式。可以是ASCII或者Binary

-v:显示指令详细执行过程

-V:显示指令版本信息。

3.linux tftp命令参数

主机:指定tftp要联机的tftp服务器的ip地址或主机名。

4.linux tftp命令实例

1、安装tftp服务器

需要安装xinetd、tftp和tftp-server 3个软件

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

yum install xinetd

yum install tftp

yum install tftp-server

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

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

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

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

2、配置tftp服务器

修改/etc/xinetd.d/tftp文件,将其中的disable=yes改为disable=no。主要是设置TFTP服务器的根目录,开启服务。修改后的文件如下:

service tftp {

socket_type =dgram

protocol =udp

wait =yes

user =root

server =/usr/sbin/in.tftpd

server_args =-s /home/mike/tftpboot -c

disable =no

per_source =11

cps =100 2

flags =IPv4

}

说明:修改项server_args= -s -c,其中处可以改为你的tftp-server的根目录,参数-s指定chroot,-c指定了可以创建文件。

3、启动tftp服务器并关闭防火墙

/etc/init.d/iptables stop //关闭防火墙

sudo /sbin/service xinetd start

service xinetd restart

/etc/init.d/xinetd start

看到启动[OK]就可以了

4、查看tftp服务是否开启

netstat -a | grep tftp

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

5、tftp使用

复制一个文件到tftp服务器目录,然后在主机启动tftp软件,进行简单测试。

tftp 192.168.1.2

tftp>get

tftp>put

tftp>q

6、tftp命令用法如下

tftp your-ip-address

进入TFTP *** 作:

connect:连接到远程tftp服务器

mode:文件传输模式

put:上传文件

get:下载文件

quit:退出

verbose:显示详细的处理信息

tarce:显示包路径

status:显示当前状态信息

binary:二进制传输模式

ascii:ascii 传送模式

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

timeout:设置重传的超时时间

help:帮助信息

? :帮助信息

7、如果老是出现“AVC Denial, click icon to view”的错误,并不能传输文件,需要作如下修改

修改/etc/sysconfig/selinux,将SELINUX设定为disable,使用命令setenforce 0让selinux配置文件生效。

8、Busybox中tftp命令的用法

命令格式为:

tftp [option] ... host [port]

如果要下载或上传文件的话是一定要用这些option的。

-g 表示下载文件 (get)

-p 表示上传文件 (put)

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

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

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

tftp -g -r embedexpert 192.168.1.2

在本文中,让我们讨论如何设置 tftpboot,包括安装必要的软件包,以及 tftpboot 配置。

TFTP 引导服务主要用于在您没有物理访问权限的远程计算机上执行 *** 作系统安装。为了成功执行 *** 作系统安装,应该有一种重新启动远程服务器的方法 - 使用wakeonlan或手动重新启动它或其他方式。

在这些情况下,您可以相应地设置 tftpboot 服务,并且可以远程完成 *** 作系统安装(您需要拥有 autoyast 配置文件来自动执行 *** 作系统安装步骤)。

本文介绍了 64 位架构中的 SLES10-SP3 的分步过程。但是,这些步骤与任何其他 Linux 发行版非常相似。

需要为 tftpboot 设置安装以下软件包。

安装 dhcp 服务器服务的软件包:

安装 syslinux 包后,会在 /usr/share/pxelinux/ 目录下创建 pxelinux.0 文件。这是在客户端机器上加载安装内核和 initrd 映像所必需的。

验证软件包是否已成功安装。

从您各自的 Linux 发行版的存储库中下载适当的 tftpserver。

在根目录( / )下创建 tftpboot 目录,如下所示。

安装 syslinux 软件包后,PXE Linux 映像将可用。将其复制到 /tftpboot 路径,如下所示。

让我们假设我们要在远程服务器上安装 SLES10 SP3 Linux 发行版。如果您有 SUSE10-SP3 DVD,请将其插入驱动器或安装您拥有的 ISO 映像。在这里,iso 映像已按如下方式挂载:

请参阅我们之前关于如何挂载和查看 ISO 文件的文章。

将 initrd 复制到 tftpboot 目录,如下所示。

在 /tftpboot 下创建目录 pxelinux.cfg 并为客户端定义 pxe 引导定义。

以下选项用于,

根据上面的条目,nfs 安装模式用于提供安装 RPM 和配置文件。因此,在导出列表中使用 /tftpboot 目录在这台机器上设置 nfs。您可以在 autoyast 配置文件中添加“autoyast”选项以自动执行 *** 作系统安装步骤,否则您需要手动运行安装步骤。

将nobody:nobody 分配给/tftpboot 目录。

修改 /etc/dhcpd.conf 如下所示。

在 /etc/syslinux/dhcpd 中指定接口以侦听来自客户端的 dhcp 请求。

在这里,这台机器在 eth1 设备上的 ip 地址为 192.168.1.101。因此,如上所示,为 DHCPD_INTERFACE 指定 eth1。

修改 /etc/xinetd.d/tftp 文件以反映以下内容。默认情况下,禁用参数的值为“yes”,请确保将其修改为“no”,并且需要将 server_args 条目更改为 -s /tftpboot。

无需修改 etc/xinetd.conf 文件。使用 xinetd.conf 文件中指定的默认值。

重新启动这些服务,如下所示。

重启nfs服务后,可以通过以下命令查看导出的目录列表(/tftpboot),

最后,tftpboot 设置已准备就绪,现在可以在 BIOS 设置中将第一个引导设备更改为“网络”后引导客户端计算机。

如果您遇到任何 tftp 错误,您可以通过 tftpd 服务检索一些文件来进行故障排除。

从 tftpserver 检索一些文件以确保 tftp 服务使用 tftp 客户端正常工作。让我们假设 sample.txt 文件存在于 /tftpboot 目录下。

第一部分:TFTP开发环境搭建流程

1

第一步: 安装tftp所需的软件(黑色加粗字体为linux命令,下同)

搭建TFTP服务所需要安装的软件有tftp-hpa,tftpd-hpa以及xinetd,其中:

tftp-hpa : 是客户端软件; root# apt-get install tftp-hpa

tftpd-hpa : 是服务程序; root# apt-get install tftpd-hpa

xinetd : 是新一代进程守护程序。 root# apt-get install xinetd

2

第二步: 配置xinetd.conf配置文件

进入/etc目录,首先看目录中有没有一个xinetd.conf文件,如果没有则新建一个,有的话查看其内容:

root# cat xinetd.conf

看是否与下面的一致,内容如下所示:

若不一致则运行如下命令,修改为相同即可。

root# gedit xinetd.conf

3

第三步: 配置tftpd-hpa配置文件

修改tftpd-hpa配置文件的内容:

root# gedit /etc/default/tftpd-hpa

将内容修改成:

# /etc/default/tftpd-hpa

TFTP_USERNAME="tftp"

TFTP_DIRECTORY="/tftpboot"

TFTP_ADDRESS="0.0.0.0:69"

TFTP_OPTIONS="-l -c -s"

修改成功后,如下图所示,保存退出。

注解:TFTP_DIRECTORY="/tftpboot"表示tftp服务器的工作目录,用户可根据自己的实际情况进行更改。

指定了tftp服务的工作目录后,我们需要在相应的路径下建立该tftp工作目录,命令如下:

root# mkdir –p /tftpboot

修改工作目录的权限为777,777是最松的权限,这样不仅可以允许别的主机或者目标机下载,同时允许其上传文件。命令为:

root# chmod 777 /tftpboot

4

第四步:配置tftp配置文件

进入/etc下面的xinetd.d文件夹,查看是否有一个tftp文件,如果没有的话,就新建一个并输入以下内容,如果有的话就查看内容是否与下面的一致,不一致则修改,内容如下:

root# gedit tftp

service tftp

{

disable = no

socket_type = dgram

protocol = udp

wait = yes

user = root

server = /usr/sbin/in.tftpd

server_args = -s /tftpboot -c

per_source = 11

cps = 100 2

flags =IPv4

}

修改之后,如图所示:

其中server_args一行是配置服务器的文件存放的位置,就是进行tftp传输的时候,都是从该文件夹中搜索文件的。然后保存文件,并退出编辑。

5

第五步:重新启动TFTP

重启tftpd-hpa,提示如下图:

root# service tftpd-hpa restart

6

第六步:重新加载xinetd

重新加载xinetd进程,提示如下图:

root# /etc/init.d/xinetd reload

7

第七步:重新启动xinetd

重启xinetd服务,提示如下图:

root# /etc/init.d/xinetd restart

每次修改完配置文件后,都需要重新启动一下服务。

至此,嵌入式Linux系统下搭建TFTP开发环境大功告成,下面介绍如何测试TFTP

END

第二部分:测试TFTP服务

1

第一步:新建测试文件

首先在tftp的工作目录"/tftpboot"中新建一个文件test,在其中输入任意内容,例如内容如下图:

2

第二步:进入测试目录

然后进入任意一个不同于/tftpboot的目录(例如/opt目录下),然后在终端中输入如下命令,进入tftp命令符下,如下图:

root# tftp localhost

3

第三步:获取测试文件

输入如下命令,再按回车,获取存放在tftp工作目录/tftpboot中的"test"文件。如果没有任何提示,就说明传输成功了,如下图所示:

root# get test

4

第四步:退出TFTP测试

输入 q 退出tftp命令行,如下图所示:

5

修改test文件后,可以在tftp命令中输入 如下命令,把修改过的test文件上传到服务器文件夹中。

root# put test

其效果图,在此不再给出,读者可以自行测试。

END

第三部分:脚本程序自动搭建TFTP开发环境

鉴于TFTP服务的安装过程十分繁复,且容易出错,下面给出脚本代码,自动安装该服务。

新建一个空文件,将下面代码复制,保存之后,修改文件权限,使之具有执行权限后,就可以自动搭建嵌入式TFTP开发环境了。

以下为脚本代码:

#!/bin/bash

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

# 搭建TFTP服务所需要安装的软件有tftp-hpa,tftpd-hpa以及xinetd,#

# 其中: #

# tftp-hpa: 是客户端软件; #

# tftpd-hpa : 是服务程序;#

# xinetd : 是新一代进程守护程序。 #

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

function creat_xinetd_conf

{

echo "# 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" >/tmp/xinetd.conf

}

function config_xinetd_conf

{

creat_xinetd_conf

filename=/etc/xinetd.conf

example=/tmp/xinetd.conf

test -f $filename #返回值为0,代表文件存在 返回值为1,代表文件不存在

if [ "$?" -eq 0 ]then

echo "xinetd.conf文件存在"

diff -E $example $filename

case $? in

1) #文件内容有误

rm -rf $filename

mv -f $example $filename

echo "xinetd.conf文件内容修改成功"

0) #文件内容正确

rm -rf $example

echo "xinetd.conf文件内容正确"

*)

rm -rf $example

echo "未知错误,程序终止"

esac

else

echo "xinetd.conf文件不存在,正在创建该文件"

mv -f $example $filename

echo "xinetd.conf文件创建成功"

fi

}

#=============================================#

function modify_tftpd_hpa

{

echo "# /etc/default/tftpd-hpa

TFTP_USERNAME=\"tftp\"

TFTP_DIRECTORY=\"/tftpboot\"

TFTP_ADDRESS=\"0.0.0.0:69\"

TFTP_OPTIONS=\"-l -c -s\"" >/tmp/tftpd-hpa

rm -rf /etc/default/tftpd-hpa

mv -f /tmp/tftpd-hpa /etc/default/tftpd-hpa

echo "tftpd_hpa 文件内容修改成功"

mkdir -p /tftpboot

chmod 777 /tftpboot

}

#=============================================#

function modify_tftp

{

echo "service tftp

{

disable = no

socket_type = dgram

protocol = udp

wait = yes

user = root

server = /usr/sbin/in.tftpd

server_args = -s /tftpboot -c

per_source = 11

cps = 100 2

flags =IPv4

}" >/tmp/tftp

rm -rf /etc/xinetd.d/tftp

mv -f /tmp/tftp /etc/xinetd.d/tftp

echo "tftp 文件内容修改成功"

}

#=============================================#

function test_tftp

{

echo "This is a test file" >/tftpboot/TEST

cd /tmp

echo "请在终端命令行中依次键入\"get TEST\"以及\"quit\""

tftp localhost

cat /tmp/TEST # 返回值为0,表示成功查看指定的文件 返回值为1,表示不能正常查看指定的文件

if [ $? -eq 0 ]then

echo "tftp 测试成功,可以正常使用"

rm -rf /tftpboot/TEST /tmp/TEST

else

echo "tftp 测试失败,请检查tftp配置"

rm -rf /tftpboot/TEST /tmp/TEST

fi

}

#=============================================#

function step_1 #安装TFTP相关服务

{

apt-get update#安装软件之前,先升级一下数据库,获取软件包的最新相关信息

apt-get install tftp-hpa #安装TFTP服务的客户端软甲

apt-get install tftpd-hpa #安装TFTP服务的服务器端软件

apt-get install xinetd#安装新一代进程守护程序

}

function step_2 #配置TFTP相关服务

{

config_xinetd_conf#配置/etc/xinetd.conf文件

modify_tftpd_hpa #修改/etc/default/tftp-hpa文件

modify_tftp#安装TFTP服务的服务器端软件

}function step_3 #重启TFTP相关服务

{service tftpd-hpa restart #重新启动tftpd-hpa

/etc/init.d/xinetd reload #重新加载xinetd服务程序

/etc/init.d/xinetd restart#重新启动xinetd服务程序

}function step_4 #测试TFTP相关服务

{

test_tftp #测试tftp服务

}

echo "选项1 安装TFTP相关服务"

echo "选项2 配置TFTP相关服务"

echo "选项3 重启TFTP相关服务"

echo "选项4 测试TFTP相关服务"

echo "键入quit,退出TFTP安装"

echo "请键入数值,执行您所需要的 *** 作: "

read -r Step

while [ $Step != quit ]

do

while [ $Step -lt 1 -o $Step -gt 4 ]

do

echo "对不起,您输入的选项有误,请输入数字1—4之间的数值!"

read -r Step

done

case "$Step" in

1)

read -p "安装过程中出现的选项,请直接确定,不必更改,按任意键继续安装"

step_1

2)

step_2

3)

step_3

4)

step_4

*)

echo "出现致命错误,请检查脚本程序!"

esac

echo " *** 作已完成!"

echo "============================="

echo " "

echo " "

echo " "

echo " "

echo "选项1 安装TFTP相关服务"

echo "选项2 配置TFTP相关服务"

echo "选项3 重启TFTP相关服务"

echo "选项4 测试TFTP相关服务"

echo "键入quit,退出TFTP安装"

echo "请键入数值,执行您所需要的 *** 作: "

read -r Step

echo " "

echo " "

done

exit


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/7358194.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-04
下一篇 2023-04-04

发表评论

登录后才能评论

评论列表(0条)

保存