tft每日頭條

 > 科技

 > linuxtftp服務器在哪裡

linuxtftp服務器在哪裡

科技 更新时间:2025-01-16 00:12:54

嵌入式linux最常用到tftp命令來完成開發闆和Linux系統之間的的文件傳輸,避免了頻繁的U盤拷貝過程。

我們知道,Windows下使用“tftpd32.exe”這款軟件可以很方便地在Windows下搭建的tftp服務器。但是,當我們做嵌入式linux開發的時候,如果用Windows搭建tftp服務器,用的還是虛拟機,就得在虛拟機中開啟共享文件夾,然後再把文件放入共享文件夾内,最後傳輸到開發闆中執行。這麼複雜的步驟,對于我來講太繁瑣了……那麼我們是否可以隻用一個Linux系統就完成編譯 文件傳輸呢?答案是可以的!下面就來教大家如何在Linux系統下安裝tftp服務器。

Linux下的tftp開發環境建立包括兩個方面:一是Linux服務器端的tftp-server支持,二是嵌入式目标系統的tftp-client支持。

本教程分為三個部分:

  1. 搭建tftp服務器
  2. tftp文件傳輸
  3. 視頻講解(在文章末尾)

0.筆者的開發環境

Windows 10專業版(版本号:1909;操作系統版本:18383.752)、Windows子系統Ubuntu 18.04(1804.2020.5.0)


1.搭建tftp服務器

1.1:安裝tftp服務器所需的軟件

搭建tftp服務所需要安裝的軟件有tftp-hpa,tftpd-hpa以及xinetd,其中:

tftp-hpa——客戶端軟件:

~$ sudo apt-get install tftp-hpa

tftpd-hpa——服務程序:

~$ sudo apt-get install tftpd-hpa

xinetd——新一代的網絡守護進程服務程序,又叫超級Internet服務器,常用來管理多種輕量級Internet服務:

~$ sudo apt-get install xinetd

1.2:配置xinetd.conf配置文件

查看/etc/xinetd.conf這個文件是否和以下内容一緻;如果不一緻,請修改;如果沒有,直接用vi命令創建并編輯

~$ cat /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

1.3:配置tftpd-hpa配置文件

~$ sudo vi /etc/default/tftpd-hpa

将内容修改成:

# /etc/default/tftpd-hpa TFTP_USERNAME="tftp" TFTP_DIRECTORY="/home/harry/tftpboot" TFTP_ADDRESS="0.0.0.0:69" TFTP_OPTIONS="-l -c -s"

修改成功後,如下圖所示,:wq保存退出。

linuxtftp服務器在哪裡(玩轉嵌入式之如何在Linux系統中搭建tftp服務器)1

配置tftpd-hpa配置文件

注:TFTP_DIRECTORY=”/home/harry/tftpboot”表示tftp服務器的工作目錄,用戶可根據自己的實際情況進行更改。

1.4:建立工作目錄

指定了tftp服務的工作目錄後,我們需要在相應的路徑下建立該tftp工作目錄,命令如下:

~$ mkdir tftpboot

修改tftp服務器目錄的權限為777,這樣不僅可以允許目标機下載,同時允許其上傳。命令為:

~$ sudo chmod 777 ./tftpboot

1.5:配置tftp配置文件

查看/etc下面的xinetd.d目錄裡的ftp文件内容是否和下面圖片中的一緻(如果沒有的話,就新建一個并輸入以下内容)

~$ sudo vi /etc/xinetd.d/tftp

内容如下:

service tftp { socket_type = dgram protocol = udp wait = yes user = root server = /usr/sbin/in.tftpd server_args = -s /home/harry/tftpboot/ -c disable = no per_source = 11 cps = 100 2 flags = IPv4 }

修改之後,如圖所示

linuxtftp服務器在哪裡(玩轉嵌入式之如何在Linux系統中搭建tftp服務器)2

配置tftp配置文件

server_args一行是配置tftp服務器中文件的存放位置,進行tftp傳輸的時候,都是從該目錄中搜索文件的。

然後保存文件,并退出編輯。

1.6:重新啟動tftp

重新啟動tftp,會提示一個OK

~$ sudo service tftpd-hpa restart

linuxtftp服務器在哪裡(玩轉嵌入式之如何在Linux系統中搭建tftp服務器)3

重新啟動tftp

如果用的linux系統和筆者一樣,是win10子系統的話,windows的防火牆會提示你,一定要點“是”!!!否則就會失敗

1.7:重新加載xinetd

重新加載xinetd進程,會提示一個OK:

~$ sudo /etc/init.d/xinetd reload

linuxtftp服務器在哪裡(玩轉嵌入式之如何在Linux系統中搭建tftp服務器)4

重新加載xinetd

1.8:重新啟動xinetd

重啟xinetd服務,會提示兩個OK:

~$ sudo /etc/init.d/xinetd restart

linuxtftp服務器在哪裡(玩轉嵌入式之如何在Linux系統中搭建tftp服務器)5

重新啟動xinetd

注意:每次修改完配置文件後,都需要重新啟動一下服務。

至此,Linux系統下搭建tftp服務器步驟完成,下面介紹如何測試tftp。


2.測試tftp服務

2.1:新建測試文件

筆者在tftp的工作目錄“/home/harry/tftpboot”中複制一個已經編譯好的C語言程序文件“hello”,該文件可以打印Hello World!,如下圖所示:

linuxtftp服務器在哪裡(玩轉嵌入式之如何在Linux系統中搭建tftp服務器)6

打印Hello World!

2.2:進入測試目錄

然後進入任意一個不同于/home/harry/tftpboot”的目錄(例如/home/harry目錄下),然後在終端中輸入

~$ tftp 127.0.0.1

進入tftp命令符下,如圖:

linuxtftp服務器在哪裡(玩轉嵌入式之如何在Linux系統中搭建tftp服務器)7

進入測試目錄

2.3:獲取測試文件

輸入如下命令,再按回車,獲取存放在tftp工作目錄/home/harry/tftpboot中的“helol”文件。如果沒有任何提示,就說明傳輸成功了,否則就是失敗,要麼配置有問題,要麼防火牆攔截了。如下圖所示:

~$ get test

linuxtftp服務器在哪裡(玩轉嵌入式之如何在Linux系統中搭建tftp服務器)8

獲取測試文件

2.4:退出tftp命令

輸入q 退出tftp命令行,如下圖所示:

linuxtftp服務器在哪裡(玩轉嵌入式之如何在Linux系統中搭建tftp服務器)9

退出tftp命令

2.5:修改文件權限并運行

~$ ls ~$ chmod 777 hello ~$ ls ~$ ./hello

linuxtftp服務器在哪裡(玩轉嵌入式之如何在Linux系統中搭建tftp服務器)10

修改獲取的文件權限并運行

2.6:上傳文件

可以在tftp命令中輸入 如下命令,文件上傳到tftp服務器中

~$ put main.c

2.7:開發闆tftp 傳送命令

tftp [server_ip](tftp服務器ip,如192.168.1.2)-g -r [filename](傳送文件名 例如:main)

linuxtftp服務器在哪裡(玩轉嵌入式之如何在Linux系統中搭建tftp服務器)11

完整命令


視頻教程


至此,整個tftp服務器的搭建步驟以及tftp測試就完成了,如果有任何問題,歡迎大家在下方留言。

如何在Linux系統中手動安裝arm-linux-gcc交叉編譯工具

,

更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!

查看全部

相关科技资讯推荐

热门科技资讯推荐

网友关注

Copyright 2023-2025 - www.tftnews.com All Rights Reserved