本帖最后由 chengmeiqq 于 2017-12-29 14:40 编辑
CentOS 7 64位搭建ngrok服务器!!给k3.k3c.K2.k2p路由器使用!!开机运行服务端客户端!!
一、前提条件
一台云 CentOS 7 64位 服务器,一个域名(二级域名也可以),并且域名正确解析到云服务器
二、提前准备工作1、安装gcc
2.安装git
3.安装GO语言环境
下载:看你服务器安装如果没有安装的话执行!! yum install wget
- wget https://storage.googleapis.com/golang/go1.8.linux-amd64.tar.gz
复制代码 解压安装:
- tar -C /usr/local/ -zxvf go1.8.linux-amd64.tar.gz
复制代码 添加环境变量,编辑: 在最后添加:提示执行上面vi /etc/profile命令之后 直接按键盘 I 进入编辑模式 然后复制下面到文件最下面 然后 “esc” ":" "wq" "!" “回车” 意思是保存退出! - #go lang
- export GOROOT=/usr/local/go
- export PATH=$PATH:$GOROOT/bin
复制代码 使环境变量生效:
检查是否安装成功: - go version #go version go1.8 linux/amd64表示安装成功
复制代码- git --version #git version 1.8.3.1 表示成功
复制代码
三、在服务器上搭建Ngrok服务
1.下载ngrok源码
- cd /usr/local/src
- git clone https://github.com/inconshreveable/ngrok.git
复制代码
2.生成证书在自生成证书时需要一个解析到服务器上的主域名(二级域名也可以,本人已经验证过),现在以”p7p6.com”为例: 一行一行执行代码!- cd ngrok
- #这里修改为自己的域名
- export NGROK_DOMAIN="p7p6.com"
- openssl genrsa -out rootCA.key 2048
- openssl req -x509 -new -nodes -key rootCA.key -subj "/CN=$NGROK_DOMAIN" -days 5000 -out rootCA.pem
- openssl genrsa -out device.key 2048
- openssl req -new -key device.key -subj "/CN=$NGROK_DOMAIN" -out device.csr
- openssl x509 -req -in device.csr -CA rootCA.pem -CAkey rootCA.key -CAcreateserial -out device.crt -days 5000
复制代码
将新生成的证书替换,执行下面命令后 “y” 回车 一行一行执行代码! - cp rootCA.pem assets/client/tls/ngrokroot.crt
- cp device.crt assets/server/tls/snakeoil.crt
- cp device.key assets/server/tls/snakeoil.key
复制代码
3.编译生成ngrokd(服务端)- GOOS=linux GOARCH=amd64 make release-server
复制代码 编译成功后在/usr/local/src/ngrok/bin/目录下可找到ngrokd服务端文件!
4.编译生成ngrok(客户端)#这里是交叉编译,#当前系统可用go env查看 我们编译一个win7 64位的客户端来测试下!!
- 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
- /usr/local/src/ngrok/bin/ngrokd -domain="p7p6.com" -httpAddr=":80"
复制代码 给权限:- chmod 755 /usr/local/src/ngrok/start.sh
复制代码 2.新建ngrok启动脚本文件
- sudo vi /etc/init.d/ngrok
复制代码 文件内容:提示 运行sudo vi /etc/init.d/ngrok之后 !!直接按键盘 I 进入编辑模式,然后复制下面内容 然后 “esc” ":" "wq" "!" “回车” 意思是保存退出!
- #!/bin/sh
- ### BEGIN INIT INFO
- # Provides: ngrok
- # Required-Start:
- # Required-Stop:
- # Default-Start: 2 3 4 5
- # Default-Stop: 0 1 6
- # Short-Description: Start or stop the ngrok Proxy.
- ### END INIT INFO
- ngrok_path=/usr/local/src/ngrok/
- case "$1" in
- start)
- echo "start ngrok service.."
- sh ${ngrok_path}/start.sh
- ;;
- *)
- exit 1
- ;;
- esac
复制代码 3.ngrok脚本文件 给权限
- cd /etc/init.d
- chmod 755 ngrok
复制代码 4.添加启动服务 ngrok5.测试服务是否能启动成功6.查看自启动的服务 是否有 nrgok !!- 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 修改成你的域名
- server_addr: "p7p6.com:4443"
- trust_host_root_certs: false
- tunnels:
- http:
- subdomain: "www"
- proto:
- http: "8090"
-
- https:
- subdomain: "www"
- proto:
- https: "8091"
- ssh:
- remote_port: 2222
- proto:
- tcp: "22"
复制代码 windows打开CMD输入
- D:
- cd D:\windows_amd64
- 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 内容如下:- server_addr: "p7p6.com:4443"
- trust_host_root_certs: false
- tunnels:
- http:
- subdomain: "www"
- proto:
- http: "80"
-
- https:
- subdomain: "www"
- proto:
- https: "8091"
- ssh:
- remote_port: 2222
- proto:
- tcp: "22"
复制代码 给文件夹权限:
登陆路由器 192.168.2.1 设置功能-高级设置-启动任务加上:
- sleep 2 && cd /opt/ngrok/ && ./ngrok -config ngrok.cfg start http https ssh 2>&1 &
复制代码
服务器跟路由器全部重启之后可以正常访问了!!!
完完完完完完完完完完完完完完完完
-----------------------------------------------------------------------------------------------------------
补充 单独启动命令
liunx启动
- ./ngrok -config ngrok.cfg start http https ssh
复制代码 windows启动命令:
- ngrok.exe -config ngrok.cfg start http https ssh
复制代码 配置文件说明:
- server_addr: "uboff.com:8083" 服务器跟端口
- trust_host_root_certs: false
- tunnels:
- http: 这个是启动的名字 不可重复
- subdomain: "www" 你前置的域名不可重复
- proto:
- http: "8090" 指向内网端口
- http1: 这个是启动的名字 不可重复
- subdomain: "www" 你前置的域名
- proto:
- http: "192.168.10.1:8090" 这个是可以指向内网任何ip 不填IP地址就只指向本机127.0.0.1
-
- https:
- subdomain: "www"
- proto:
- https: "8091"
-
- ssh:
- remote_port: 2222 这个2222是外部端口
- proto:
- tcp: "22" 内网端口
- 这个启动的话就是这样了
- ./ngrok -config ngrok.cfg start http http1 https ssh
复制代码
|