Appearance
下载安装
github 搜索 ngrok star 最多的项目,clone 到本地,解压。
证书配置
证书配置,没有证书的使用自签名证书。有证书的跳过这一步
自签名证书
使用openssl 生成证书,openssl安装 查看opnessl 学习笔记
// 生成自签名证书私钥 ca.key
openssl genrsa -out ca.key 2048
// 根据 ca.key 生成自签名的CA证书
openssl req -x509 -new -nodes -key ca.key -subj "/CN=domain.name" -days 5000 -out root.crt
// 生成服务器私钥
openssl genrsa -out server.key 2048
// 生成服务器 csr
openssl req -new -key server.key -subj "/CN=domain.name" -out server.csr
// ca 颁发证书
openssl x509 -req -in server.csr -CA ca.crt -CAkey ca.key -CAcreateserial -out server.crt -days 5000替换官方证书
将官方证书替换掉, 官方的证书放在 assets/中, 具体替换下面3个
- 替换ca ---------- assets/client/tls
- 替换服务器公钥 ----------- assets/server/tls
- 替换服务器证书 ------------ assets/server/tls
重新编译服务端和客户端
编译需要安装go语言环境yum insatll golang,
设置不同系统环境变量编译
GOOS=[windows | linux] GOARCH=[386 | amd64] make [release-server | release-client]启动服务器端
/usr/local/ngrok/bin/ngrokd [-tlsKey=/usr/local/ngrok/assets/server/tls/snakeoil.key] [-tlsCrt=/usr/local/ngrok/assets/server/tls/snakeoil.crt] -domain=xxx.xxxx.xx -httpAddr=:81 -httpsAddr=:4443 -tunnelAddr=:4445
// -tlsKey 和 -tlsCrt可选,表示使用自己的证书和 key,-damain 绑定的域名; http 和https 监听的端口; -tunnelAddr 客户端通信端口启动客户端
根据平台下载对应的 ngrok程序 新建配置文件,添加如下内容
server_addr: "xxx.xxxx.xxx:port" // port 为服务器 -tunnelAddr 端口值
trust_host_root_certs: false // 如果是自签名证书,此项为false新建log文件,前期调试用 log.log
启动客户端,具体配置可以通过 ngrok -h 查看
ngrok -config config.cfg -log log.log -subdomain subdomainname port
// ngrok -config config.cfg -log log.log -subdomain ngrok 80