首页 > 程序开发 > 移动开发 > 其他 >

ubuntu 配置 tftp 服务器

2017-03-06

ubuntu 配置 tftp 服务器,sudo apt-get install tftp-hpa--------客户端的安装sudo apt-get install tftpd-hpa-------服务器端的安装。

第 1 步:安装 tftp

sudo apt-get install tftp-hpa--------客户端的安装

sudo apt-get install tftpd-hpa-------服务器端的安装

然后还需要安装 xinetd,在终端下输入 sudo apt-get install xinetd

第 2 步:配置/etc/xinetd.conf

配置相关服务文件。进入根目录下的 etc 文件夹( cd /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

第 3 步:配置/etc/default/tftpd-hpa

配置 tftp 服务器

命令:

sudo vim /etc/default/tftpd-hpa

将内容修改成

# /etc/default/tftpd-hpa

TFTP_USERNAME="tftp"

TFTP_DIRECTORY="/tftpboot"

#这是你 tftp 服务器的工作目录,自行修改,注意,在新建工作目录时,最好修改其权限为 777,

命令 sudo chmod 777 /tftpboot

TFTP_ADDRESS="0.0.0.0:69"

TFTP_OPTIONS="-l -c -s"

第 4 步:配置/etc/xinetd.d/tftp

然后进入 xinetd.d 文件夹( cd xinetd.d ),查看是否有一个 tftp 文件,如果没有就新建

一个,如果有的话就查看内容是否与下面的一致,不一致则修改,内容如下:

service tftp

{

socket_type = dgram

wait = yes

disable = no

user = root

protocol = udp

server = /usr/sbin/in.tftpd

server_args = -s /tftpboot

#log_on_success += PID HOST DURATION

#log_on_failure += HOST

per_source = 11

cps =100 2

flags =IPv4

}

其中 server_args 一行是配置服务器的文件存放的位置,就是进行 tftp 传输的时候,都是从

该文件夹中搜索文件的

第 5 步:修改权限

修改所需文件夹的权限。需要修改的文件夹也就是上一步提到的那个服务器文件存放的文

件夹,以我的配置文件为例,创建一个文件夹( sudo

mkdir /tftpboot ),然后把它可以

设置成访问权限最宽松的( sudo chmod 777 /tftpboot ),也可以设置成合适的权限。

第 6 步:设置dhcp并重启网卡

vi /etc/network/interfaces,打开该文件,将内容编辑成为:

auto lo

iface lo inet loopback

auto eth0

iface eth0 inet dhcp

address 192.168.1.141 //这项根据自己的情况自己设置

netmask 255.255.255.0

gateway 192.168.1.1

保存退出。然后命令行执行/etc/init.d/networking restart 重启网卡

第 7 步:重启服务

执行次序:

sudo service tftpd-hpa restart

sudo /etc/init.d/xinetd reload

sudo /etc/init.d/xinetd restart

第 8 步:本地测试与防火墙的设置

可以在本地先进行一下测试。首先在/tftpboot 中新建一个文件 file,然后在其中随便输入内容;然后进入一个不是/tftpboot 的目录下(原因是避免混淆,因为在获取文件是默认是将想要获取的文件存放在当前目录下的);再在终端中输入 sudo tftp localhost,进入 tftp 命令符下(可以在其中输入 help查看命令和命令的作用),输入 get file,如果没有任何提示,就说明传输成功了,然后输入 q退出 tftp 命令符,在当前目录下就可以看到一个 file 文件,内容是与开始新建的那个 file 的内容是一致的。同样也可以在 tftp 命令符中输入 put xx,把 xx 文件上传到服务器文件夹中。如果一切 ok,那就么一个可用的 tftp 服务器就顺利搭建成功了。

对于上面的测试是针对本地测试的,如果想要对其他电脑或者开发板进行 tftp 传输,则在终端输入 sudo tftp xxx(即目标电脑或目标开发板的 ip 地址),而且还要关闭 ubuntu 自带的防火墙(书上说的),直接把防火墙给卸载了(sudo apt-get remove iptables,或 sudo ufw disable可以关掉防火墙),因为对于 Linux 来说,防火墙可能没什么需要,至少目前为止还没有受到过攻击。。。当然,想要与其他局域网内的电脑或开发板互联进行传输,还要将这些机器的 ip 改到同一个段内。好了,通过以上的步骤,就可以通过 tftp 协议,在电脑和开发板之间进行文件传输了,目前的目的就是下载 Linux 内核和文件系统到开发板。

相关文章
最新文章
热点推荐