ngrok搭建服务器(超级详细)

前言:

  1. 我一直都在usr/local文件下操作
  2. 有不懂的同学给我留言
  3. 我没有修改源码,只是测试能否生成服务端文件,有需要的同学可以修改源码
    使用 ip 做域名时,随机生成的子域名导致地址错误解决办法就是改源码,去掉随机生成 ,在ngrok目录下找到 src/ngrok/server/tunel.go文件,第89行 // src/ngrok/server/tunel.go #89 行 // Register for random URL t.url, err = tunnelRegistry.RegisterRepeat(func() string { return fmt.Sprintf("%s://%x.%s", protocol, rand.Int31(), vhost) }, t) 删掉 【%x.】【rand.Int31(),】 以及该文件第一行引入的【math/rand】然后再编译服务端与客户端即可。

ngrok安装说明 1.安装GO语言 1.1下载GO语言安装包 wget https://storage.googleapis.com/golang/go1.8.3.linux-amd64.tar.gz 1.2解压安装包 tar zxvf go1.8.3.linux-amd64.tar.gz 2添加环境变量 2.1命令行输入 export PATH=$PATH:/usr/local/go/bin export GOROOT=/usr/local/go (备注:/etc/profile写入环境变量,实测不需要) 2.2 检测环境变量配置 go env 2.3 检查版本 go version 3.安装依赖包 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++ 4.使用GIT 4.1检查有无GIT git --version 4.2安装(系统没有再安装,有则忽略此步骤) yum -y install git 4.3检查版本号 git --version 5.获取ngrok源码 git clone https://github.com/inconshreveable/ngrok.git 5.1 设置自己解析的域名(这里写你自己的域名,不要前缀,比如www.xxx.com 填写xxx.com) 备注:进入到ngrok文件夹 openssl genrsa -out rootCA.key 2048 openssl req -x509 -new -nodes -key rootCA.key -subj "/CN=xxx.com" -days 5000 -out rootCA.pem openssl genrsa -out device.key 2048 openssl req -new -key device.key -subj "/CN=xxx.com" -out device.csr openssl x509 -req -in device.csr -CA rootCA.pem -CAkey rootCA.key -CAcreateserial -out device.crt -days 5000 5.2替换证书(确定,输入y按回车键) cp rootCA.pem assets/client/tls/ngrokroot.crt cp device.crt assets/server/tls/snakeoil.crt cp device.key assets/server/tls/snakeoil.key

6.生成服务端(成功后会在ngrok的bin下有一个ngrokd文件) 备注:(过程比较慢...) GOOS=linux GOARCH=amd64 make release-server 7.生成客户端 GOOS=windows GOARCH=amd64 make release-client 备注: #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 8.启动服务端 ./bin/ngrokd -tlsKey=server.key -tlsCrt=server.crt -domain="xxx.com" -httpAddr=":80" -httpsAddr=":443" -tunnelAddr=":4443" 参数说明: #-domain 访问ngrok是所设置的服务地址生成证书时那个 #-httpAddr http协议端口 默认为80 #-httpsAddr https协议端口 默认为443 #-tunnelAddr 通道端口 默认4443 9.启动客户端 9.1创建ngrok.cfg文件 server_addr: "xxx.com:4443" trust_host_root_certs: false 9.2 启动 ngrok -config=./ngrok.cfg -subdomain=www 8080 备注: #参数说明 ngrok.cfg 刚才新建的文件 -subdomain=test test:穿透的域名前缀 8080 :穿透的域名映射端口

经验分享 程序员 微信小程序 职场和发展