Debian 8下搭建Ngrok服务器

注:本文基于Sunny大大的教程“搭建属于自己的ngrok服务器”改编,适合Debian系统使用
文章链接:http://www.sunnyos.com/article-show-48.html

1.编译环境安装
检查并安装 gcc, make 和 git

apt-get install gcc
apt-get install make
apt-get install git

下载go最新版本
进入网页https://www.golangtc.com/download
32bit系统 对应 386版本
64bit系统 对应 amd64版本
右键对应版本的“本地下载”按钮,复制链接地址
我下载的是1.9.2的linux 32位版本

wget https://www.golangtc.com/static/go/1.9.2/go1.9.2.linux-386.tar.gz

解压并移到/usr/loacl/下

tar -zxvf go1.9.2.linux-386.tar.gz
mv go /usr/local/

由于编译GO 1.6版本以上的需要依赖GO 1.4版本的二进制文件
还需要下载go1.4.2版本
百度网盘:https://pan.baidu.com/s/1pL0Ca4V#list/path=%2Fgo
解压go1.4.2到root文件夹下

cd /root/
tar -zxvf go1.4.2.linux-386.tar.gz
mv go go1.4

2.获取并编译ngrok

cd /usr/local/
git clone https://github.com/inconshreveable/ngrok.git

添加环境变量
假设ngrok使用的域名为ngrok.luziqi.cn

vi /etc/profile
//在最下加入以下两条内容
GOPATH=/usr/local/ngrok/
NGROK_DOMAIN="ngrok.luziqi.com"
//
source /etc/profile

为域名生成证书并拷贝到指定位置

cd 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 rootCA.pem assets/client/tls/ngrokroot.crt
cp server.crt assets/server/tls/snakeoil.crt
cp server.key assets/server/tls/snakeoil.key

如果服务器在国内,需要修改文件

vim /usr/local/ngrok/src/ngrok/log/logger.go
//第五行改成
log "github.com/keepeye/log4go"

编译服务端(linux 32bit)

cd /usr/local/go/src
GOOS=linux GOARCH=386 ./make.bash
cd /usr/local/ngrok/
GOOS=linux GOARCH=386 make release-server

编译客户端(windows 64bit)

cd /usr/local/go/src
GOOS=windows GOARCH=amd64 ./make.bash
cd /usr/local/ngrok/
GOOS=windows GOARCH=amd64 make release-client

编译好的内容存放在/usr/local/ngrok/bin下

3.运行ngrok
运行服务端

/usr/local/ngrok/bin/ngrokd -domain="$NGROK_DOMAIN" -httpAddr=":80"

配置和运行客户端
在ngrok.exe的所在目录下创建ngrok.cfg文件,编辑一下内容
假设我服务器下的变量$NGROK_DOMAIN为ngrok.luziqi.com,则

server_addr: "ngrok.luziqi.com:4443"
trust_host_root_certs: false

还可以加入以下内容定义tunnel方便使用

tunnels:
 ssh:
  remote_port: 8022
  proto:
   tcp: 192.168.2.211:22
 mc:
  remote_port: 8200
  proto:
   tcp: 25565
 http:
  subdomain: www
  proto:
   http: 80

打开cmd,cd到ngrok.exe所在目录
映射http端口80,子域名为blog

ngrok.exe -config=ngrok.cfg -subdomain=blog 80

映射tcp端口8888

ngrok.exe -config=ngrok.cfg -proto=tcp 8888

使用tunnel参数映射

ngrok.exe -config=ngrok.cfg start mc

你可能感兴趣的:(Debian 8下搭建Ngrok服务器)