前言
scp是secure copy的简写,用于在Linux下进行远程拷贝文件的命令,我们需要获得远程服务器上的某个文件或者往服务器传输一个文件,只需要通过scp命令便可轻松的达到目的,
下面介绍scp命令+cpolar内网穿透工具实现远程向Linux服务器发送文件,scp 是 Linux 系统下基于 ssh 登陆进行安全的远程文件拷贝命令,所以前提是双方设备安装好了SSH.
1. 本地连接
本地局域网测试连接,输入以下命令:
scp 本地文件 用户名@局域网ip:目标路径
这里使用windows系统测试,发送文件到Linux服务器,执行后,提示输入Linux用户名对应的密码后,可以看到,没有提示错误,表示发送成功
打开Linux对应的路径下,即可看到我们刚刚传输的文件
2. Linux安装cpolar
上面我们在本地测试通过scp 在局域网环境传输了一个文件到Linux服务器,下面我们安装cpolar内网穿透工具,通过cpolar的http公网地址,我们可以很容易实现scp远程传输一个文件,而无需自己注册域名购买云服务器.下面是安装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服务后,我们浏览器上使用Linux局域网IP地址:9200
端口,访问登录cpolar web UI管理界面(如果访问不了,关闭一下防火墙),如果没有账号点击免费注册创建一个账号。
3. 配置scp公网地址
登录cpolar web UI管理界面后,点击左侧仪表盘的隧道管理——创建隧道:
- 隧道名称:可自定义,注意不要与已有的隧道名称重复
- 协议:tcp
- 本地地址:22
- 域名类型:临时随机TCP端口
- 地区:选择China VIP
点击创建
然后打开左侧在线隧道列表,查看刚刚创建隧道后生成的tcp连接的公网地址,这个地址就是公网连接地址
4. scp公网远程连接测试
使用scp命令行连接模式,注意,-P后面的端口是cpolar中生成的公网地址对应的端口,且P必须大写
scp -P 端口 本地文件 用户名@公网地址:目标路径
执行后,我们可以看到成功把文件传输过去了
然后我们打开Linux 服务器对应的目录,可以看到我们刚刚传输的文件.这里演示的是scp传输的功能,其还有可以从目标主机下载文件等功能,具体可以参考网上教程命令.
5. 固定连接SSH公网地址
要注意的是,以上步骤使用的是随机临时tcp端口地址,所生成的公网地址为随机临时地址,该公网地址24小时内会随机变化。我们接下来为其配置固定的TCP端口地址,该地址不会变化,设置后将无需每天重复修改地址。
配置固定tcp端口地址需要将cpolar升级到专业版套餐或以上。
保留一个固定tcp地址
登录cpolar官网,点击左侧的预留,找到保留的tcp地址,我们来为我的世界保留一个固定tcp地址:
- 地区:选择China vip
- 描述:即备注,可自定义
点击保留
地址保留成功后,系统会生成相应的固定公网地址,将其复制下来
打开cpolar web ui管理界面,点击左侧仪表盘的隧道管理——隧道列表,找到我们上面创建的TCP隧道,点击右侧的编辑
修改隧道信息,将保留成功的固定tcp地址配置到隧道中
- 端口类型:修改为固定tcp端口
- 预留的tcp地址:填写官网保留成功的地址,
点击更新
隧道更新成功后,点击左侧仪表盘的状态——在线隧道列表,可以看到公网地址已经更新成为了固定TCP地址。
6. SSH固定地址连接测试
固定好了地址后,使用我们固定的TCP地址进行scp 传输文件到我们Linux 服务器,
进入Linux 相关目录下,可以看到,传输成功,一个固定的且不会变化的远程连接的地址就设置好了,哪怕我们下次连接,地址也是不会发生变化