Linux和Windows之间的文件互传
前言
我们一般在传输文件的时候,都是在同操作系统之间进行传输的,比如Windows到Windows,Linux到Linux,这样传起来非常方便。但有的时候需要在不同操作系统之间传输文件,比如我现在开发好了一个系统,把它打成了jar包,想把它传输到Linux服务器上运行,这就是一个典型的Windows到Linux文件传输的例子,这里记录一下Windows与Linux之间文件互传的实现方法。
1、常见的传输协议
先要了解一下常见的文件传输协议。
常见的文件传输协议有ftp、sftp等,这里就只说这两种了。
(1)ftp
FTP(File Transfer Protocol,文件传输协议) 是TCP/IP协议组中的协议之一。FTP协议包括两个组成部分,其一为FTP服务器,其二为FTP客户端。其中FTP服务器用来存储文件,用户可以使用FTP客户端通过FTP协议访问位于FTP服务器上的资源。在开发网站的时候,通常利用FTP协议把网页或程序传到Web服务器上。此外,由于FTP传输效率非常高,在网络上传输大的文件时,一般也采用该协议。
默认情况下FTP协议使用TCP端口中的 20和21这两个端口,其中20用于传输数据,21用于传输控制信息。但是,是否使用20作为传输数据的端口与FTP使用的传输模式有关,如果采用主动模式,那么数据传输端口就是20;如果采用被动模式,则具体最终使用哪个端口要服务器端和客户端协商决定。
(2)sftp
sftp是SSH File Transfer Protocol的缩写,安全文件传送协议。可以为传输文件提供一种安全的网络的加密方法。sftp 与 ftp 有着几乎一样的语法和功能。SFTP 为 SSH的其中一部分,是一种传输档案至 Blogger 伺服器的安全方式。其实在SSH软件包中,已经包含了一个叫作SFTP(Secure File Transfer Protocol)的安全文件信息传输子系统,SFTP本身没有单独的守护进程,它必须使用sshd守护进程(端口号默认是22)来完成相应的连接和答复操作,所以从某种意义上来说,SFTP并不像一个服务器程序,而更像是一个客户端程序。SFTP同样是使用加密传输认证信息和传输的数据,所以,使用SFTP是非常安全的。但是,由于这种传输方式使用了加密/解密技术,所以传输效率比普通的FTP要低得多。sftp就是在ftp的基础上对传输的数据进行了加密。
(3)ftp和sftp的比较
ftp是明文传输,速度快,默认使用21端口。
sftp是加密传输,速度略慢但安全性高。如果传输的数据包含敏感内容,使用sftp。默认使用22端口。
我的Linux服务器是使用阿里云的ECS,安装的是CentOS8.3版本,CentOS的作为企业级服务器,安全性高,默认安装、开启了sftp,而ftp默认没有安装。所以这里直接使用sftp协议进行传输了。先看22端口有没有开启:
是开启的,OK,下面准备传输文件。
2、使用FileZilla互传文件
FileZilla是一个免费开源的FTP软件,分为客户端版本和服务器版本,具备所有的FTP软件功能。可控性、有条理的界面和管理多站点的简化方式使得Filezilla客户端版成为一个方便高效的FTP客户端工具,而FileZilla Server则是一个小巧并且可靠的支持FTP&SFTP的FTP服务器软件。
(1)下载及安装
去网上下载好FileZilla的安装包,并且完成安装,这里直接跳过。
(2)传输文件
安装完成后桌面有这个图标:
点击直接打开:
输入远程主机、用户名、密码、端口号,然后连接:
已经连接上了。下面我想将桌面的一个test.txt文件传到linux服务器的/test下,test.txt内容如下:
本地站点是文件所在路径,下面是这个路径下的所有文件。
右边的远程站点选择你的文件上传的目的地,选择test目录,然后可以开始上传了,选中test.txt文件,右键—上传。
可以看到提示上传成功了,下面去Linux上看一下:
可以看到test.txt的确是传到了根目录下的test目录下,查看内容也是正确的,如果有中文,这里会乱码,所以测试文件里面最好不要有中文字符。
(3)文件下载
将桌面上的test.txt删除掉。右边选择test目录下的test.txt文件,右键–下载。
注意左边的本地站点就是存放下载文件的路径,我这里就选桌面了。
提示是下载成功了,查看桌面:
查看内容:
那么下载就成功了。
3、使用WinSCP互传文件
WinSCP是一个Windows环境下使用SSH的开源图形化SFTP客户端。同时支持SCP协议。它的主要功能就是在本地与远程计算机间安全的复制文件。.winscp也可以链接其他系统,比如linux系统。
(1)下载及安装
略。
(2)上传文件
下载安装完成后,直接双击打开:
在弹出来的登录窗口输入主机、端口、用户名、密码,文件协议选择SFTP,然后点击登录。
连接上远程服务器了,还是上传刚才那个文件,先把刚才传的删掉:
左边选择文件所在路径。
右边选择要上传文件的目的地。
选择文件–上传–上传。
确认上传的远程目录,点击确定。
右边有了,然后去服务器查看:
上传成功,内容正确。
(3)下载
我现在将它下载D盘根目录,左上角选择D盘,右边选择文件右键–下载–下载:
确认下载路径,点击确定,查看D盘:
打开查看内容:
OK,下载成功。
4、使用PSFTP互传文件
PSFTP是PuTTY SFTP客户端,用于本地与服务器间安全传输文件(使用SSH连接)。
这个我就不演示了,跟WinScp和FileZilla流程都一样,其实都差不多,只要能连接上,基本上传、下载不会有太大的问题。有兴趣的可以自己试一下PSFTP。
5、总结
Windows传文件到Linux远程服务器,可以使用ftp协议,也可以使用sftp协议。由于是跨平台的操作,因此需要借助一些工具,比如FileZilla、WinScp、PSFTP等客户端。掌握其中一两种即可。