0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

組み込み機器(IoT機器)にtftpでデータを送る

Last updated at Posted at 2023-08-02

現在の環境

tftp server

hyper-v上に建てたcentosに、tftp serverをインストールしています。

tftp cliant

とあるIoT機器です。 busyboxが動いています。

+-------------------------+
|     Hyper-V Host        |
|                         |
|    +--------------+     |
|    | CentOS VM    |     |
|    |              |     |
|    | IP          |     |
|    | 192.168.11.12|     |
|    |              |     |
|    | TFTP Server  |     |
|    +--------------+     |
|            |            |
|            |            |
|            |            |
|    +--------------+     |
|    |  IoT Device  |     |
|    |             |     |
|    | IP:         |     |
|    | 192.168.11.19|     |
|    |              |     |
|    +--------------+     |
|       TFTP Client       |
|                 |
+-------------------------+


tftp serverのインストール、設定の変更

yum -y install tftp-server xinetd

/etc/xinetd.d/tftp を以下のように変更してください

変更項目は

  1. server : -s /var/lib/tftpboot -> -c -u root -s /var/lib/tftpboot
  2. disable : yes -> no

この2つです。

cat  /etc/xinetd.d/tftp
# default: off
# description: The tftp server serves files using the trivial file transfer \
#       protocol.  The tftp protocol is often used to boot diskless \
#       workstations, download configuration files to network-aware printers, \
#       and to start the installation process for some operating systems.
service tftp
{
        socket_type             = dgram
        protocol                = udp
        wait                    = yes
        user                    = root
        server                  = /usr/sbin/in.tftpd
        server_args             = -c -u root -s /var/lib/tftpboot
        disable                 = no
        per_source              = 11
        cps                     = 100 2
        flags                   = IPv4
}

設定が完了後は、起動!

sudo systemctl statart xinetd

送信したいファイルをtftp serverの指定の場所に置く

ファイルを置く場所は、以下の場所です。

 pwd
/var/lib/tftpboot

ファイルをIoT機器(cliant)の方からgetしてみます。

tftp serverのファイル状態

/tftp_server
|-- hello.txt
|-- helloworld.o

IoT機器(cliant)のファイル状態

/IoT機器
|-- (None files)

IoTの方からgetしてみます。

tftp -g 192.168.11.12 -l hello.txt
ls
hello.txt
cat hello.txt
hello

無事、ファイルの転送ができました。

最後に

組み込み機器はbusyboxが入っていますが、SCPのような使い慣れたツールは入っておらず、後天的にパッケージをインストールすることもできないので、tftpというものを使いました。

getだけではなく、putもできるようなので、時間があれば記事の方を更新します。

参考にしたサイト様

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?