公司差事,花生壳限制太多,网络带宽,终端连接数等等,看看了看手头资源还行,自己搭一套
资源情况
1、服务器一台 PC机也行,我用的虚拟机,最主要是要有固定的公网出口
2、域名一个,看资料是说不用域名也可以搞,但是既然有域名了,咱就不费劲了~~
开始安装
1、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、安装go
下载地址:https://studygolang.com/dl
下载包丢到服务器上
解压
wget https://studygolang.com/dl/golang/go1.8.linux-amd64.tar.gz
tar -zxvf go1.8.linux-amd64.tar.gz /usr/local/
目录下即可看见 go 的目录
#go的命令需要做软连接到/usr/bin
ln -s /usr/local/go/bin/* /usr/bin/
设置全局的环境变量
export GOROOT=/usr/local/go #// 程序安装的位置
export GOPATH=/home/go/ #// 项目位置
export PATH=$PATH:$GOROOT/bin:$GOPATH
使环境生效
source /etc/profile
好了 到这 我们的go安装完了 检测安装是否安装成功
go version
go env
3、安装ngrok
为了查找方便 也安装到local目录下
cd /usr/local/
//ngrok下载地址
git clone https://github.com/inconshreveable/ngrok.git
这个地址可以git下载 再传上去 也可以fock到自己项目里
下载完成后可以看到一个 ngrok的文件夹
配置 ngrok的环境变量
export NGROK_PATH=/usr/local/ngrok/
#这里写你自己的域名,不要前缀,比如www.abc.com 填写abc.com (域名已备案)
export NGROK_DOMAIN="abc.com"
4.生成ngrok证书并覆盖原有的证书
cd /usr/local/ngrok
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 -f rootCA.pem assets/client/tls/ngrokroot.crt
cp -f server.crt assets/server/tls/snakeoil.crt
cp -f server.key assets/server/tls/snakeoil.key
到此 安装配置结束
生成服务端
进入ngrok的目录
cd /usr/local/ngrok/
执行生成服务端 其中amd64代表64位的linux系统 如果是32位的 改为:GOARCH=386
GOOS=linux GOARCH=amd64 make release-server
生成成功后 会在ngrok的bin下有一个ngrokd文件夹 即代表成功
生成客户端
和服务端一样
cd /usr/local/ngrok/
GOOS=windows GOARCH=amd64 make release-client
会在ngrok的bin下有一个windows_amd64文件夹 即代表成功
下面是不同系统生成不同客户端的版本 替换GOODS 和GOARCH的值即可
#Linux 平台 32 位系统:GOOS=linux GOARCH=386
#Linux 平台 64 位系统:GOOS=linux GOARCH=amd64
#Windows 平台 32 位系统:GOOS=windows GOARCH=386
#Windows 平台 64 位系统:GOOS=windows GOARCH=amd64
#MAC 平台 32 位系统:GOOS=darwin GOARCH=386
#MAC 平台 64 位系统:GOOS=darwin GOARCH=amd64
#ARM 平台:GOOS=linux GOARCH=arm
服务端的启动
在ngrock下执行
./bin/ngrokd -tlsKey=server.key -tlsCrt=server.crt -domain="abc.club" -httpAddr=":80" -httpsAddr=":443" -tunnelAddr=":4443"
参数说明:
#-domain 访问ngrok是所设置的服务地址生成证书时那个
#-httpAddr http协议端口 默认为80
#-httpsAddr https协议端口 默认为443
#-tunnelAddr 通道端口 默认4443