转载自内网穿透工具的文章:无公网IP,SSH远程连接Linux CentOS服务器【内网穿透】
本次教程我们来实现如何在外公网环境下,SSH远程连接家里/公司的Linux CentOS服务器,无需公网IP,也不需要设置路由器。
视频教程
公网SSH远程Linux CentOS服务器【内网穿透】
1. Linux CentOS安装cpolar
cpolar官网:https://www.cpolar.com/
cpolar支持一键自动安装脚本
curl -L https://www.cpolar.com/static/downloads/install-release-cpolar.sh | sudo bash
或 cpolar短链接安装方式:(国外使用)
curl -sL https://git.io/cpolar | sudo bash
cpolar version
- token认证,登录cpolar官网后台,点击左侧的验证,查看自己的认证token,之后将token贴在命令行里
cpolar authtoken xxxxxxx
![20230310092513](https://img-blog.csdnimg.cn/img_convert/9a4ee9081f54558bc2410f43e29fa13e.png#pic_center)
- 简单穿透测试,如有正常生成公网地址则为穿透成功,按ctrl+c退出
cpolar http 8080
sudo systemctl enable cpolar
sudo systemctl start cpolar
- 查看服务状态,,正常显示为
active
则表示为启动成功在线状态
sudo systemctl status cpolar
cpolar安装成功后,默认会安装2条样例隧道,可自行编辑或者删减
- website隧道:使用http协议,指向本地8080端口
- ssh隧道,使用tcp协议,指向本地22端口
2. 创建TCP隧道
在centOS系统本地安装cpolar内网穿透之后,在外部浏览器上访问centOS本地9200端口,访问方式:局域网ip+:9200
,打开cpolar web ui界面。
安装cpolar后,会默认生成一个ssh名称的隧道,如果有ssh,则可以直接跳到查看在线隧道列表,然后远程连接
![image-20230308165855618](https://img-blog.csdnimg.cn/img_convert/6a626b30db164aa7b4245db9a9316711.png#pic_center)
如果没有,我们点击左侧仪表盘的隧道管理
——创建隧道
,由于ssh连接默认的是22端口,因此我们要来创建一条tcp隧道,指向22端口:
- 隧道名称:可自定义,注意不要重复
- 协议:tcp
- 本地地址:22
- 域名类型:选择随机域名
- 地区:选择China VIP
点击创建
![image-20230308170302490](https://img-blog.csdnimg.cn/img_convert/5c297ca8878efb4c51a8e01cbe23fd4a.png#pic_center)
创建好后打开在线隧道列表,查看随机公网tcp地址
![image-20230308170602609](https://img-blog.csdnimg.cn/img_convert/59ded9be77e8c598f7ffa4973f5fcf7a.png#pic_center)
3. 随机地址公网远程连接
在外我们可以通过这个公网地址来SSH远程连接Linux CentOS,以windows系统为例,我们使用在cmd窗口即可远程连接centOS
ssh -p 端口号 用户名@公网地址
这里需要注意,由于我们的本地22端口到了公网被映射到了23075端口(您的公网端口可能不一样),所以,ssh命令需要加-p参数,后面加公网端口号
![image-20230308171327763](https://img-blog.csdnimg.cn/img_convert/44e3a97d9f892defbc2a6a7c662b3113.png#pic_center)
同时我们也可以使用xshell工具也可以连接
![image-20230308180406308](https://img-blog.csdnimg.cn/img_convert/200ae066a4557d3ac9b8eb6b3b22168e.png#pic_center)
4. 固定TCP地址
我们通过cpolar建立的临时TCP数据隧道,成功连接了位于局域网下的centos系统,,并能通过这条TCP连接隧道进行无差别操作。不过,此时的TCP数据隧道还是随机临时TCP隧道,每隔24小时端口号就会发生变化,更适合应用于系统调试、远程解决操作问题等环境。
如果想要让这条数据隧道长期稳定存在,我们还需要进一步的设置。首先要登录cpolar官网,点击左侧的预留
![在这里插入图片描述](https://img-blog.csdnimg.cn/f1f208be444e47c7a8dcc7da4afe0a46.png#pic_center)
在预留界面中,找到保留的TCP地址
项目。在这个项目下,我们填入一些必要信息,如识别数据隧道的隧道名称、隧道使用区域等。
- 地区:选择China VIP
- 描述:即备注,可以自定义填写
然后点击保留
![image-20230308182039249](https://img-blog.csdnimg.cn/img_convert/cdbbe0fa06288afb46eaf8b6cce59d82.png#pic_center)
地址保留成功后,cpolar会返回一个固定公网地址+固定公网端口号,这就是我们ssh连接到centos系统的固定地址,将其复制下来
![image-20230308182152002](https://img-blog.csdnimg.cn/img_convert/c1072d04b18efb161c3f5e76ff25b83c.png#pic_center)
接着我们回到cpolar web UI 管理界面,打开隧道列表
,找到之前创建的随机临时TCP隧道,进入编辑
页面
![image-20230308182613303](https://img-blog.csdnimg.cn/img_convert/fb5110148cedcc368ae190cd475c0fff.png#pic_center)
将我们在cpolar官网获得的隧道端口粘贴进预留的TCP地址
栏中,然后点击下方的更新
按钮
- 端口类型:改为选择
固定TCP端口
- 预留的TCP地址:填写刚刚保留成功的固定公网地址
点击更新
![image-20230308182756937](https://img-blog.csdnimg.cn/img_convert/9e15b3d060d716e043d1ddb279e68f2e.png#pic_center)
然后再次查看在线隧道列表,发现ssh的隧道对应的公网地址变成了我们官网保留的固定地址
![image-20230308182850431](https://img-blog.csdnimg.cn/img_convert/a4c1c3a400b12aa16c570ebbada4ad21.png#pic_center)
此时,我们就可以在其他设备和操作系统下,使用命令,稳定轻松的连接到Linux CentOS系统中,且不用再担心数据隧道端口号重置的问题。
5. 使用固定公网TCP地址SSH远程
打开cmd,执行ssh命令
ssh -p端口号 用户名@公网地址
这里需要注意,还是需要加-p参数,后面加公网端口号
![image-20230308183641503](https://img-blog.csdnimg.cn/img_convert/ecd0c268b8078b4919fab204d69fb507.png#pic_center)
同时使用xshell工具也可以连接。
![image-20230308184643363](https://img-blog.csdnimg.cn/img_convert/bec8ddcc07575e1d99cd787ae6fac6a5.png#pic_center)
综上,成功实现了在外公网环境下也可以SSH远程连接到公司/家里的Linux CentOS服务器,不需要公网IP,也不用设置路由器,简单通过cpolar内网穿透工具映射本地22端口,通过所生成的公网地址来进行SSH远程连接。