NutzCN Logo
问答 nutz社区的ngrok服务器端咋编译的?
发布于 3078天前 作者 wendal 3933 次浏览 复制 上一个帖子 下一个帖子
标签: ngrok

应群众要求, 自问自答

21 回复

首先,前提条件

一个独立的域名, 独立ip

https证书, 可以到wosign获取一个免费的证书

在wosign申请成功后,会下载一个压缩包,里面有For Nginx的版本, 解压出来2个文件备用

安装Golang

先安装Golang, 如果已经安装过无视

cd /opt
wget https://storage.googleapis.com/golang/go1.5.1.linux-amd64.tar.gz
tar xf go1.5.1.linux-amd64.tar.gz
mkdir /opt/gopath
export GOPATH=/opt/gopath

下载ngrok源码

这里说的源码指nutz社区修改过的版本

cd /opt
git clone https://github.com/wendal/ngrok.git

覆盖https证书

将之前备好的https证书上传到服务器,改名为snakeoil.crt和snakeoil.key, 覆盖到 /opt/ngrok/assets/server/tls

编译

export GOPATH=/opt/gopath
export PATH=/opt/go/bin:$PATH
cd /opt/ngrok
make release

等等等, 如无意外就能编译成功

运行

如果是nutz社区版ngrok,确保redis已经运行.

/opt/ngrok/bin/ngrokd -domain=wendal.cn -httpAddr=:9080 -httpsAddr=:8443

这样客户端就可以访问了

提醒一下, nutz社区修改版ngrok是配合nutz-book-project里面的NgrokModule, 如需匿名及随机域名, 用原版ngrok原版进行编译就好了

遇到问题

[root@VM0396 ngrok]# make release
make: *** No rule to make target `release'.  Stop.
[root@VM0396 ngrok]# make release

make: *** No rule to make target `release'.  Stop.
[root@VM0396 ngrok]# pwd
/opt/ngrok
[root@VM0396 ngrok]# ll
total 36
drwxr-xr-x. 4 root root 4096 Nov 19 10:03 assets
-rw-r--r--. 1 root root  152 Nov 19 10:03 circle.yml
drwxr-xr-x. 2 root root 4096 Nov 19 10:03 contrib
-rw-r--r--. 1 root root  199 Nov 19 10:03 CONTRIBUTORS
drwxr-xr-x. 2 root root 4096 Nov 19 10:03 docs
-rw-r--r--. 1 root root  551 Nov 19 10:03 LICENSE
-rw-r--r--. 1 root root 1433 Nov 19 10:03 Makefile
-rw-r--r--. 1 root root  621 Nov 19 10:03 README.md
drwxr-xr-x. 3 root root 4096 Nov 19 10:03 src

单独make

[root@VM0396 ngrok]# make
go fmt ngrok/...
go: cannot find GOROOT directory: /usr/local/go
make: *** [fmt] Error 2
[root@VM0396 ngrok]# make
go fmt ngrok/...
go: cannot find GOROOT directory: /usr/local/go
make: *** [fmt] Error 2

缺GOROOT, 那就export一下

export GOROOT=/opt/go

嗯 现在在现在 老慢了

go fmt ngrok/...
bin/go-bindata -nomemcopy -pkg=assets -tags=debug \
		-debug=true \
		-o=src/ngrok/client/assets/assets_debug.go \
		assets/client/...
bin/go-bindata -nomemcopy -pkg=assets -tags=debug \
		-debug=true \
		-o=src/ngrok/server/assets/assets_debug.go \
		assets/server/...
go get -tags 'debug' -d -v ngrok/...
Fetching https://gopkg.in/yaml.v1?go-get=1
Parsing meta tags from https://gopkg.in/yaml.v1?go-get=1 (status code 200)
get "gopkg.in/yaml.v1": found meta tag main.metaImport{Prefix:"gopkg.in/yaml.v1", VCS:"git", RepoRoot:"https://gopkg.in/yaml.v1"} at https://gopkg.in/yaml.v1?go-get=1
gopkg.in/yaml.v1 (download)

卡这了

恩,那是client的库, 执行这个吧

make release-server

是不是必须用 make release 这个命令
我只用了make 这命令

一样是漫长的等待 这是台湾的服务器

@Rekoe 那也只能等咯

@wedal
不行卡在那不动了

@wendal
这个命令怎么让它后台运行

/opt/ngrok/bin/ngrokd -domain=rekoe.com -httpAddr=:9080 -httpsAddr=:8443
添加回复
请先登陆
回到顶部