找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
广告投放联系QQ68610888
查看: 52590|回复: 275

[k3] 搭建ngrok服务器!!给k3.k3c.K2.k2p路由器使用!!详细教程!!!

 火... [复制链接]
本帖最后由 chengmeiqq 于 2017-12-29 14:40 编辑

CentOS 7 64位搭建ngrok服务器!!给k3.k3c.K2.k2p路由器使用!!开机运行服务端客户端!!

一、前提条件     
一台云 CentOS 7 64位 服务器,一个域名(二级域名也可以),并且域名正确解析到云服务器


二、提前准备工作1、安装gcc  
  1. yum install gcc
复制代码

2.安装git
  1. yum install git
复制代码

3.安装GO语言环境
   到网站https://golang.org/dl/查找最新的版本链接,我的服务器是64位的,当前最新版本是:https://storage.googleapis.com/golang/go1.8.linux-amd64.tar.gz
   下载:看你服务器安装如果没有安装的话执行!!  yum install wget
  1. wget https://storage.googleapis.com/golang/go1.8.linux-amd64.tar.gz
复制代码
解压安装:
  1. tar -C /usr/local/ -zxvf go1.8.linux-amd64.tar.gz
复制代码
添加环境变量,编辑:
  1. vi /etc/profile
复制代码
在最后添加:提示执行上面vi /etc/profile命令之后 直接按键盘 I 进入编辑模式 然后复制下面到文件最下面 然后 “esc” ":" "wq" "!"  回车   意思是保存退出!
  1. #go lang
  2. export GOROOT=/usr/local/go
  3. export PATH=$PATH:$GOROOT/bin
复制代码
使环境变量生效:
  1. source /etc/profile
复制代码
检查是否安装成功:
  1. go version       #go version go1.8 linux/amd64表示安装成功
复制代码
  1. git --version     #git version 1.8.3.1 表示成功
复制代码

三、在服务器上搭建Ngrok服务


1.下载ngrok源码                           
  1. cd /usr/local/src
  2. git clone https://github.com/inconshreveable/ngrok.git
复制代码

2.生成证书
在自生成证书时需要一个解析到服务器上的主域名(二级域名也可以,本人已经验证过),现在以”p7p6.com”为例: 一行一行执行代码!
  1. cd ngrok

  2. #这里修改为自己的域名
  3. export NGROK_DOMAIN="p7p6.com"

  4. openssl genrsa -out rootCA.key 2048

  5. openssl req -x509 -new -nodes -key rootCA.key -subj "/CN=$NGROK_DOMAIN" -days 5000 -out rootCA.pem

  6. openssl genrsa -out device.key 2048

  7. openssl req -new -key device.key -subj "/CN=$NGROK_DOMAIN" -out device.csr

  8. openssl x509 -req -in device.csr -CA rootCA.pem -CAkey rootCA.key -CAcreateserial -out device.crt -days 5000
复制代码

将新生成的证书替换,执行下面命令后 “y” 回车 一行一行执行代码!
  1. cp rootCA.pem assets/client/tls/ngrokroot.crt
  2. cp device.crt assets/server/tls/snakeoil.crt
  3. cp device.key assets/server/tls/snakeoil.key
复制代码

3.编译生成ngrokd(服务端)
  1. GOOS=linux GOARCH=amd64 make release-server
复制代码
编译成功后在/usr/local/src/ngrok/bin/目录下可找到ngrokd服务端文件!

4.编译生成ngrok(客户端)#这里是交叉编译,#当前系统可用go env查看  我们编译一个win7 64位的客户端来测试下!!
  1. GOOS=windows GOARCH=amd64 make release-client
复制代码
以下是参考编译不同版本客户端命令:个人建议全部编译保存!

GOOS=linux GOARCH=arm make release-client       ARM平台 K3路由器

GOOS=linux GOARCH=amd64 make release-client     Linux平台64位系统
GOOS=linux GOARCH=386 make release-client       Linux平台32位系统

GOOS=windows GOARCH=386   make release-client   Windows平台32位系统   
GOOS=windows GOARCH=amd64 make release-client   Windows平台64位系统
三、服务器后台开机启动运行ngrok服务端:

1.以下内容新建一个 start.sh 文件  放到  /usr/local/src/ngrok/start.sh
  1. /usr/local/src/ngrok/bin/ngrokd -domain="p7p6.com" -httpAddr=":80"
复制代码
给权限:
  1. chmod 755 /usr/local/src/ngrok/start.sh
复制代码
2.新建ngrok启动脚本文件
  1. sudo vi /etc/init.d/ngrok
复制代码
文件内容:提示 运行sudo vi /etc/init.d/ngrok之后  !!直接按键盘 I 进入编辑模式,然后复制下面内容 然后 “esc” ":" "wq" "!"  “回车”  意思是保存退出!
  1. #!/bin/sh
  2. ### BEGIN INIT INFO
  3. # Provides:          ngrok
  4. # Required-Start:   
  5. # Required-Stop:     
  6. # Default-Start:     2 3 4 5
  7. # Default-Stop:      0 1 6
  8. # Short-Description: Start or stop the ngrok Proxy.
  9. ### END INIT INFO

  10. ngrok_path=/usr/local/src/ngrok/
  11. case "$1" in
  12.         start)
  13.                 echo "start ngrok service.."
  14.                 sh ${ngrok_path}/start.sh
  15.                 ;;
  16.         *)
  17.         exit 1
  18.         ;;
  19. esac
复制代码
3.ngrok脚本文件 权限
  1. cd /etc/init.d
  2. chmod 755 ngrok
复制代码
4.添加启动服务 ngrok
  1. chkconfig --add  ngrok
复制代码
5.测试服务是否能启动成功
  1. service ngrok start
复制代码
6.查看自启动的服务 是否有 nrgok !!
  1. chkconfig    #执行这个代码如果出现后面的就OK了!!   ngrok                  0:off        1:off        2:on        3:on        4:on        5:on        6:off
复制代码
服务器ngrok的服务端开机自动启动成功了!!!

四、客户端运行ngrok:

windows启动方法:

用这个工具连接 WinSCP.exe 服务器 我们的客户端win7-64 位编译好的 /usr/local/src/ngrok/bin/windows_amd64/ngrok.exe 直接把windows_amd64文件夹下载到自己电脑的D盘根目录!
下载到电脑D盘之后在windows_amd64目录下新建一个ngrok.cfg文件,内容如下:
p7p6.com 修改成你的域名
  1. server_addr: "p7p6.com:4443"
  2. trust_host_root_certs: false
  3. tunnels:
  4.   http:
  5.     subdomain: "www"
  6.     proto:
  7.       http: "8090"
  8.       
  9.   https:
  10.     subdomain: "www"
  11.     proto:
  12.       https: "8091"

  13.   ssh:
  14.     remote_port: 2222
  15.     proto:
  16.       tcp: "22"
复制代码
windows打开CMD输入
  1. D:
  2. cd D:\windows_amd64
  3. ngrok.exe -config ngrok.cfg start http https ssh
复制代码


五、k3 路由器开机自动启动ngrok客户端 (很多路由器都可以测试为K3刷官方修改的固件1.5V版本)

K3路由器运行客户端
服务器上面的客户端文件下载 /usr/local/src/ngrok/bin/linux_arm/ngrok 到电脑桌面!!
将路由器opt文件夹里面新建一个ngrok文件夹!  吧下载到桌面的ngrok文件传到/opt/ngrok/


然后新建一个文件 ngrok.cfg 内容如下:
  1. server_addr: "p7p6.com:4443"
  2. trust_host_root_certs: false
  3. tunnels:
  4.   http:
  5.     subdomain: "www"
  6.     proto:
  7.       http: "80"
  8.       
  9.   https:
  10.     subdomain: "www"
  11.     proto:
  12.       https: "8091"

  13.   ssh:
  14.     remote_port: 2222
  15.     proto:
  16.       tcp: "22"
复制代码
给文件夹权限:
  1. chmod -R 777 /opt/ngrok/
复制代码



登陆路由器 192.168.2.1  设置功能-高级设置-启动任务加上:
  1. sleep 2 && cd /opt/ngrok/ && ./ngrok -config ngrok.cfg start http https ssh 2>&1 &
复制代码

服务器跟路由器全部重启之后可以正常访问了!!!


完完完完完完完完完完完完完完完完
-----------------------------------------------------------------------------------------------------------
补充 单独启动命令

liunx启动
  1. ./ngrok -config ngrok.cfg start http https ssh
复制代码
windows启动命令:
  1. ngrok.exe -config ngrok.cfg start http https ssh
复制代码
配置文件说明:
  1. server_addr: "uboff.com:8083"  服务器跟端口
  2. trust_host_root_certs: false
  3. tunnels:
  4.   http:  这个是启动的名字   不可重复
  5.     subdomain: "www"   你前置的域名不可重复
  6.     proto:
  7.       http: "8090"  指向内网端口

  8.   http1:  这个是启动的名字  不可重复
  9.     subdomain: "www"   你前置的域名
  10.     proto:
  11.       http: "192.168.10.1:8090"  这个是可以指向内网任何ip  不填IP地址就只指向本机127.0.0.1           
  12.   
  13. https:
  14.     subdomain: "www"
  15.     proto:
  16.       https: "8091"

  17.   ssh:
  18.     remote_port: 2222  这个2222是外部端口
  19.     proto:
  20.       tcp: "22"  内网端口


  21. 这个启动的话就是这样了

  22. ./ngrok -config ngrok.cfg start http http1 https ssh
复制代码




本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×

评分

参与人数 12恩山币 +10 收起 理由
wwb*** + 1 我来恩山就是为了撩你!
abo*** + 1 强大的恩山!(以下重复1万次)
nin*** + 1 我来恩山就是为了撩你!
nyh*** + 1 请问一下Token怎么设置?
f*** + 1 我来恩山就是为了撩你!
gee*** + 1 我来恩山就是为了撩你!
Gao*** + 1 强大的恩山!(以下重复1万次)
go*** + 1 我来恩山就是为了撩你!
cha*** -1 有才
Alct*** + 1 谢谢以后需要会使用的
会飞*** + 1 强大的恩山!(以下重复1万次)
sam*** + 1 我对你的敬仰犹如江水滔滔,我上朝鲜战场后一定写信给你!!!

查看全部评分

太棒了,很详细
回复

使用道具 举报

来自手机 | 显示全部楼层
楼主,k3上能不能加设ngrok服务器。求教程。
回复

使用道具 举报

不知道是什么,但是好强大。估计也有用。先留着。。感谢大神分享
回复

使用道具 举报

我对你的敬仰犹如江水滔滔,我上朝鲜战场后一定写信给你!!!
回复

使用道具 举报

        我来恩山就是为了撩你!
回复

使用道具 举报

来自手机 | 显示全部楼层
ngrok有严重的内存泄露问题,建议用frp代替ngrok
回复

使用道具 举报

 楼主| | 显示全部楼层
大森林之主 发表于 2018-1-25 19:26
大神您好,按您的教程,Linux搭建Ngrok 并成功生成客户端。但做到开机启动ngrok服务端时碰上了麻烦。
给s ...

吧下面代码新建一个 文件  start.sh 文件  放到  /usr/local/src/ngrok/start.sh
域名换成你自己的


  1. /usr/local/src/ngrok/bin/ngrokd -domain="p7p6.com" -httpAddr=":80"
复制代码

回复

使用道具 举报

大神您好,按您的教程,Linux搭建Ngrok 并成功生成客户端。但做到开机启动ngrok服务端时碰上了麻烦。
给start.sh 权限时提示没有发现这个文件.我用winSCP  查看确实没有这个文件,请问该如何解决呢? @chengmeiqq
回复

使用道具 举报

非常好的帖子,恩山论坛真的是高手如云,这是最有价值的一个论坛!
回复

使用道具 举报

 楼主| | 显示全部楼层
lily339 发表于 2018-1-4 18:22
楼主,搬瓦工能不能搭?搭了以后怎么用,主要是摄像头想外网看,这类的教程太少了,放狗搜看了个半懂

直接映射你想要映射的端口就可以远程连接看你摄像头了啊!
回复

使用道具 举报

楼主,搬瓦工能不能搭?搭了以后怎么用,主要是摄像头想外网看,这类的教程太少了,放狗搜看了个半懂
回复

使用道具 举报

支持楼主!!
回复

使用道具 举报

支持楼主!!
回复

使用道具 举报

谢谢楼主!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

欢迎大家光临恩山无线论坛上一条 /1 下一条

有疑问请添加管理员QQ86788181|手机版|小黑屋|Archiver|恩山无线论坛(常州市恩山计算机开发有限公司版权所有) ( 苏ICP备05084872号 )

GMT+8, 2024-5-10 17:41

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

| 江苏省互联网有害信息举报中心 举报信箱:js12377 | @jischina.com.cn 举报电话:025-88802724 本站不良内容举报信箱:68610888@qq.com 举报电话:0519-86695797

快速回复 返回顶部 返回列表