前言
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服务
sudo systemctl status ssh
如果未安装ssh,需要安装ssh服务
sudo apt install openssh-server
安装后,启动ssh服务
sudo systemctl start ssh
然后再检查一下ssh服务状态,显示active就说明已经安装成功
防火墙开放22端口:
使用 ufw
工具操作防火墙,Ubuntu是默认自带安装的,查看防火墙已开放的端口列表,可以看到出现22端口
sudo ufw status numbered
如未开放,则需要开放22端口
sudo ufw allow 22
接下来我们需要进入到Ubuntu当中查询一下Ubuntu的IP地址,输入:ifconfig
可以看到IP地址为 192.168.177.135
回到Windows的WinSCP中,进入到登录界面,主机名填写上面Ubuntu的IP地址
用户名、密码填写Ubuntu服务器的主机名密码,点击登录
点击接受
可以看到连接成功,左边是Windows目录,右边是Ubuntu目录
接下来演示一下如何传输文件
我们在右侧Ubuntu中,先点击需要传输后的目录
然后从左侧Windows当中,右键选择需要传输的文件,点击上传
确认好路径后,点击确定
可以看到已经传输成功
回到Ubuntu验证一下是否传输成功
可以看到已经传输成功,但是以上操作在本地局域网内进行,如果我们经常需要异地传输,那么接下来就需要公网访问本地服务器,就需要在本地服务器上安装Cpolar内网穿透服务来实现将本地局域网地址映射至公网完成远程传输。
那么接下来教大家如何安装Cpolar内网穿透,完成WinSCP公网远程文件传输!
2. WinSCP使用公网TCP地址连接
首先,我们需要提前在本地服务器上安装内网穿透软件,这里我使用的是免费版本不限流量且支持TCP传输的Cpolar。
下面是安装cpolar步骤:
cpolar官网地址: https://www.cpolar.com
- 使用一键脚本安装命令
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 界面配置即可
点击左侧仪表盘的隧道管理——隧道列表,可以看到有一个默认的ssh隧道
点击左侧状态——在线隧道列表,可以看到出现ssh公网地址,我们复制tcp://后面地址
然后回到WinSCP当中,点击新标签页:
- 协议:SFTP
- 主机名:生成的公网地址(不带端口号)
- 端口号:写cpolar生成的5位数端口号
点击登录
同上操作一样,点击接受,可以看到使用公网地址同样远程访问到了Ubuntu服务器,传输文件步骤还是一样同上
可以看到使用WinSCP远程连接测试文件传输目前为止就成功了,在任意电脑,我们都可以通过该公网地址进行远程 WinSCP 连接传输文件了!
小结
为了更好地演示,我们在前述过程中使用了Cpolar生成的隧道,其公网地址是随机生成的。
这种随机地址的优势在于建立速度快,可以立即使用。然而,它的缺点是网址是随机生成,这个地址在24小时内会发生随机变化,更适合于临时使用。
我一般会使用固定TCP域名,如果我需要长期远程传输文件,它是一个固定、易记的公网地址,这样更加便于长期文件传输。
3. WinSCP使用固定公网TCP地址访问服务器
上面步骤在cpolar中使用的是随机临时tcp端口地址,所生成的公网地址为随机临时地址,该公网地址24小时内会随机变化。我们接下来为其配置固定的TCP端口地址,该地址不会变化,设置后将无需每天重复修改地址。
配置固定tcp端口地址需要将Cpolar升级到专业版套餐或以上。
登录Cpolar官网,点击左侧的预留,找到保留的tcp地址,我们来为远程联机地址保留一个固定的地址:
- 地区:选择China vip
- 描述:即备注,可自定义
点击保留
地址保留成功后,系统会生成相应的固定公网地址,将其复制下来
再次打开cpolar web ui管理界面,点击左侧仪表盘的隧道管理——隧道列表,找到我们上面创建的TCP隧道,点击右侧的编辑
修改隧道信息,将保留成功的固定tcp地址配置到隧道中
- 端口类型:修改为固定tcp端口
- 预留的TCP地址:填写官网保留成功的地址,
点击更新
(只需要点击一次更新即可,不要重复点击)
隧道更新成功后,点击左侧仪表盘的状态——在线隧道列表,可以看到公网地址已经更新成为了和我们在官网固定的TCP地址和端口一致。这样表示地址已经成功固定了,下面测试固定地址连接
固定好了地址后,返回 WinSCP,点击新标签页,主机名端口号改成固定公网地址,然后再点击登录
可以看到我们使用固定的tcp地址成功的远程连接到了Ubuntu服务器中,这样一个固定不变的公网TCP地址就设置好了,不用担心地址变化.随时随地的可以输入地址进行公网远程传输文件了!