在局域网内ssh远程登录到ubuntu,只需要知道被控端的IP地址就可以。但对于想要在家里/宿舍/公司,也能够远程ssh访问ubuntu时,应该怎么设置呢?

在ipv4公网IP资源枯竭的情况下,运营商基本不会分配公网IP。而想要实现公网访问内网/局域网,普遍是通过内网穿透来实现。

如cpolar内网穿透,支持http/https/tcp协议,可免费使用,并且不限制流量。能够将本地端口映射到公网上,生成公网,实现外网任意地点远程访问内网。

以下介绍通过cpolar内网穿透来实现外网远程ssh登录ubuntu:

【确认ubuntu有安装ssh,并且在局域网内能够ping通,且能够远程ssh】

1、注册并安装cpolar内网穿透

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

1.1 cpolar 安装(国内使用)

curl -L https://www.cpolar.com/static/downloads/install-release-cpolar.sh | sudo bash

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

curl -sL https://git.io/cpolar | sudo bash

1.2 查看版本号

cpolar version

1.3 token认证
登录后台,查看自己的认证token,之后将token贴在命令行

cpolar authtoken xxxxxxx

1.4 简单穿透测试

cpolar http 8080

按ctrl+c退出

1.5 启动cpolar服务

sudo systemctl start cpolar

1.6 查看服务状态

sudo systemctl status cpolar

1.7 登录后台,查看隧道在线状态

https://dashboard.cpolar.com/status

1.8 安装完成

2、获取ssh隧道的公网地址


2.1 登录cpolar web UI管理界面

在浏览器访问:http://localhost:9200/,输入所注册的cpolar账号密码,登录cpolar web UI管理界面

2.2 查看ssh隧道所映射的公网地址

cpolar会默认安装ssh隧道,指向22端口,tcp协议。在启动服务后,即会自动生成公网地址。

  • 左侧仪表盘——隧道列表——启动ssh隧道
  • 左侧仪表盘——状态——在线隧道列表
  • 获取ssh隧道的公网地址

3、外网远程ssh访问内网的ubuntu

控制端电脑打开终端命令行,输入命令,远程ssh访问局域网内的ubuntu。

如cpolar已经将本地22端口映射到了20013端口,所以,ssh命令需要加-p参数,后面加公网隧道端口号

示例:ssh cpolar@1.tcp.vip.cpolar.cn -p 20013 ssh ubuntu用户名@cpolar公网地址 -p XXXXX(cpolar生成的端口号)

在输入正确的命令后,Ubuntu会出现提示信息,询问是否确定连接该端口,并要求输入Ubuntu系统的密码,此时分别输入“yes”和ubunt系统密码即可。