首页 > 学院 > 开发设计 > 正文

搭建自己的ngrok服务器

2019-11-06 09:37:32
字体:
来源:转载
供稿:网友

1.准备工作:

贴出我自己的环境:centos7 64

1.软件:

git,go,ngrok打包下载: 链接:http://pan.baidu.com/s/1c2tbOEc 密码:dqv5 go全部版本下载地址:http://www.golangtc.com/download

2.安装git

1、安装git,我安装的是2.6版本,防止会出现另一个错误,安装git所需要的依赖包

yum -y install zlib-devel openssl-devel perl hg cpio expat-devel gettext-devel curl curl-devel perl-ExtUtils-MakeMaker hg wget gcc gcc-c++

2、下载git

卸载其他的git:

yum -y remove git*cd /usr/local

下载git:

wget https://www.kernel.org/pub/software/scm/git/git-2.6.0.tar.gz

3、解压git

tar zxvf git-2.6.0.tar.gz

4、编译git

cd git-2.6.0./configure --PRefix=/usr/local/gitmakemake install

5、创建git的软连接

ln -s /usr/local/git/bin/* /usr/bin/

3.安装go环境

准备go环境,我的系统是64位的centos所以我下载amd64的包

1、下载go的软件包

cd /usr/localwget http://www.golangtc.com/static/go/1.4.2/go1.4.2.linux-amd64.tar.gz

2、解压出来可以随便指定位置

tar -zxvf go1.4.2.linux-amd64.tar.gz

3、go的命令需要做软连接到/usr/bin

ln -s /usr/local/go/bin/* /usr/bin/

4.编译ngrok

注:这里把ip地址换成自己的;

git clone https://github.com/inconshreveable/ngrok.gitexport GOPATH=/usr/local/ngrok/export NGROK_DOMAIN="ngrok.baidu.com"cd ngrok

5.为域名生成证书

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

6.在软件源代码目录下面会生成一些证书文件,我们需要把这些文件拷到指定位置(如果有确认提示: 输入y确认即可)

cp rootCA.pem assets/client/tls/ngrokroot.crtcp server.crt assets/server/tls/snakeoil.crtcp server.key assets/server/tls/snakeoil.key

7.如果是在国内的服务器需要改,香港或者国外的服务器不需要

vi /usr/local/ngrok/src/ngrok/log/logger.golog "github.com/keepeye/log4go"

8.指定编译环境变量,如何确认GOOS和GOARCH,可以通过go env来查看,编译服务端

cd /usr/local/go/srcGOOS=linux GOARCH=amd64 ./make.bashcd /usr/local/ngrok/GOOS=linux GOARCH=amd64 make release-server

9.编译客户端(根据自身情况选择相应的客户端):

注:编译后的客户端在/usr/local/ngrok/bin下:

linux 64位操作系统使用下面的命令:

cd /usr/local/go/srcGOOS=linux GOARCH=amd64 ./make.bashcd /usr/local/ngrok/GOOS=linux GOARCH=amd64 make release-client

mac os 64位操作系统使用下面的命令:

cd /usr/local/go/srcGOOS=darwin GOARCH=amd64 ./make.bashcd /usr/local/ngrok/GOOS=darwin GOARCH=amd64 make release-client

Windows64位操作系统使用下面的命令:

cd /usr/local/go/srcGOOS=windows GOARCH=amd64 ./make.bashcd /usr/local/ngrok/GOOS=windows GOARCH=amd64 make release-client

10.客户端配置文件ngrok.cfg

注:这里把ip地址换成自己的; 新建一个ngrok.cfg配置的文件放在客户端同一目录,内容如下:

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

11.服务端启动

/usr/local/ngrok/bin/ngrokd -domain="$NGROK_DOMAIN" -httpAddr=":80"

如果重启过服务器,请用下面的命令再次启动ngrok服务端:

/usr/local/ngrok/bin/ngrokd -domain="ngrok.baidu.com" -httpAddr=":80"

12.客户端启动

linux客户端启动命令:

./ngrok -config=./ngrok.cfg -subdomain=blog 80

windowns客户端启动命令:

ngrok -config=./ngrok.cfg -subdomain=blog 80

如果想在linux的后台运行:

setsid ./ngrok -config=./ngrok.cfg -subdomain=test 80

13.打开80,4443端口

firewall-cmd --zone=public --add-port=80/tcp --permanentfirewall-cmd --zone=public --add-port=4443/tcp --permanentfirewall-cmd --reload

到这里整个ngrok就搭建成功了,如果有什么问题或建议欢迎给我留言,么么哒!

结语:搭建属于自己的ngrok服务器,实现内网穿透,外网访问内网,可本地开发微信不需要上传服务器


4.问题总汇,以下非重点,出现问题再看

出现下面这个错误说明需要安装hg:

package code.google.com/p/log4go: exec: "hg": executable file not found in $PATH

解决办法:

yum install hg -y

编译到 go get gopkg.in/yaml.v1 的时候卡住不走了,说明是git比较低,版本需要大于1.7.9.5以上

fatal: Unable to find remote helper for 'https'

出现这个问题,可以重新安装 curl curl-devel 然后再重装git 安装git-core

wget https://www.kernel.org/pub/software/scm/git/git-core-0.99.6.tar.gztar zxvf git-core-0.99.6.tar.gzcd git-core-0.99.6make prefix=/usr/libexec/git-core installexport PATH=$PATH:/usr/libexec/git-core/

感谢:http://www.sunnyos.com/article-show-48.html提供资料和思路


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表