内网穿透步骤:

1、安装go语言环境并配置环境。
2、下载ngrok源码(可上传源码或安装git下载源码 yum install git)
3、生成证书(本地生成)
4、用新证书替换旧证书
5、编译源码
6、生成对应客户端(window,Mac)
7、启动服务端
8、客户端配置、启动
9、启动本地web项目
10、大功告成,访问公网ip或 域名

一、安装go语言环境并配置环境。

1、下载go语言环境:
wget https://studygolang.com/dl/golang/go1.8.linux-amd64.tar.gz
2、解压:
tar -zxvf go1.8.linux-amd64.tar.gz
3、配置环境:vi /etc/profile 在profile里加上这两句话
export GOROOT=你的go解压地址
export PATH=$PATH:$GOROOT/bin
4、查看go是否安装成功:
go version

二、下载ngrok源码(可上传源码或安装git下载源码 yum install git)

1、安装git: yum install git   (手动上传源码可省略)
2、找一个合适的目录下载ngrok源码:
git clone https://github.com/inconshreveable/ngrok.git  (手动上传源码可省略)

三、生成证书(本地生成)

进入下载好或解压好的ngrok目录下 依次执行命令
 openssl genrsa -out base.key 2048   (无脑复制粘贴)openssl req -new -x509 -nodes -key base.key -days 10000 -subj "/CN=xx.xx.xx.xx" -out base.pem     (xx.xx.xx.xx为ip或域名)openssl genrsa -out server.key 2048     (无脑复制粘贴)openssl req -new -key server.key -subj "/CN=xx.xx.xx.xx" -out server.csr   (xx.xx.xx.xx为ip或域名)echo subjectAltName = IP:xx.xx.xx.xx > extfile.cnf    (xx.xx.xx.xx为ip或域名)openssl x509 -req -in server.csr -CA base.pem -CAkey base.key -CAcreateserial -extfile extfile.cnf -days 10000 -out server.crt

四、用新证书替换旧证书

在下载好或解压好的ngrok目录下 执行覆盖替换
 cp base.pem assets/client/tls/ngrokroot.crt

五、编译源码

在下载好或解压好的ngrok目录下 执行编译(有点久,几分钟)
 make release-server release-client
 (使用 ip 做域名时,随机生成的子域名导致地址错误 例如http://92832de0.1.1.1.1 -> localhost:80:解决办法就是改源码,去掉随机生成 ,在下载好或解压好的ngrok目录下找到src/ngrok/server/tunel.go文件修改源码位置:
         // src/ngrok/server/tunel.go  #89 行// Register for random URLt.url, err = tunnelRegistry.RegisterRepeat(func() string {return fmt.Sprintf("%s://%x.%s", protocol, rand.Int31(), vhost)}, t)
         删掉 【%x.】 【rand.Int31(),】 以及该文件第一行引入的 【math/rand】,重新编译出服务端与客户端即可。)

六、6、生成对应客户端(window,Mac)

编译好源码后,生成客户端(本地电脑使用的)
在下载好或解压好的ngrok目录下 执行命令
 GOOS=windows GOARCH=amd64 make release-client  (windown系统)GOOS=darwin GOARCH=amd64 make release-client  (mac系统)

七、启动服务端

在下载好或解压好的ngrok目录下 执行命令启动
 ./bin/ngrokd -tlsKey=server.key -tlsCrt=server.crt -domain="xx.xx.xx.xx" -httpAddr=":80" -httpsAddr=":443"
(xx.xx.xx.xx为ip或域名,httpAddr、httpsAddr 分别是 ngrok 用来转发 http、https 服务的端口,可以随意指定。ngrokd 还会开一个 4443 端口用来跟客户端通讯(可通过 -tunnelAddr=”:xxx” 指定)。)

八、客户端配置、启动

将生成好的客户端(ngrok目录下 bin/windows_amd64/ngrok.exe),下载到本地发到自己喜欢的目录下
1、在本地同级目录下创建配置文件ngrok.cof内容如下:server_addr: "xx.xx.xx.xx:4443"  (xx.xx.xx.xx为ip或域名)trust_host_root_certs: false
2、在本地同级目录下创建启动脚本startup.bat 内容如下:ngrok -config=ngrok.cfg -log=ngrok.log  8080   (8080为本地项目的端口可以任意改)
3、双击startup.bat 启动客户端

九、启动本地项目

自己操作,注意端口为上面的8080  可以任意改

十、访问公网ip或域名。

访问公网ip或域名就会转发到本地的8080项目上

十一、其他

服务器上ngrok后台运行
 1、安装 yum install screen2、screen -S ngrok( -S后面的名字可以随便取)3、运行ngrok启动命令【./bin/ngrokd -tlsKey=server.key -tlsCrt=server.crt -domain="xx.xx.xx.xx" -httpAddr=":80" -httpsAddr=":443" 】4、直接关掉ssh窗口4、关闭ps -ef|grep screen 然后用kill

参考地址

https://blog.csdn.net/yjc_1111/article/details/79353718 (10分钟教你搭建自己的ngrok服务器)
https://blog.csdn.net/u010444106/article/details/80457985 (阿里云搭建自己的ngrok服务-实现内网穿透)
后面两个很有用
https://www.jianshu.com/p/d308b92e58ea(内网穿透 ngrok 服务器搭建与坑点)
https://blog.csdn.net/min19900718/article/details/87920254(x509: cannot validate certificate for 10.30.0.163 because it doesn't contain any IP SANs)

简单记一下ngrok内网穿透入门步骤(可以直接使用ip,不一定要域名)相关推荐

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

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

  2. ngrok 内网穿透

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

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

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

  4. 小米球ngrok内网穿透

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

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

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

  6. ngrok 内网穿透+实现远程桌面

    最近公司电脑的teamviewer经常被中断,基本上没办法使用了.而且破解越来越难,破解后没多久又被检测到.所以我想着换另一种方案来实现远程控制,公司内网服务器没有公网ip,所以只能进行内网穿透.内网 ...

  7. 小米球配合usbw实现最简单最快速的内网穿透

                                        小米球配合usbw简单实现内网穿透 1.https://manager.xiaomiqiu.com/登录后台注册一个账号拿到属于 ...

  8. 搭建解析内网 linux_Linux 搭建ngrok内网穿透

    准备工作,需要有一台公网IP的服务器用来部署内网穿透的服务端 1.下载源码到GOPATH工作目录的src文件目录下 我的GOPATH是 /root/go/src/ cd /root/go/src/gi ...

  9. 如何让你的本地上的项目不用部署到服务器也能让外网看到?使用ngrok内网穿透实现

    目录 前言 一.准备工作 二.安装ngrok运行环境 (liunx) 三.安装ngrok (liunx) 四.配置ngrok (liunx) 五.生成客户端和服务端并运行ngrok (liunx) 六 ...

最新文章

  1. 如何在 CentOS 7 中安装或升级最新的内核
  2. 在tomcat中部署web项目
  3. 批处理之显示隐藏文件
  4. C# WinFrom 去掉groupbox的边框
  5. linux禁止系统休眠,让linux系统休眠
  6. 2014.9.13模拟赛【数位和乘积】
  7. latex subfigure_latex-图片插入
  8. 10-1-数据库连接池
  9. 从714里连续减去6减几次得0_小学数学1—6年级基础知识整理 ,预习复习都能用...
  10. php upload 缓存_php-使用vich_uploader的liip_imagine无法创建缓存
  11. html{-webkit-text-size-adjust:none;}(取消浏览器最小字体限制)
  12. ADXL362 加速度传感器 模拟SPI MSP430G2553 单片机 读取 程序
  13. MUI在iPhone6P上闪退
  14. Linux系统下操作的常用快捷键
  15. 再见PanDownload ,下一个已经来了。
  16. php微信支付需要哪些设置,如何申请和配置微信支付接口?
  17. 解决PCL报错: Assertion `point_representation_->isValid (point) “Invalid (NaN, Inf) point coordinates
  18. 块交织器5×5 verilog设计及仿真实现
  19. 美团商家的数据指标体系是怎么做的?
  20. flutter flame基本结构

热门文章

  1. 短整型转字符数组,字符数组转短整型
  2. 洛谷P1115最大子段和题解
  3. python scrapy之爬取 zhengfu网站
  4. Shell编程三剑客之awk
  5. 【光驱不停自动弹出 有什么方法可以解决】
  6. 计算机学院邀请函,关于邀请学校邀请函五篇
  7. 凯立德地图版本号/特征码/激活码信息查询方法
  8. 2023研考国家线发布?未上岸的你还有人大与加拿大女王大学金融硕士可选择
  9. Java应用程序的运行机制
  10. html+js实现省市二级联调