通过 telnet 会话下载和上传文件

通过 telnet 会话下载和上传文件

我有一个正在运行的考勤设备Linux OS。我可以通过 telnet 会话连接此设备。设备中有一些文件我想下载并与新文件一起上传。我怎样才能做到这一点?我对Linux操作系统的了解非常少。请您帮忙!

在此输入图像描述

答案1

这取决于客户端设备上安装了哪些工具/内核支持哪些工具。

文件传输的可能方法(无序):

  • ssh/sftp
  • 使用 base64/uuencode 将二进制文件编码为可显示的格式,然后从 telnet 终端窗口复制到其中。
  • 通过简单的 tcp 连接netcatsocat或 和bash/dev/tcp
  • wget使用curl网络服务器上传/下载
  • 带有命令行 ftp 客户端的 ftp 服务器
  • samba 或 nfs 挂载

简单的文件传输当您只有串行控制台时,如何将文件获取到主机?以获得更多的可能性。


desktop.jpg使用 netcat/nc 方法从设备复制到您的电脑:

在您的电脑上,暂时禁用(或重新配置,如果可能)任何防火墙并运行

netcat -l -p 10000 > desktop.jpg

并在设备上

busybox nc A.B.C.D -p 10000 < desktop.jpg

您需要将 ABCD 替换为您电脑的 IP 地址。一旦传输成功,您电脑上的 netcat 进程就会自动停止。如果没有,则可能出现问题,您可以使用Ctrl+来阻止它C(比较源和目标校验和以进行验证)。

对于另一个方向,只需交换两边的<和即可。>首先备份原始文件desktop.jpg( cp desktop.jpg desktop_orig.jpg)。

答案2

我的设备上没有 ssh 或 ftp(或等)。

所以,我接下来要做:

  1. telnet a.b.c.d | tee telnet.log
  2. 登录并转到文件
  3. cat file.txt
  4. 关闭会话(我关闭 tmux 窗格)
  5. telnet.log从垃圾中清除

编写通过 telnet 下载/上传文件的实用程序应该很容易

答案3

我刚刚通过串行端口将约 7 Kb 的固件文件上传到基于 BusyBox 的 Linux 嵌入式系统。

没有网络,没有文件传输实用程序;设备上没有 Base64 utils 或任何远程有用的东西。

在主机上,我将固件简单地编码为以下格式;一种由 shell 文字与printf命令组合而成的十六进制转储:

printf "\xDE\xAD\xBE\xEF\x...\xF0"
printf "\xCA\xFE\x33\xE1\x...\xD3"

基本上是带有解释转义序列的shellprintf命令。在我的设备上:\xprintf

device $ cat > firmware.sh

然后使用 的minicomASCII file send( Ctrl-AS) 将此文件发送到主机。我本来可以使用复制和粘贴,因为数据量很小。

然后,标记可执行文件并运行printf脚本:

device $ chmod a+x firmware.sh
device $ ./firmware.sh > firmware.bin

使用 BusyBox 检查设备上的校验和md5sum是否firmware.bin与主机上的原始固件映像匹配。

PS shell 双引号语法\x逐字传递,因为它不是可识别的转义序列;因此我们不必将反斜杠加倍。

答案4

在您的电脑上:

ncat -l -p 3000 > file.name

在远程设备上:

busybox nc -w 3 <your PC IP> 3000 < file.name

相关内容