Linux与Windows间文件互传之TFTP方式

举报
码农爱学习 发表于 2021/11/27 21:38:11 2021/11/27
【摘要】 Linux端安装tftp服务安装xinetd,tftp 和tftpdsudo apt-get install xinetdsudo apt-get install tftp tftpd配置/etc/xinetd.d/tftp文件新建一个文件:#sudo vim /etc/xinetd.d/tftp写入如下内容service tftp{ socket_type = dgr...

Linux端安装tftp服务

  • 安装xinetd,tftp 和tftpd

    sudo apt-get install xinetd
    sudo apt-get install tftp tftpd
  • 配置/etc/xinetd.d/tftp文件

    新建一个文件:

    #sudo vim /etc/xinetd.d/tftp

    写入如下内容

    service tftp
    {
            socket_type     = dgram
            protocol        = udp
            wait            = yes
            user            = root
            server          = /usr/sbin/in.tftpd
            server_args     = -s /var/tftpboot/
            disable         = no
            per_source      = 11
            cps             = 100 2
            flags           = IPv4
    }
  • tftp文件中的var/tftpboot是服务器的目录(这一步好像作用不大)

    新建tftp服务器目录,并修改权限为777

    mkdir /var/tftpboot
    chmod 777 /var/tftpboot
    ​
  • 重启xinetd服务

    sudo /etc/init.d/xinetd restart
  • 查看tftp是否已开启

    netstat -a | grep tftp

    应该显示类似如下信息:

    udp        0      0 0.0.0.0:tftp            0.0.0.0:*

windows端安装tftp服务

这里使用一个tftpd的小软件,免安装版,启动后,在其所在的文件夹可以作为一个tftp服务器。

如下图,打开tftp32.exe后,可以自动识别出windows系统电脑的局域网IP地址,如果不正确,可以在下拉窗口中选择正确的IP。

这个文件夹下的hello.txt作为一个测试文件,在linux系统中通过tftp服务来获取windows电脑上的这个文件。

使用方法

查看是否在同一网段

在Linux端,比如在windows电脑上通过串口登录到一块Linux开发板,先使用ifconfig命令查看linux的IP与windows的IP是否在一个网段,比如我的:

debian@npi:~$ ifconfig
eth1: flags=4099<UP,BROADCAST,MULTICAST>  mtu 1500
        ether 12:27:97:c7:88:a6  txqueuelen 1000  (Ethernet)
        RX packets 0  bytes 0 (0.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 0  bytes 0 (0.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
​
eth2: flags=-28669<UP,BROADCAST,MULTICAST,DYNAMIC>  mtu 1500
        ether 62:7d:37:ad:06:39  txqueuelen 1000  (Ethernet)
        RX packets 0  bytes 0 (0.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 0  bytes 0 (0.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
​
lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10<host>
        loop  txqueuelen 1000  (Local Loopback)
        RX packets 80  bytes 6480 (6.3 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 80  bytes 6480 (6.3 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
​
wlan0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.5.100  netmask 255.255.255.0  broadcast 192.168.5.255
        inet6 fe80::c284:7dff:fe6b:d4b3  prefixlen 64  scopeid 0x20<link>
        ether c0:84:7d:6b:d4:b3  txqueuelen 1000  (Ethernet)
        RX packets 48  bytes 4110 (4.0 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 42  bytes 4066 (3.9 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

我用的是wifi联网,就是最后一个wlan0,IP地址192.168.5.100,与windows的192.168.5.102属于同一网段。

前两个eth1和eth2是开发板上的两个网口,目前没用网线。

lo是回环(loop)地址,其它情况可能会有br网桥(brige)地址。

所以,如果接的网线就看eth开头的地址,如果接的无线就看wlan开头的地址

如果linux的IP地址未分配,也就是没有显示出正常的数字,可以使用如下命令配置其IP地址:

sudo ifconfig wlan0 192.168.5.101

这里修改的是我无线连接方式的IP为192.168.5.101,如果是网线连接,需要将wlan0替换为eth之类的

tftp方式传输文件

在Linux端使用tftp命令访问windows的tftp服务器,就是“tftp+windows的IP地址”,前提是windows电脑上的tftpd小软件要打开。

然后使用“get+文件名”来获取Windows电脑上的文件,也可以使用“put+文件名”来发送文件到Windows电脑。

操作示意如下:

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。