Ubutun 14.04 64位搭建自己的ngrok服务
本问参考Ubuntu下编译ngrok,搭建自己的ngrok服务,搭建自己的ngrok服务等文章。
部署环境
- 阿里云ECS服务器,经典网络
- CPU: 1核
- 内存: 1 GB
- 操作系统: Ubuntu 14.04 64位
相关下载
- Ngrok源码地址
- [GO语言][5]go1.8.1.linux-amd64.tar.gz下载
安装顺序
- 安装 install hg
sudo apt-get install mercurial
- 下载GO语言
wget https://www.golangtc.com/static/go/1.9/go1.9.linux-arm64.tar.gz
- 下载Ngrok
git clone https://github.com/inconshreveable/ngrok.git
- 解压GO语言
tar -C /usr/local -xzf go1.9.linux-arm64.tar.gz
- vi ~/.bashrc
shell
<ul><li>export GOPATH=/usr/local/go </li>
<li>export PATH=$GOPATH/bin:$PATH</li>
<li>export GOROOT=/usr/local/go</li>
<li>export GOPATH=$PATH:$GOROOT/bin
- 生效配置 source ~/.bashrc
进行ngrok编译domain设置
- export GOPATH=/usr/local/ngrok/
- export NGROK_DOMAIN=”mydomain.cn”
注意,这里的mydomain.cn 为dns中设置的域名
生成证书
- 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 server.key 2048
- openssl req -new -key server.key -subj “/CN=$NGROK_DOMAIN” -out server.csr
- openssl x509 -req -in server.csr -CA rootCA.pem -CAkey rootCA.key -CAcreateserial -out server.crt -days 5000
- 复制证书
- cp rootCA.pem assets/client/tls/ngrokroot.crt
- cp server.crt assets/server/tls/snakeoil.crt
- cp server.key assets/server/tls/snakeoil.key
编译
- make release-server release-client
- GOOS=windows GOARCH=amd64 make release-client
客户端编译其他选项
- **cd ngrok**
- **GOOS=linux GOARCH=amd64 make release-server release-client**
- **GOOS=windows GOARCH=amd64 make release-server release-client**
- **GOOS=darwin GOARCH=amd64 make release-server release-client**
- **GOOS=linux GOARCH=arm make release-server release-client**
运行
启动服务
- ./bin/ngrokd -tlsKey=server.key -tlsCrt=server.crt -domain=”mydomain.com” -httpAddr=”:8081” -httpsAddr=”:8082” -tunnelAddr=”:443”
- 或者
- ./bin/ngrokd -tlsKey=server.key -tlsCrt=server.crt -domain=”mydomain.cn” -httpAddr=”:8081”
注意,这里httpAddr和httpsAddr是 ngrok服务 转发 http 和 https 请求的端口,为了避免和 Nginx/Apache 等的 80 端口冲突,
使用了8081和8082(后面会有步骤进行 80 端口转发,这里先不表)。
客户端
ngrok.exe -config=ngrok.cfg -log=ngrok.log -subdomain=test 80
- 其中ngrok.cfg为如下server_addr: "mudomain.cn:4443" trust_host_root_certs: false