你不能不知道的:无公网IP,SSH远程连接CentOS服务器【内网穿透】

简介: 你不能不知道的:无公网IP,SSH远程连接CentOS服务器【内网穿透】

一.内网穿透的介绍

1.什么是内网穿透

内网穿透是一种技术,它允许用户在公共网络中访问其私有网络中的资源,而不需要暴露这些资源在公共网络中。私有网络通常包含许多资源,如文件、数据库、Web应用程序等,这些资源只能在该私有网络中访问。但是,有时需要从互联网上访问这些资源,这就需要使用内网穿透技术。

2.内网穿透的技术原理

内网穿透的工作原理是将公共网络请求转发到本地网络中的目标主机或设备上。内网穿透技术通常包括以下步骤:

  1. 在本地网络中启动一个代理服务器,该服务器将公共网络请求转发到内部网络中的目标主机或设备上。
  2. 在目标主机或设备上安装一个客户端应用程序,该应用程序可以接收来自代理服务器的公共网络请求,并将响应发送回代理服务器。
  3. 在公共网络中启动一个连接,使得公共网络请求可以到达代理服务器。

内网穿透技术可以使用多种协议和技术实现,如TCP、UDP、HTTP、SSH、SSL等。内网穿透的最大优点是可以安全地在公共网络上访问私有网络资源,而不必将这些资源暴露在公共网络中。

然而,使用内网穿透也存在一些潜在的风险,例如可能会导致网络安全漏洞、配置问题和稳定性问题。因此,使用内网穿透技术时应格外小心,并采取必要的安全措施。

3.内网穿透的使用背景

远程工作:

现在越来越多的人选择远程工作,但是他们需要访问公司内部的资源,如文件、数据库等。使用内网穿透技术,远程工作者可以在任何地方访问公司内部资源,提高了工作效率。

物联网:

物联网设备通常连接到一个私有网络中,但是有时需要从互联网中访问它们。通过使用内网穿透技术,可以实现从互联网中访问物联网设备。

游戏:

某些在线游戏需要在专用服务器上运行,这些服务器通常位于私有网络中。使用内网穿透技术,玩家可以从互联网中访问这些服务器,并参加在线游戏。

跨区域协作:

跨区域协作意味着不同地区的用户需要访问同一组资源,如文件、数据库等。通过使用内网穿透技术,这些用户可以在互联网上方便地访问这些资源!

二.实例展示

1.CentOS安装cpolar

  • cpolar 安装(国内使用)
curl -L https://www.cpolar.com/static/downloads/install-release-cpolar.sh | sudo bash

或 cpolar短链接安装方式:(国外使用)

curl -sL https://git.io/cpolar | sudo bash
  • 查看版本号,有正常显示版本号即为安装成功

token认证

登录cpolar官网后台,点击左侧的验证,查看自己的认证token,之后将token贴在命令行

cpolar authtoken  MjNkZmViMWQtYmVhYi00YWVlLWE0ZDMtM2I0YzE2YTFjZjlh

简单穿透测试,如有正常生成公网地址则为穿透成功,按ctrl+c退出

cpolar http 8080

向系统添加服务

sudo systemctl enable cpolar

启动cpolar服务

sudo systemctl start cpolar.service

查看服务状态,,正常显示为active则表示为启动成功在线状态

sudo systemctl status cpolar

开放cplor端口号9200

首先查看允许通过的端口号

firewall-cmd --zone=public --list-ports

其次增加要通过的端口号

firewall-cmd --zone=public --add-port=9200/tcp --permanent

最后在更新状态即可

firewall-cmd --reload

cpolar安装成功后,默认会安装2条样例隧道,可自行编辑或者删减

  • website隧道:使用http协议,指向本地8080端口
  • ssh隧道,使用tcp协议,指向本地22端口

创建TCP隧道

在centOS系统本地安装cpolar内网穿透之后,在外部浏览器上访问centOS本地9200端口,访问方式:虚拟机ip+:9200,打开cpolar web ui界面。

安装cpolar后,会默认生成一个ssh名称的隧道,如果有ssh,则可以直接跳到查看在线隧道列表,然后远程连接

如果没有,我们点击左侧仪表盘的隧道管理——创建隧道,由于ssh连接默认的是22端口,因此我们要来创建一条tcp隧道,指向22端口:

  • 隧道名称:可自定义,注意不要重复
  • 协议:tcp
  • 本地地址:22
  • 域名类型:选择随机域名
  • 地区:选择China VIP

点击创建

创建好后打开在线隧道列表,查看随机公网tcp地址

2. 随机地址公网远程连接

Windows连接centos

在外我们可以通过这个公网地址来SSH远程连接Linux CentOS,以windows系统为例,我们使用在cmd窗口即可远程连接centOS

ssh -p 端口号 用户名@公网地址

ssh -p 10129 root@1.tcp.cpolar.top

这里需要注意,由于我们的本地22端口到了公网被映射到了10129端口(您的公网端口可能不一样),所以,ssh命令需要加-p参数,后面加公网端口号

3.Xshell连接

4. MobaXterm连接

6. 固定TCP地址

我们通过cpolar建立的临时TCP数据隧道,成功连接了位于局域网下的centos系统,,并能通过这条TCP连接隧道进行无差别操作。不过,此时的TCP数据隧道还是随机临时TCP隧道,每隔24小时端口号就会发生变化,更适合应用于系统调试、远程解决操作问题等环境。

如果想要让这条数据隧道长期稳定存在,我们还需要进一步的设置。首先要登录cpolar官网,点击左侧的预留

在预留界面中,找到保留的TCP地址项目。在这个项目下,我们填入一些必要信息,如识别数据隧道的隧道名称、隧道使用区域等。

  • 地区:选择China VIP
  • 描述:即备注,可以自定义填写

然后点击保留

地址保留成功后,cpolar会返回一个固定公网地址+固定公网端口号,这就是我们ssh连接到centos系统的固定地址,将其复制下来

接着我们回到cpolar web UI 管理界面,打开隧道列表,找到之前创建的随机临时TCP隧道,进入编辑页面

将我们在cpolar官网获得的隧道端口粘贴进预留的TCP地址栏中,然后点击下方的更新按钮

  • 端口类型:改为选择固定TCP端口
  • 预留的TCP地址:填写刚刚保留成功的固定公网地址

点击更新

然后再次查看在线隧道列表,发现ssh的隧道对应的公网地址变成了我们官网保留的固定地址

此时,我们就可以在其他设备和操作系统下,使用命令,稳定轻松的连接到Linux CentOS系统中,且不用再担心数据隧道端口号重置的问题。

7. 使用固定公网TCP地址SSH远程

打开cmd,执行ssh命令

ssh -p端口号 用户名@公网地址

这里需要注意,还是需要加-p参数,后面加公网端口号

同时使用xshell工具也可以连接。

综上,成功实现了在外公网环境下也可以SSH远程连接到公司/家里的Linux CentOS服务器,不需要公网IP,也不用设置路由器,简单通过cpolar内网穿透工具映射本地22端口,通过所生成的公网地址来进行SSH远程连接。

相关实践学习
基于Hologres轻量实时的高性能OLAP分析
本教程基于GitHub Archive公开数据集,通过DataWorks将GitHub中的项⽬、行为等20多种事件类型数据实时采集至Hologres进行分析,同时使用DataV内置模板,快速搭建实时可视化数据大屏,从开发者、项⽬、编程语⾔等多个维度了解GitHub实时数据变化情况。
相关文章
|
Ubuntu Linux 网络安全
在Linux云服务器上限制特定IP进行SSH远程连接的设置
温馨提示,修改iptables规则时要格外小心,否则可能导致无法远程访问你的服务器。最好在掌握足够技术知识和理解清楚操作含义之后再进行。另外,在已经配置了防火墙的情况下,例如ufw(Ubuntu Firewall)或firewalld,需要按照相应的防火墙的规则来设置。
750 24
|
网络协议 API 网络安全
永久独立IP服务器解析与选择指南
关于“永久独立IP服务器”,这个概念需要从技术和商业两个层面来理解,小编为您整理发布。
|
安全 Linux
阿里云linux服务器使用脚本通过安全组屏蔽异常海外访问ip
公网网站可能会遭受黑客攻击导致访问异常,使用此脚本可以屏蔽掉异常IP 恢复访问。也可自行设置定时任务定期检测屏蔽。
966 28
|
网络协议 Linux 网络安全
微软工程师偷偷在用!这款SSH工具让Windows操控CentOS比Mac还优雅!
远程登录Linux服务器是管理和维护服务器的重要手段,尤其在远程办公、云服务管理等场景中不可或缺。通过工具如XShell,用户可以方便地进行远程管理。SSH协议确保了数据传输的安全性,命令行界面提高了操作效率。配置XShell连接CentOS时,需确保Linux系统开启sshd服务和22端口,并正确设置主机地址、用户名和密码。此外,调整字体和配色方案可优化使用体验,解决中文显示问题。
760 21
微软工程师偷偷在用!这款SSH工具让Windows操控CentOS比Mac还优雅!
|
Go API 定位技术
MCP 实战:用 Go 语言开发一个查询 IP 信息的 MCP 服务器
随着 MCP 的快速普及和广泛应用,MCP 服务器也层出不穷。大多数开发者使用的 MCP 服务器开发库是官方提供的 typescript-sdk,而作为 Go 开发者,我们也可以借助优秀的第三方库去开发 MCP 服务器,例如 ThinkInAIXYZ/go-mcp。 本文将详细介绍如何在 Go 语言中使用 go-mcp 库来开发一个查询 IP 信息的 MCP 服务器。
921 2
|
安全 Linux 网络安全
在Linux(CentOS和AWS)上安装更新的git2的方法并配置github-ssh
经过以上这些步骤,你现在就能在GitHub上顺利往返,如同海洋中的航海者自由驰骋。欢迎你加入码农的世界,享受这编程的乐趣吧!
648 10
|
安全 Linux 网络安全
CentOS 8下SSH连接超时与“无法加载主机密钥”错误的排查与修复
在CentOS 8系统中,宝塔面板提示“出错了,面板运行时发生错误”,导致插件无法正常显示。同时,SSH连接超时,修复面板功能失效。通过VNC连接排查,发现SSH服务安装和配置问题频发,最终通过重装SSH、调整权限并重新生成主机密钥文件解决问题,成功恢复SSH连接。
1418 16
|
数据库
YashanDB更换服务器IP
本文来自YashanDB官网,主要介绍当单机部署的数据库集群中服务器IP发生变更时,管理员如何使用`yasboot ipchange`命令完成数据库层面的IP更换操作。以一主两备环境为例,详细描述了更换`yasom`、`yasagent`和`yasdb` IP的具体步骤,包括操作顺序、命令示例以及验证方法,确保数据库服务恢复正常运行。操作需按顺序执行,并满足YashanDB的部署要求。
|
网络协议 Ubuntu Linux
CentOS 8及以上版本配置IP的方法,你 get 了吗
接上篇文章讲了 Ubuntu 18及以上版本的配置方法,本文再来讲讲 CentOS 8 及以上版本配置 IP 的方法。
1019 0
CentOS 8及以上版本配置IP的方法,你 get 了吗
|
Linux 虚拟化
VMware workstation 中centos7虚拟机在nat模式下怎么配置网卡,指定我想要的IP并且可以联网
https://blog.csdn.net/2302_78534730/article/details/132825156?spm=1001.2014.3001.5502
1190 0