如何通过SSH协议使用WinSCP实现Windows与Linux之间的远程公网文件传输

库库的里昂 2024-07-17 16:37:01 阅读 92

目录

⛳️推荐

前言

1. Windows传输文件至Linux

2. WinSCP使用公网TCP地址连接

3. WinSCP使用固定公网TCP地址访问服务器


⛳️推荐

前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站

前言

WinSCP 是一个 Windows 环境下使用的 SSH 的开源图形化 SFTP 客户端。同时支持 SCP 协议。它的主要功能是在本地与远程计算机间安全地复制文件,并且可以直接编辑文件,直接把文件从本机拖入,打开文件直接双击即可。

相对于Windows系统自带的,WinSCP,可以同时多线程、多终端访问,延迟率少、传输更稳定,可以不同系统,不同平台交互 ,比如Windows和Linux文件互传等。

为了更好地理解WinSCP的使用,我们将通过演示Windows传输文件至Linux。假设我们希望把本地Windows主机上的文件公网远程至不在同一局域网的其他主机,我们就可以借助Cpolar内网穿透来实现这一功能。

1. Windows传输文件至Linux

首先本篇文章的测试环境:Win10专业版、Ubuntu22.04

在Windows中安装WinSCP:

GIthub项目地址:Github WinSCP

下载链接:download WinSCP

安装后,双击打开WinSCP,可以看到进入到了WinSCP界面中

接下来需要进入到Ubuntu中,查看一下是否开启OpenSSH服务

<code>sudo systemctl status ssh

如果未安装ssh,需要安装ssh服务

sudo apt install openssh-server

安装后,启动ssh服务

sudo systemctl start ssh

然后再检查一下ssh服务状态,显示active就说明已经安装成功

image.png

防火墙开放22端口:

使用 <code>ufw工具操作防火墙,Ubuntu是默认自带安装的,查看防火墙已开放的端口列表,可以看到出现22端口

sudo ufw status numbered

image.png

如未开放,则需要开放22端口

<code>sudo ufw allow 22

接下来我们需要进入到Ubuntu当中查询一下Ubuntu的IP地址,输入:ifconfig

image.png

可以看到IP地址为 <code>192.168.177.135

回到Windows的WinSCP中,进入到登录界面,主机名填写上面Ubuntu的IP地址

用户名、密码填写Ubuntu服务器的主机名密码,点击登录

image.png

点击接受

image.png

可以看到连接成功,左边是Windows目录,右边是Ubuntu目录

image.png

接下来演示一下如何传输文件

我们在右侧Ubuntu中,先点击需要传输后的目录

image.png

然后从左侧Windows当中,右键选择需要传输的文件,点击上传

image.png

确认好路径后,点击确定

image.png

可以看到已经传输成功

image.png

回到Ubuntu验证一下是否传输成功

image.png

可以看到已经传输成功,但是以上操作在本地局域网内进行,如果我们经常需要异地传输,那么接下来就需要公网访问本地服务器,就需要在本地服务器上安装Cpolar内网穿透服务来实现将本地局域网地址映射至公网完成远程传输。

那么接下来教大家如何安装Cpolar内网穿透,完成WinSCP公网远程文件传输!

2. WinSCP使用公网TCP地址连接

首先,我们需要提前在本地服务器上安装内网穿透软件,这里我使用的是免费版本不限流量且支持TCP传输的Cpolar。

下面是安装cpolar步骤:

cpolar官网地址: https://www.cpolar.com

使用一键脚本安装命令

<code>curl -L https://www.cpolar.com/static/downloads/install-release-cpolar.sh | sudo bash

安装完成后,加入系统服务设置开机自启动

sudo systemctl enable cpolar

启动Cpolar服务

sudo systemctl start cpolar

查看cpolar服务状态

sudo systemctl status cpolar

Cpolar安装和成功启动服务后,内部或外部浏览器上通过本机IP加9200端口即,或者localhost:9200【http://192.168.xxx.xxx:9200】访问Cpolar管理界面,使用Cpolar官网注册的账号登录,登录后即可看到cpolar web 配置界面,接下来在web 界面配置即可

image.png

点击左侧仪表盘的隧道管理——隧道列表,可以看到有一个默认的ssh隧道

6c6a4fb6629c9a14c2717c4f6d090df.png

点击左侧状态——在线隧道列表,可以看到出现ssh公网地址,我们复制tcp://后面地址

image.png

然后回到WinSCP当中,点击新标签页:

协议:SFTP主机名:生成的公网地址(不带端口号)端口号:写cpolar生成的5位数端口号

点击登录

image.png

同上操作一样,点击接受,可以看到使用公网地址同样远程访问到了Ubuntu服务器,传输文件步骤还是一样同上

image.png

可以看到使用WinSCP远程连接测试文件传输目前为止就成功了,在任意电脑,我们都可以通过该公网地址进行远程 WinSCP 连接传输文件了!

小结

为了更好地演示,我们在前述过程中使用了Cpolar生成的隧道,其公网地址是随机生成的。

这种随机地址的优势在于建立速度快,可以立即使用。然而,它的缺点是网址是随机生成,这个地址在24小时内会发生随机变化,更适合于临时使用。

我一般会使用固定TCP域名,如果我需要长期远程传输文件,它是一个固定、易记的公网地址,这样更加便于长期文件传输。

3. WinSCP使用固定公网TCP地址访问服务器

上面步骤在cpolar中使用的是随机临时tcp端口地址,所生成的公网地址为随机临时地址,该公网地址24小时内会随机变化。我们接下来为其配置固定的TCP端口地址,该地址不会变化,设置后将无需每天重复修改地址。

配置固定tcp端口地址需要将Cpolar升级到专业版套餐或以上。

登录Cpolar官网,点击左侧的预留,找到保留的tcp地址,我们来为远程联机地址保留一个固定的地址:

地区:选择China vip描述:即备注,可自定义

点击<code>保留

image.png

地址保留成功后,系统会生成相应的固定公网地址,将其复制下来

image.png

再次打开cpolar web ui管理界面,点击左侧仪表盘的隧道管理——隧道列表,找到我们上面创建的TCP隧道,点击右侧的<code>编辑

image.png

修改隧道信息,将保留成功的固定tcp地址配置到隧道中

端口类型:修改为固定tcp端口预留的TCP地址:填写官网保留成功的地址,

点击<code>更新(只需要点击一次更新即可,不要重复点击)

image.png

隧道更新成功后,点击左侧仪表盘的状态——在线隧道列表,可以看到公网地址已经更新成为了和我们在官网固定的TCP地址和端口一致。这样表示地址已经成功固定了,下面测试固定地址连接

image.png

固定好了地址后,返回 WinSCP,点击新标签页,主机名端口号改成固定公网地址,然后再点击登录

image.png

image.png

可以看到我们使用固定的tcp地址成功的远程连接到了Ubuntu服务器中,这样一个固定不变的公网TCP地址就设置好了,不用担心地址变化.随时随地的可以输入地址进行公网远程传输文件了!



声明

本文内容仅代表作者观点,或转载于其他网站,本站不以此文作为商业用途
如有涉及侵权,请联系本站进行删除
转载本站原创文章,请注明来源及作者。