使用Ngrok实现内网穿透|附国内免费服务器

  • 什么是内网穿透?
  • Ngrok是什么?
  • 为什么需要内网穿透?
  • 使用ubuntu16搭建ngrok服务器
    • 下载ngrok源码
    • 安装go语言
    • 配置环境变量
  • 生成证书
  • 编译
  • 启动
  • 测试
  • 福利

什么是内网穿透?

内网穿透,即NAT穿透,网络连接时术语,计算机是局域网内时,外网与内网的计算机节点需要连接通信,有时就会出现不支持内网穿透。简单来说,就是让身处局域网的电脑,被大家都能访问的技术。

Ngrok是什么?

Ngrok 是一个反向代理,通过在公共的端点和本地运行的 Web 服务器之间建立一个安全的通道。ngrok 可捕获和分析所有通道上的流量,便于后期分析和重放。它是内网穿透的跳板之一。

为什么需要内网穿透?

如果你在自己电脑上搭建一个网站,你身处在局域网,你想让大家访问你,但是你没有外网IP,这时,你就需要一个跳板,实现内网穿透到外网环境,对于一个技术开发者,有时候会需要临时地将一个本地的Web网站部署到外网,以供他人体验评价或协助调试,内网穿透就显得尤为重要。

使用ubuntu16搭建ngrok服务器

下载ngrok源码

  1. 创建一个目录,博主自己创建的是download
  2. 更新安装包管理器
  3. 安装git
  4. 克隆源码
mkdir download #创建名称为download的目录
cd download #进入文件夹
apt-get update #更新包管理器
apt-get install git #安装git
git clone https://github.com/inconshreveable/ngrok.git ngrok2 #将ngrok源代码克隆回本地

安装go语言

go语言版本必须是1.1的版本,可以去https://studygolang.com/dl 下载,下载tar.gz之后解压

wget https://dl.google.com/go/go1.11.linux-amd64.tar.gz # 下载go语言
tar -zxvf go1.11.linux-amd64.tar.gz #解压tar包
mv go /usr/local/  #移动go语言

配置环境变量

使用vim命令修改配置文件,按A插入,然后把下面三句话粘贴在底部
export GOROOT=/usr/local/go
export GOPATH=/usr/local/go/get_package #设置环境变量,Go语言的安装位置
export NGROK_DOMAIN=“ngrok.your.com” #设置环境变量,ngrok域名
export PATH=.:GOROOT/bin:GOROOT/bin:GOROOT/bin:PATH

使用:wq保存退出

vim /etc/profile #修改配置文件
source /etc/profile #刷新配置

生成证书

  • 进入到第一步下载的ngrok源码根目录,执行以下命令,会在当前文件夹生成六个文件
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
  • 转移证书
cp rootCA.pem assets/client/tls/ngrokroot.crt
cp server.crt assets/server/tls/snakeoil.crt
cp server.key assets/server/tls/snakeoil.key

编译

在下载的ngrok根目录编译

#在bin里面生成ngrok文件
make release-server release-client
#win客户端
GOOS=windows GOARCH=amd64 make release-client

编译完成之后把bin目录下windows的启动工具下载下来

启动

在ngrok根目录执行以下命令启动,httpaddr和httpsaddr是你的服务器外网端口,可以自己修改,如果你使用的阿里云服务器或者其他云服务器,请在控制台服务界面把你开启的端口打开,同时打开4443端口。打开之后启动

./bin/ngrokd -tlsKey=server.key -tlsCrt=server.crt -domain=$NGROK_DOMAIN -httpAddr=":8081" -httpsAddr=":8082"

测试

在下载的客户端同级目录下新建一个配置文件ngrok.cfg,添加以下内容,
设置你配置的网址

server_addr: "ngrok.xxx.com:4443"
trust_host_root_certs: false

使用cmd进入到下载的客户端目录,执行:

ngrok -config=ngrok.cfg -subdomain xxx 80 //(xxx 是你自定义的域名前缀)。

福利

如果你只是临时使用ngrok,并不需要搭建,那么巧了,本人已经使用阿里云搭建了一个ngrok,可以供大家临时使用,免费版的喔。

下载地址:http://www.imawen.com/content.html?id=26

使用Ngrok实现内网穿透|附国内免费服务器相关推荐

  1. Ngrok(内网穿透工具)使用教程详解

    简介 国内Ngrok官网地址 Ngrok是什么? ngrok 是一个反向代理,通过在公共的端点和本地运行的 Web 服务器之间建立一个安全的通道 ngrok 可捕获和分析所有通道上的流量,便于后期分析 ...

  2. Ngrok: 使用 Ngrok 实现内网穿透

    Jan 10,2017 in 教程 read (14235) | 百度已收录 | Author: Leonn 目录 背景 NAT 穿透原理 一个栗子 Ngrok 准备工作 编译服务端 服务端 测试连接 ...

  3. 使用工具ngrok 实现内网穿透(免费)

    使用工具ngrok 实现内网穿透 工具下载:ngrok下载,提取码:5555 使用:

  4. Cpolar实现虚拟机内网穿透,搭建私人云服务器

    Cpolar实现虚拟机内网穿透,搭建私人云服务器 一.Cpolar功能介绍 Cpolar官网   Cpolar是一个安全的内网穿透的服务,可以将内网下的本地服务器通过安全隧道暴漏给公网.允许公网用户可 ...

  5. frp点对点udp方式内网穿透ssh,不走服务器流量

    frp点对点udp方式内网穿透ssh,不走服务器流量 (2019 年 5 月 30 日) frp ssh 安全连接和服务器安全设置 (2019 年 5 月 29 日) frp 控制台监控dashboa ...

  6. Ngrok 实现内网穿透教程(Ngrok 和 Sunny-Ngrok )

    ngrok是什么我这边就不多介绍了,百度一找一大堆.你可以把它理解为内网穿透的工具.(简而言之就是将内网IP映射成对外可访问的域名) Ngrok使用流程如下: 从https://ngrok.com/ ...

  7. 用ngrok做内网穿透

    背景 很多时候,我们都有这样的需求:需要将本地正在开发的服务暴露在公网上,也就是从外网直接访问我们本机上的服务. 正常情况下,这是办不到的,因为我们的本机并没有公网 IP,我们的本机处在内网当中. N ...

  8. CentOS7下使用ngrok搭建内网穿透服务器

    目录 1.简介 1 2. 必要条件 2 2.1.ngrok服务器 2 2.2.域名 2 2.3.ngrok客户端 2 3. 安装依赖包 2 4. 安装golang 2 5. 下载ngrok源码 3 6 ...

  9. ngrok实现内网穿透,让家里的笔记本也能做服务器

    背景 家里淘汰了一台笔记本,windows系统装起来很卡,于是装了个linux系统.这台笔记本有2G内存,奔腾双核处理器,配置比我在阿里云上买的ECS高多了,于是想着给它利用起来.研究了一下,发现ng ...

  10. 废旧Android手机搭建个人服务器:ksweb搭建Web服务器+Termux、Ngrok实现内网穿透

    写在前面: 本篇博客介绍利用废旧手机搭建一个服务器,可以放自己的网页搭建网站 之前闲着没事,低价买了个虚拟主机,放了自己的静态网页,搭建了个人博客引导网站,后来虚拟主机被打死,凑巧了解到相关知识,于是 ...

最新文章

  1. github分段下载
  2. linux常用命令(grep/cut/sed/which)
  3. java中array_Java 中的array数组总结之一
  4. python 把带小数的浮点型字符串转换为整数的解决方案
  5. spark知识点八万字长文最全汇总和高频面试题目
  6. 字符串对比 (STl强制转换字符串)
  7. HarmonyOS之组件通用的XML属性总览
  8. yaml 数组_接口测试:A01_HttpRunner基础_05_YAML格式测试用例
  9. 抖音同款表白神器(按钮漂移)
  10. 十分钟弄懂最快的APP自动化工具uiautomator2
  11. 开课吧:深入了解软件开发原则有哪些?
  12. jQuery加载js脚本
  13. Socket 学习(三).5 UDP 的弱点
  14. 前端程序员也需要知道进程和线程
  15. 转载:获取数据库中的所有表 (C#实现)
  16. vscode html 英文感叹号(!+ tap)快速模板 骨架 无法使用 替代办法
  17. 吃饭,睡觉,打豆豆任务二
  18. 需要一个自习室系统,包括收费、灯控、会员管理、微信及前端订座、一卡通终端,会做的私信我,有偿。
  19. 802.11ac双频
  20. keypair java_Java KeyPairGenerator genKeyPair()用法及代码示例

热门文章

  1. java输出星号图案_求助:如何用Java打印星号~~
  2. win7系统域服务器,win7安装域服务器
  3. 换了一把椅子之后才知道,原来人体工学可以这么香。
  4. springboot如何自定义starter
  5. 算法归总—短除法求最大公约数
  6. Prometheus+Grafana搭建Jmeter性能监控平台
  7. Python学习笔记---day03 Python基础
  8. 从零搭建Hexo博客并部署腾讯云服务器(宝宝级教学)
  9. Javadoc 使用详解
  10. index函数在python中的用法_index函数怎么在python中使用