如何使用WinSCP结合Cpolar实现公网远程访问内网Linux服务器

1. 简介

Winscp是一个支持SSH(Secure SHell)的可视化SCP(Secure Copy)文件传输软件,它的主要功能是在本地与远程计算机间安全地复制文件,并且可以直接编辑文件。

​ 可视化操作就是直接把文件从本机拖入,打开文件直接双击即可。

软件特性

  • 支持协议众多:SSH ,FTP、SFTP、FTPS、SCP。
  • 友好的图形操作界面,设置可以在选项界面中更改皮肤。
  • 与 Windows 完美集成(拖拽, URL, 快捷方式)
  • 内置文本编辑器
  • 带有比较目录、同步、同步浏览、查找文件、清除缓存等额外有用功能。
  • 能够保存多个ftp会话。

2. 软件下载安装:

GIthub项目地址:Github WinSCP

下载链接:download WinSCP

Winscp界面:

3. SSH链接服务器

首先,ifconfig命令查询服务器ip地址:

这里以centos7系统举例(ubuntu等同理):

复制局域网地址:192.168.40.162

直接从win本地拖入文件:

检查一下,成功传输:

image-20231026143551998

以上操作在本地进行,如果人在异地,需要公网访问本地服务器,就需要在本地服务器上安装内网穿透服务来实现将本地局域网地址映射至公网。

4. WinSCP使用公网TCP地址链接本地服务器

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

如何安装Cpolar请参考:

centos安装完毕后,浏览器登陆 localhost:9200 如下:(若centos无图形化界面可以手动调整隧道配置文件实现穿透,在文档第四章)

点击 创建隧道

示例如下:

image-20231026151246802
  • 隧道名称:可自定义命名,注意不要与已有的隧道名称重复
  • 协议:选择TCP
  • 本地地址:22
  • 域名类型:随机临时(cpolar免费版)
  • 地区:选择China top

点击创建

​ 打开在线隧道列表, 复制刚刚映射的公网tcp地址

回到winscp:

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

成功使用公网访问!

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

如果想将TCP链接固定为永久不变的ip地址,需要 使用 cpolar的付费功能 ,将套餐 升级专业版套餐 及以上,支持固定TCP地址

访问cpolar仪表盘:

往下翻,找到保留TCP地址:

  • 地区:国内选择 china vip
  • 描述:自行填写,用来区分地址用途 点击 保留

回到服务器cpolar webui

  • 隧道名称:可自定义命名,注意不要与已有的隧道名称重复
  • 协议:选择TCP
  • 本地地址:22
  • 域名类型:随机临时(cpolar免费版)
  • 地区:选择China top 映射为刚刚保留的固定tcp地址
image-20231026162201285

所有配置都已经完成,现在我们就可以在异地公网访问centos服务器编辑和上传文件,并且链接地址固定永久不变!

我们现在测试一下,回到winscp:

成功使用固定tcp远程登陆centos服务器:

现在我们就可以使用任意一台电脑,无需在局域网内也可以访问此centos服务器!