zl程序教程

您现在的位置是:首页 >  系统

当前栏目

无需公网IP,SSH远程内网linux服务器

Linuxssh服务器IP 远程 无需 内网 公网
2023-09-11 14:14:32 时间

通常内网服务器没有公网IP,外网无法直接访问。我们可以通过一个公网服务器发起连接,来实现外网远程访问内网的服务器。

我这里用的是cpolar内网穿透,支持http/https/tcp协议,可以永久免费使用还不限制流量,无需公网IP也不用设置路由器,操作也很简单,不需要自己搭建服务器。在安装客户端后,就可以创建隧道映射内网端口到公网,会生成相应的公网地址,使用该公网地址来进行远程访问就可以了。


1. 服务器安装配置cpolar内网穿透

1.1 安装

linux系统支持一键自动安装脚本

  • 国内使用
curl -L https://www.cpolar.com/static/downloads/install-release-cpolar.sh | sudo bash
  • 国外使用
curl -sL https://git.io/cpolar | sudo bash
1.2 配置token

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

cpolar authtoken xxxxxxx
1.3 配置服务开机自启动
sudo systemctl enable cpolar
1.4 启动服务
sudo systemctl start cpolar
1.5 查看服务状态
sudo systemctl status cpolar

如正常显示active,则说明已经启动成功。

2. 获取公网隧道地址

cpolar默认会安装两个样例隧道

  • 一个是Website隧道,指向http 8080端口
  • 一个是ssh隧道,指向tcp 22端口

我们只需要登录cpolar官网后台————状态,就可以查看到所有在线隧道的公网地址。

1

获取到SSH隧道的公网TCP端口地址,就可以在外任意网络下SSH远程内网linux服务器

3. 外网SSH远程内网linux服务器

ssh username@公网地址 -p 公网端口号

如:

ssh pi@1.tcp.vip.cpolar.cn -p 20013

由于我们的本地22端口到了公网被映射到了20013端口,所以,ssh命令需要加-p参数,后面加公网隧道端口号。

如访问端为Windows系统,可使用SSH客户端来进行远程,比如PuTTY这样的客户端。

在安装PuTTY之后,打开客户端,然后填入相关信息,然后点击"open",就可以远程连接到内网服务器了:

  • session中的Host Name中输入cpolar所生成的公网地址
  • Port输入所映射的端口

在这里插入图片描述

由于使用免费的cpolar生成的公网地址,为随机临时地址,24小时内会发生变化,并且带宽较小,只有1M。对于需要长期SSH远程的用户来说,配置固定的公网TCP端口地址,提高带宽就很有必要【ps:cpolar支持21天退款保证】。

4. 保留一个固定TCP端口地址

cpolar 官网:https://www.cpolar.com/

首先,将cpolar套餐升级到专业版套餐或以上,支持配置固定的公网TCP端口地址。

登录cpolar官网,进入后台,点击左侧仪表盘的预留。找到保留的TCP地址,为SSH远程保留一个固定的TCP地址:

  • 地区:选择China或者China VIP
  • 描述:可自定义备注

在这里插入图片描述

TCP地址保留成功后,系统会自动生成相应的公网TCP端口地址,将其复制下来。

在这里插入图片描述

5. 配置SSH远程隧道

5.1 登录cpolar web ui

浏览器访问本地9200端口【http://ip地址:9200,http://locahost:9200/】,使用cpolar邮箱账号登录。

在这里插入图片描述

5.2 修改隧道信息

登录成功后,点击左侧仪表盘的隧道管理——隧道列表,找到ssh远程隧道,点击编辑

在这里插入图片描述
修改隧道信息:

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

修改完成后,点击更新

在这里插入图片描述

5.3 查看公网地址

隧道更新成功后,点击左侧仪表盘的状态——在线隧道列表,可以看到SSH隧道的公网地址已经更新为固定的公网TCP端口地址,将其复制下来,接下来测试使用固定的公网TCP端口地址进行SSH远程连接。

在这里插入图片描述

6. 使用固定TCP地址SSH远程

6.1 命令行SSH远程

输入命令:

ssh -p XXXXX 主机用户名@公网地址

由于我们的本地22端口到了公网被映射到了20013端口,所以,ssh命令需要加-p参数,后面加公网隧道端口号。其中,XXXXX为cpolar生成的端口号,用户名需替换为被远程主机的用户名。

如:

ssh -p 12669 root1@2.tcp.vip.cpolar.cn
6.2 SSH客户端远程

以putty客户端为例,打开putty:

  • 在session中的Host Name中输入cpolar所生成的公网地址
  • Port输入公网固定TCP端口地址

在这里插入图片描述
连接成功!

在这里插入图片描述