机器学习之内网穿透

abing_hu · · 2106 次点击 · · 开始浏览    
这是一个创建于 的文章,其中的信息可能已经有所发展或是发生改变。

我们准备好了工作站,也安装好了操作系统和CUDA环境。很可能大家还会遇到一个问题,就是怎样才能随时随地连上自己在局域网中的宝贵工作站?

如果笔记本和工作站在同一个局域网中,那非常简单只要使用ssh命令即可登录工作站;如果笔记本和工作站不在同一个局域网就比较困难了(比如工作站在公司,人在家的时候)。

我在Google解决方案的时候,找到一个非常好的项目Ngrok。开发该项目的公司本身提供了连接内网机器的服务,但由于该公司在国外,在国内使用其服务延时非常严重。好在该公司在Github上开源了该项目的旧版本(当前开源的最新版本是1.7.3,公司提供的服务是基于2.0版本以上的),我们可以自己来搭建内网穿透服务。

首先我们需要1台有公网IP的服务器(推荐阿里云ECS服务器,新注册用户可以获得6个月的免费试用),以下是Ngrok项目的原理示意图:



Ngrok分为客户端和服务端,在公网服务器中运行Ngrok服务端程序,在内网服务器上运行Ngrok客户端程序,Ngrok client通过TCP与Ngrok server保持长连接。如果笔记本想ssh到内网服务器,只需要通过Ngrok server将相关指令代理转发到内网服务器即可,从而在感知上实现了笔记本直接ssh到内网服务器的效果。

接下来简要介绍下Ngrok安装方式:

第1步编译安装Go

  1. 安装Go:sudo yum install golang
  2. 参照官方安装手册,解压软件,设置环境变量,编写HelloWorld项目测试

第2步编译Ngrok项目

  1. 去github下载ngrok项目
  2. 参照文章生成证书,编译ngrok项目

第3步项目部署

  1. 参照文章,在公网代理服务上运行ngrokd服务
  2. 在局域网服务器运行客户端程序,转发ssh的22端口

第4步连接测试

  1. 在公网代理服务器上使用netstat -tunlp查看ssh连接端口号xxx
  2. 在本地电脑使用ssh user@ssh.teegether.cn -pxxx进行连接测试

参考资料:使用Ngrok实现内网穿透服务


有疑问加站长微信联系(非本文作者)

本文来自:简书

感谢作者:abing_hu

查看原文:机器学习之内网穿透

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889

2106 次点击  
加入收藏 微博
暂无回复
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传