【CSDN 编者按】对于经常使用Linux系统的人员来说,少不了从服务器上上传下载文件,rz/sz命令很方便的帮我们实现这个功能,但如果没有这些工具,也有几种小方法能实现。

作者 | 运维研习社       责编 | 欧阳姝黎

文件传输是日常运维中最常见的操作,在linux系统和win/mac系统之间传输文件,我们最常用的,应该是lrzsz工具,通过rz(上传)/sz(下载),对于平常的小文件传输实在是太方便了

如果要传输大的文件,我们通常会选择winscp工具,通过ssh隧道进行传输

那么除了以上这些方法,或在没有这些工具的条件下,我们如何简单方便的进行文件传输呢?

下面介绍几个方法

python

python中自带一个轻量级web服务器,在python2中是模块SimpleHTTPServer,在python3中合并到http.server中

如图会在当前目录下启动一个默认8000端口的web服务,我们就可以通过浏览器直接访问该web服务,进行文件下载

当然在本地通过该方式启动web服务之后,在服务器上通过wget或curl等访问可以实现变相上传文件

小技巧:通常从运营商购买的服务器的带宽,是只限制出带宽而入带宽一般会比出带宽限制高或者不限制,这个时候,如果我们上传文件慢的话,我们可以改用从服务器下载的方式,而且服务器一般出端口不限制

Nginx/Apache

上面python的轻量web服务器,虽然很方便,但是很多时候,服务器都会设置防火墙、安全组等,不常用的端口通常不会开放,这个时候,就可以直接用web服务器了,常见的比如Nginx、Apache、IIS、Tomcat等,都可以

我们指定,web访问,就是从服务器下载资源之后,渲染到浏览器的,通过MIME类型进行识别文件,加载渲染,所以,我们利用web服务器

将需要下载的文件放到web服务器指定的目录下,然后我们通过服务器ip或已配置的域名,通过浏览器访问该文件,即可下载,如果文件MIME类型被识别,我们可以将文件命名为不可识别的,这样就会直接下载,下载后我们再将后缀改回去即可

这样,通常80、443端口肯定是默认开放的,所以不会被防火墙拦截,这里就顺便提一下,打包的备份文件不管是压缩包,还是sql,千万别放web目录下,小心被直接打包下载

同样,上传我们也可以在本地起这样的web服务,然后在服务器上进行下载操作

scp

scp命令通常我们使用是在两台服务器之间通过ssh进行文件传输,很少人知道,scp其实也可以在windows和linux之间进行文件传输,scp命令格式不介绍了,直接看从windows传输到linux的演示

查看linux下

在windows下面使用scp的前提是,windows要装有ssh类工具,现在win10自带openssh,基本不需要安装,如果是旧系统,直接升级吧

nc

说到端口监听,除了web服务,nc这个常用的网络瑞士军刀,必然可以做到

通常用nc,要么是做网络测试,要么是做反弹shell,而nc有个输入输出指令的操作,比如nc -l 9999 > file,就是监听9999端口,把传过来的数据都写入到file

而另一端呢,只需要通过nc命令,将需要传输的文件写入即可,比如nc ip 9999 < file

这样file文件就会通过nc监听的端口传输过去,并写入到文件,也算是实现了文件传输

除了以上命令,你还知道什么简单又方便的文件传输方式,欢迎留言



☞Rust 要“进驻” Linux 内核了?Linux 之父:保持观望☞苹果搞“双标”:员工要隐私,工人信息在“裸奔”!
☞像 C 一样快,Ruby 般丝滑的 Crystal 发布 1.0 版本,你看好吗?
Logo

20年前,《新程序员》创刊时,我们的心愿是全面关注程序员成长,中国将拥有新一代世界级的程序员。20年后的今天,我们有了新的使命:助力中国IT技术人成长,成就一亿技术人!

更多推荐