一.概要

1.名称解释:

内网穿透即NAT穿透,网络连接时术语,计算机是局域网内时,外网与内网的计算机节点需要连接通信,有时就会出现不支持内网穿透。
就是说映射端口,能让外网的电脑找到处于内网的电脑,提高下载速度。

2.本文目的:

实现ARM,Window,Linux,Mac系统主机,在没有公网固定IP的情况下,仍可访问主机上部署的web服务。
实现ssh登陆。

二.准备

1.服务器1台

本人用的是 阿里服务器 公网 IP: X.X.X.X

2.域名

申请 万网域名: ayyxxx.com
解析设置


二. 安装go

1.下载go

    cd ~wget https://storage.googleapis.com/golang/go1.9.linux-amd64.tar.gztar -C /usr/local -xzf go1.9.linux-amd64.tar.gz

2.设置环境变量

    echo 'export GOROOT=/usr/local/go' >> /etc/profileecho 'export PATH=$PATH:$GOROOT/bin' >> /etc/profileecho 'export GOPATH=$HOME/go' >> /etc/profileecho 'export GOROOT_BOOTSTRAP=/usr/local/go' >> /etc/profilesource /etc/profile
此处可能在make生成服务端和客户端时报错:##### Building Go bootstrap tool.cmd/distERROR: $GOROOT_BOOTSTRAP must not be set to $GOROOTSet $GOROOT_BOOTSTRAP to a working Go tree >= Go 1.4.解决方法:将当前的go复制一份#cp -rf go go1.4

3.检查是否安装成功

go version
# 正常的话会返回类似这样的信息: go version go1.9.2 linux/amd64

三.安装ngrok
1.下载ngrok

    cd /usr/local/git clone https://github.com/inconshreveable/ngrok.gitexport GOPATH=/usr/local/ngrok/export NGROK_DOMAIN="cdgngrok.ayyxxx.com"cd ngrok

2.生成证书(重要)

    openssl genrsa -out rootCA.key 2048openssl req -x509 -new -nodes -key rootCA.key -subj "/CN=$NGROK_DOMAIN" -days 5000 -out rootCA.pemopenssl genrsa -out server.key 2048openssl req -new -key server.key -subj "/CN=$NGROK_DOMAIN" -out server.csropenssl x509 -req -in server.csr -CA rootCA.pem -CAkey rootCA.key -CAcreateserial -out server.crt -days 5000

3.在软件源代码目录下面会生成一些证书文件,我们需要把这些文件拷贝到指定位置

    cp rootCA.pem assets/client/tls/ngrokroot.crtcp server.crt assets/server/tls/snakeoil.crtcp server.key assets/server/tls/snakeoil.key

说明:提示是否覆盖原有文件, 输入 y

4.如果是在国内的服务器需要执行此步,香港或者国外的服务器不需要

    vim /usr/local/ngrok/src/ngrok/log/logger.golog "github.com/keepeye/log4go"

5.(1)编译服务端(同时也编译了一个linux下的客户端),注意这里的amd64,如果是32位的话,请修改成386

    cd /usr/local/go/srcGOOS=linux GOARCH=amd64 ./make.bashcd /usr/local/ngrok/GOOS=linux GOARCH=amd64 make release-server release-client
            此处可能报错:##### Building Go bootstrap tool.cmd/distERROR: $GOROOT_BOOTSTRAP must not be set to $GOROOTSet $GOROOT_BOOTSTRAP to a working Go tree >= Go 1.4.解决方法:将当前的go复制一份#cp -rf go go1.4

(2)编译arm客户端

    cd /usr/local/go/srcGOOS=linux GOARCH=arm ./make.bashcd /usr/local/ngrok/GOOS=linux GOARCH=arm make release-client       

(3)编译windows下的客户端

    cd /usr/local/go/srcGOOS=windows GOARCH=amd64 ./make.bashcd /usr/local/ngrok/GOOS=windows GOARCH=amd64 make release-client

说明:编译生成的 服务端和客户端文件放在 /usr/local/ngrok/bin/ 下

6.启动服务端

    cd /usr/local/ngrok/bin/./ngrokd -domain="cdgngrok.ayyxxx.com" &## & 设置后台运行

出现如下内容说明启动成功:

7.客户端的运行
本人玩的是 EW-320, 支持Linux系统。插上网线,并设置 ip及网关,使其可以联网。
拷贝 ngrok服务器 /usr/local/ngrok/bin/linux_arm/ 下的 ngrok
复制到 EW-320网关 ~ 家目录

(1)配置ngrok.yml,如下:

    cd ~vim ngrok.yml
        server_addr: "cdgngrok.ayyxxx.com:4443"tunnels:ssh:remote_port: 51200 #远程端口 proto:tcp: ":22"web:subdomain: 77  #子域名proto:http: ":80"

(2)启动arm的客户端

    ./ngrok -config=ngrok.yml start ssh web

启动成功:

(3)测试web服务
浏览器中访问域名: 77.cdgngrok.ayyxxx.com 效果与 输入 ip地址效果一样,如下图

(4)测试是ssh登录
远程连接工具xshell

ssh登录成功

——————————————————————————————————
               结束
——————————————————————————————————

ngrok内网穿透服务器和客户端相关推荐

  1. 华硕老毛子(Padavan)——Ngrok内网穿透解决方案

    基本概念 Ngrok:ngrok 是一个反向代理,通过在公共的端点和本地运行的 Web 服务器之间建立一个安全的通道.Ngrok是外国发布的一个开源项目,也有一个公开的运行服务,但被国内墙掉了.国内一 ...

  2. ngrok内网穿透工具搭建,方便微信公众号,小程序、钉钉等开发【已投入使用】

    前言:微信公众号,小程序.钉钉等开发需要内网穿透工具. 1.经过不断的摸索和调试,完成ngrok内网穿透的工具的搭建,对于微信公众号,小程序.钉钉等开发提供便利性. 2.搭建环境Linux cento ...

  3. ngrok内网穿透原理分析和实现

    转载: ngrok内网穿透原理分析和实现 在互联网终端急剧增长的今天,公网ip已经成为稀缺资源,对于国内垄断的电信运营商来讲,更是不可能随便免费给你一个公网ip,许多家庭宽带都无法分配到 公网ip,又 ...

  4. ngrok 内网穿透

    ngrok 内网穿透 下载客户端 根据你的个人电脑系统下载匹配的客户端. 下载地址: https://ngrok.com/download 启动 打开ngrok.exe 输入命令,开放端口 ngrok ...

  5. frps搭建内网穿透服务器(frp隧道)

    frps搭建自己的内网穿透服务器 开发过程中,很多时候我们需要用到内网穿透,将自己的服务器映射到外网,下面说一下怎么用frps搭建自己的内网穿透服务器 frps Github地址 GitHub - f ...

  6. 小米球ngrok内网穿透

    小米球ngrok内网穿透 目录 小米球ngrok内网穿透 背景 操作步骤 小米球官网,先注册,登陆 下载对应版本 系统管理-商品管理-商品列表开通 实名认证,注册版服务器两服务. 系统管理-账户管理- ...

  7. frps搭建自己的内网穿透服务器

    开发过程中,很多时候我们需要用到内网穿透,将自己的服务器映射到外网,下面说一下怎么用frps搭建自己的内网穿透服务器 frps Github地址 里面有中文文档,大家可以参考 服务器搭建 服务器搭建 ...

  8. nps内网穿透服务器搭建教程(阿里云)-小宇特详解

    nps内网穿透服务器搭建教程(阿里云)-小宇特详解 前期准备 1.一台云服务器 2.配置安全组 3.在自己的电脑上安装nps 云服务器的话自己买,我这里使用的是阿里云 讲一下配置安全组 打开阿里云的官 ...

  9. 从创建服务器到搭建一台内网穿透服务器

    文章目录 创建服务器到搭建一台内网穿透服务器 解决VMware虚拟机ip地址经常变化的问题 安装lrzsz Linux中rz和sz命令用法详解 安装插件 安装jdk 安装maven 安装git 安装n ...

最新文章

  1. 地址本在不同手机间的迁移
  2. Stefan Tilkov:跳过单体应用,从微服务开始
  3. opencv各版本链接及opencv_contrib库各版本链接
  4. python 比较列表相邻元素(找相同或去重)
  5. 熊市利好,Bit-Z推出币圈最高返佣50%
  6. BZOJ 4567 [SCOI2016]背单词 (Trie树、贪心)
  7. Python爬虫 解析库的使用
  8. [Go语言]从Docker源码学习Go——init()方法和identifier首字母大小写区分
  9. linux mysql 备份脚本_linux 之mysql备份脚本
  10. GraphicsStatsService之2 UI绘制的时间信息来源
  11. mysql java.util.date_jdbc-java.sql.date和java.util.date之间转换
  12. java list 树_java list转换为树形
  13. sysbench压测cpu,io,memory,threads,mutex
  14. 工程、通信中的3dB带宽含义
  15. OMNeT++理论算法仿真详述
  16. JVM调优命令-jstat
  17. linux就该这么学【信号】
  18. Jupiter notebook如何改变绘图大小
  19. android studio实验二 Activity及常用布局和控件的使用
  20. EIA/TIA 568国际综合布线标准

热门文章

  1. VC使用OCCI开发的简介
  2. 测试高中生成绩的软件,最适合高中生用的12款学习类App, 帮你提高效率, 飙升成绩...
  3. phalcon第二个例子invo
  4. NP,NPC,NPH,强NPC问题
  5. nvidia显示设置不可用_纯干货!手把手教你为FreeSync显示器开启G-Sync教程
  6. 机器人 郭启寅_郭启寅:机器人开创创新金融科技新纪元
  7. HTML5+CSS大作业——传统节日--中秋节(5页)
  8. 循环神经网络(Recurrent Neural Network, RNN)和递归神经网络(Recursive Neural Network, RNN),你搞清楚了吗?
  9. 关于携程多玩对接-订单对接
  10. 考研数学笔记 51~55