内网服务器穿透的服务器搭建,ngrok服务器搭建起来,还是比较费事的,因为坑还是不少的,1、go的版本问题,2、bin/go-bindata:命令未找到,3、没有公网ip,也可以通过修改hosts的方式进行实验。
##下载地址
##官方地址
https://github.com/inconshreveable/ngrok
##俺的七牛下载地址
http://yellowcong.qiniudn.com/ngrok-master.zip
1、Centos之Go语言安装-yellowcong ,我当时装的是1.7的版本,但是执行编译,还是需要配置go1.4的版本
2、编译依赖安装
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++
3、Git安装
#由于使用go进行编译的时候,会从github下载代码的
yum intall -y git
#安装依赖包,编译1.4所需要的
yum install gcc glibc-devel
#下载1.4.的安装包
tar -zxvf go1.4.2.linux-amd64.tar.gz
#建立文件夹
mkdir -p /root/go1.4
tar -zxvf
#到1.4的src目录
cd /root/go1.4/go/src
#编译
./all.bash // 也可简单运行 './make.bash'
#拷贝go目录到 go1.4
cp -rf go /root/go1.4
root的目录结构,注意go1.4目录下面,直接就是编译好的文件了
#下载安装包
wget http://yellowcong.qiniudn.com/ngrok-master.zip
#解压安装包
unzip ngrok-master.zip -d ngrok
#指定域名
export NGROK_DOMAIN="yellowcong.com"
#查看设定的域名
echo $NGROK_DOMAIN
#给域名yellowcong.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 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
#拷贝证书到ngrok加压目录的assets
#/usr/local/ngrok/server/ngrok/assets
cp rootCA.pem assets/client/tls/ngrokroot.crt
cp server.crt assets/server/tls/snakeoil.crt
cp server.key assets/server/tls/snakeoil.key
#修改logger.go 配置文件
#vim src/ngrok/log/logger.go
#log "github.com/keepeye/log4go"
修改logger,人家说是国内服务器,必须修改,反正无所谓,修改呗
#查看go语言的环境
go env
#进入到go语言的src目录下,就是自己的go语言目录,是1.7的那个
cd /usr/local/go/go/src
#linux64位, 这个是在go的src目录下
GOOS=linux GOARCH=amd64 ./make.bash
#到ngrok的服务器目录下
cd /usr/local/ngrok/server/ngrok
#拷贝go-bindata 文件,如果不拷贝,就会导致找不到go-bindata包
mkdir bin
cp -rf /usr/local/go/go/bin/go-bindata /usr/local/ngrok/server/ngrok/bin/
#编译
GOOS=linux GOARCH=amd64 make release-server
#win服务端 386(32) amd64(64)
#GOOS=windows GOARCH=amd64 make release-server
#到go的bin目录下,查看是否编译成功
cd $GOBIN
#启动服务端
ngrokd -domain="$NGROK_DOMAIN" -httpAddr=":80"
编译ngrok服务端,编译完成后,编译文件在$GOBIN目录下
$GOBIN目录下有一个ngrokd这个玩意,就是我们的服务器端了
#到ngrok的服务器目录下
cd /usr/local/ngrok/server/ngrok
#编译64位客户端(前提是拷贝了go-bindata 文件)
GOOS=linux GOARCH=amd64 make release-client
#编译好的文件,存在于go的bin目录
cd $GOBIN
#创建一个配置文件ngrok.cfg,内容如下:
vim ngrok.cfg
#4443是ngrok的服务端口
#yellowcong.com 是服务器所在地址
server_addr: "yellowcong.com:4443"
trust_host_root_certs: false
#执行ngrok:
#xxxx 表示ide是xx.yellowcong.com
#confgi 配置文件
#80 表示端口号
ngrok -subdomain solr -config=ngrok.cfg 8080
#下面你是连接情况
Tunnel Status reconnecting
Version 1.7/
Web Interface 127.0.0.1:4040
# Conn 0
Avg Conn Time 0.00ms
由于我没有公网ip,但是又要做实验,所以弄了一个修改hosts的方式来做
####window的hosts文件修改
我修改了windows的etc的hosts文件
C:\Windows\System32\drivers\etc\hosts
#添加域名解析
192.168.66.100 yellowcong.com
192.168.66.100 solr.yellowcong.com
vim /etc/hosts
192.168.66.100 yellowcong.com
###1、make: *** 没有规则可以创建目标“release-server”。 停止。
这个问题是目录应该是go语言的src目录,所以不要弄错了
这个问题是由于需要安装1.4版本的,然后再安装高版本的,低版本的是C语言写的
##### Building Go bootstrap tool.
cmd/dist
ERROR: Cannot find /root/go1.4/bin/go.
Set $GOROOT_BOOTSTRAP to a working Go tree >= Go 1.4.
解决办法
#安装依赖包,编译1.4所需要的
yum install gcc glibc-devel
#下载1.4.的安装包
tar -zxvf go1.4.2.linux-amd64.tar.gz
#建立文件夹
mkdir -p /root/go1.4
tar -zxvf
#到1.4的src目录
cd /root/go1.4/go/src
#编译
./all.bash // 也可简单运行 './make.bash'
#拷贝
cp -rf go /root/go1.4
root的目录结构,注意go1.4目录下面,直接就是编译好的文件了
我的go的bin目录绝对有go-bindata 这个玩意,但是就是识别不到,解决办法是,拷贝go语言的go-bindata到ngrok的bin目录下
#创建目录
mkdir bin
#拷贝go-bindata 文件
cp -rf /usr/local/go/go/bin/go-bindata /usr/local/ngrok/server/ngrok/bin/
http://blog.csdn.net/gebitan505/article/details/48176763
http://www.sunnyos.com/article-show-48.htm
https://github.com/inconshreveable/ngrok/blob/master/docs/DEVELOPMENT.mdl