内网穿透软件ngrok使用教程详解 配合本地路由器

suoniao 2021-01-26
需要:0索币

一、服务器端搭建:
1、所需条件:
域名,服务器,winscp,xshell

2、预先准备
将域名设置泛解析到自己服务器上,空解析也做上

3、服务器端生成自己的openssl证书

  1. mkdir ngrok
  2. openssl genrsa -out rootCA.key 2048
  3. openssl req -x509 -new -nodes -key rootCA.key -subj "/CN=exp.com" -days 5000 -out rootCA.pem
  4. openssl genrsa -out device.key 2048
  5. openssl req -new -key device.key -subj "/CN=exp.com" -out device.csr
复制代码



将exp.com换成自己的域名
此时,ngrok下面应该有6个证书

4、将服务端文件文件准备
链接: http://pan.baidu.com/s/1i3rR3ed 密码: 9gd2,通过winscp上传至解压至放有6个证书的ngrok文件下 执行

  1. ./bin/ngrokd -domain="exp.com" -httpAddr=":80" -httpsAddr=":443" -tlsCrt=device.crt -tlsKey=device.key -tunnelAddr=":4443"
复制代码


简单介绍:domain为自己的域名,httpAddr为服务器端http代理端口,如端口被占用可自己指定,tlsCrt为tls加密证书,tunnelAddr为客户端与服务器端连接端口
如果没报错,ok


5、服务器端后台运行
ngrokd这个项目比较傲娇一点,通过&后台挂起或者supervisor服务形式都无法放后台运行,没办法,只能出大招,通过screen方式运行。
$screen
执行后出现新的窗口,./bin/ngrokd -domain="exp.com" -httpAddr=":80" -httpsAddr=":443" -tlsCrt=device.crt -tlsKey=device.key -tunnelAddr=":4443" 执行后可将窗口关闭,ngrokd即在后台运行,若想了解状态,可重新打开任意窗口,输入screen -ls找到自己ngrokd这个窗口的编号,通过screen -r 编号 的形式重新打开该窗口


至此,服务端部署完毕。


二、路由端


1、打开路由端ssh功能,通过xshell ssh至路由。
2、链接:http://pan.baidu.com/s/1c0bMKne 密码:a4j5该文件通过winscp方式上传到jffs文件下(其实随意,记得在哪就行)
3、解压得到tunnel和default.json两个文件。

  1. tar -zxvf tunnel.tar.gz
复制代码



4、vi default.json编辑配置文件,i进入编辑模式,将server改为自己的域名,subdomin为该设备的访问域名,如subdomin为test,即可通过test.exp.com访问自己设备,但若更改服务器httpAddr端口号不是80,如8000,要输入test.exp.com:8000访问,localhost 为代理后的ip,根据自己的路由或nas调整为10.1.1.1或192.168.1.1 通过按esc后输入:wq保存退出
5、编辑好执行

  1. ./tunnel -c defaut.json
复制代码



若出现proxy ok,此时内网穿透完成。
6、路由端可通过

  1. ./tunnel -c defaut.json -p /tmp/tunnel.pid
复制代码


来完成后台运行。

回帖
  • 消灭零回复
广告位招租 100元/月 广告位招租 100元/月
相关主题
内网穿透反向代理库frp的实现原理分析一 0
内网穿透软件ngrok使用教程详解 配合本地路由器 0
内网穿透工具Ngrok的实现原理 0
frps内网穿透实现原理及其源码分析详解 0
go语言内网穿透工具FRP实现原理分析 0
frp通过自定义域名访问部署于内网的 web 服务 0
原来EUC-CN是gb2312编码的一种表示方法 0
索鸟快传2.1.0版本发布 0
golang网络数据读取timeout的处理 – 以SetReadDeadline为例 0
索鸟网广告位招租 0
golang利用通道chan实现一个通用的TCP连接池 0
frpc和frps的交互流程详解了解了frp是如何进行TCP代理的 0
golang实现内存池 go语言字节池byte pool实现代码 0
golang网络编程之基于TCP协议实现长连接 golang心跳检测 0
国产光刻机产业链最新核心材料ArF 193nm光刻胶通过用户认证 0
javascript数组相关函数length属性、delete关键字、pop()栈方法、shift() 0
Qt为我们提供了几个可以用于线程Sleep的函数msleep和usleep 0
QT程序闪退错误捕获教程利用DbgHelp 错误调试技术 0
简单快速修改Qtcreator项目工程的名称 0
golang 的interface接口类型断言 0
相关主题
原来EUC-CN是gb2312编码的一种表示方法 0
索鸟快传2.1.0版本发布 0
golang网络数据读取timeout的处理 – 以SetReadDeadline为例 0
索鸟网广告位招租 0
golang利用通道chan实现一个通用的TCP连接池 0
frpc和frps的交互流程详解了解了frp是如何进行TCP代理的 0
golang实现内存池 go语言字节池byte pool实现代码 0
golang网络编程之基于TCP协议实现长连接 golang心跳检测 0
国产光刻机产业链最新核心材料ArF 193nm光刻胶通过用户认证 0
javascript数组相关函数length属性、delete关键字、pop()栈方法、shift() 0
Qt为我们提供了几个可以用于线程Sleep的函数msleep和usleep 0
QT程序闪退错误捕获教程利用DbgHelp 错误调试技术 0
简单快速修改Qtcreator项目工程的名称 0
golang 的interface接口类型断言 0
golang类型断言type的使用 0
golang依赖包管理 mod使用教程 0
golang表单验证库validator 0
如何使用Go语言实现一个简单的异步任务框架呢?生产者消费者模型 0
内网穿透反向代理工具frp实现TCP协议代理源码分析 0
内网穿透反向代理库frp的实现原理分析一 0