Photo by Thomas Jensen on Unsplash
应用场景
远程登录学校、实验室等服务器,由于这些服务器一般仅供内部使用,所以不会有公网IP地址,不能直接登录。但是由于放假、出差等原因经常需要远程登录,前几天师弟找我解决这个问题,把解决方案在这里提供一下,以供参考。
使用teamview远程连接
teamview是一个远程控制软件,在服务器上安装以后就可以远程登录,体验和QQ的远程控制差不多。
teamview支持全平台,Windows,Linux,Mac都有,Linux服务器安装好后进行打开会有ID和密码,在个人电脑上同样安装一个teamview,输入ID和密码就可以远程登录,这个密码每次启动都会更改,可以设置一个远程管理密码,这样密码就不会每次都更改了。
Linux版teamview下载地址:https://www.teamviewer.cn/cn/download/linux/
teamview远程缺点主要有一下几点:
- 付费软件:需要获得授权才能无限制使用,虽然个人使用免费,但是有时会被强制下线
- 基于图形界面:部分服务器安装时未安装图形界面,这个方案就不太合适
- 速度慢:这是由网络决定的,因为传输的都是图形数据,网络不稳定的时候就会表现的相当卡顿
使用SSH反向链接
这是一种比较hack的方法,需要有一台有公网IP的电脑或者服务器,能允许实验室的服务器和我们的个人电脑都能访问。
我在实验室时用的就是这种方式
有点就是ssh这个每台机器都默认安装,上手即用,使用感觉上和直接用ssh链接到远程服务器是一样的,基本上是无感登录。
具体原理就是利用没有公网IP的服务器ssh登录到有公网IP的服务器时建立一条反向连接隧道,允许有公网IP的服务器访问无公网IP的服务器。
具体操作方法和原理在这文章里有介绍,可以参考一下《利用ssh反向代理以及autossh实现从外网连接内网服务器》
反向链接缺点:
- 配置较复杂:第一次的配置的时候被里面的端口关系给搞蒙了,配置起来还是比较烦的,最开始的时候用ssh直接链接经常有掉线的问题,还要检测端口是不是还在监听,是不是掉线了,后来才看到有autossh这个软件
- 有一台有公网IP的独立主机:用阿里云ECS的话还是比较贵的,如果是学生的话可以用学生优惠开通,因为这台服务器的功能主要做数据转发,配置不用太好
由于端口直接暴露在公网,一定要把安全策略做好,比如修改端口号,设置复杂密码,只允许秘钥登录,限制尝试次数等方法
用ngork链接到内网
这种方法是工作以后了解到的,ngork就是内网穿透利器,软件也是开源的,同样是需要开通一个有公网IP的服务器配置。
但是ngork的这个方案是很多微信开发者使用的方法,有不少专门做这个服务的网站,所以不用自己再费劲去配置ngork服务器。
我用的是Sunny博客 http://www.ngrok.cc/这个网站的服务,一个月10块,比租服务便宜不少,也免了配置的时间,我到目前还没配置过ngork服务器。。。。
用法也比较简单
使用教程:http://www.ngrok.cc/_book/
简单介绍一下流程
- 注册账户什么的就不说了,注册号后充值买个ngork账号,大约10块
- 开通隧道:隧道协议选tcp,隧道名称和前置域名随便写,便于区分即可,本地端口写127.0.0.1:22, 22是默认的ssh端口号,如果更换了就填上对应端口号就行。http验证用户名密码什么的就不用填了
- 下载对应客户端
- 启动隧道 命令是 ./sunny clientid 隧道id,后台常驻避免误关程序可以使用setsid命令 setsid ./sunny clientid 隧道id &
- 可以登录网站看给的链接地址和端口,例如给的是test.idcfengye.com:15586,那么远程ssh远程登录就可以使用 ssh -p 15586 test@test.idcfengye.com
评论 (0)