Linux下ngrok内网穿透

ngrok内网穿透:能够将你本机的HTTP服务(站点)或TCP服务,通过部署有ngrok服务的外网伺服器暴露给外网访问!实现本地开发,外网调试。

准备:一台外网可访问的主机,且有域名解析至该主机上。

Linux下ngrok内网穿透_第1张图片


  1. 橘色屏幕的笔记本是你的工作机器,安装了ngrok客户端
  2. 服务器安装了ngrok的服务端(ngrokd)
  3. 利用ngrok 8080命令可以将你本机的8080端口暴露给反向代理至服务器的某个二级域名如:kl.ngrok.wili.us.cn
  4. 别人通过kl.ngrok.wili.us.cn就可以访问你本机8080端口上的站点内容了。


一、安装go、git工具

sudo apt-get update
sudo apt-get install git
sudo apt-get install golang
# 查看go版本
go version


二、获取ngrok源码

git clone https://github.com/inconshreveable/ngrok.git
Linux下ngrok内网穿透_第2张图片


三、更改ngrok域名

export GOPATH=/usr/local/ngrok/
export NGROK_DOMAIN="ngrok.wili.us"

ngrok.wili.us 替换成自己的域名


四、生成证书

$NGROK_DOMAIN 替换成自己的域名。这里我的是 ngrok.wili.us

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
Linux下ngrok内网穿透_第3张图片

生成六个文件:

Linux下ngrok内网穿透_第4张图片

Ngrok通过bindata将ngrok源码目录下的assets目录(资源文件)打包到可执行文件(ngrokd和ngrok)中去,assets/client/tls和assets/server/tls下分别存放着用于ngrok和ngrokd的默认证书文件,我们需要将它们替换成我们自己生成的(因此这一步务必放在编译可执行文件之前)

cp rootCA.pem assets/client/tls/ngrokroot.crt
cp server.crt assets/server/tls/snakeoil.crt
cp server.key assets/server/tls/snakeoil.key


五、编译ngrok服务端

make release-server

Linux下ngrok内网穿透_第5张图片

ngrokd 就是服务端


六、编译客户端


linux客户端

GOOS=linux GOARCH=amd64 make release-client

Linux下ngrok内网穿透_第6张图片

编译Mac版本客户端

GOOS=darwin GOARCH=amd64 make  release-client

七、服务端启动

ngrokd -domain="ngrok.wili.us" -httpAddr=":80" -httpsAddr=":8089"

八、客户端启动

在和客户端相同文件目录bin下,新建一个 ngrok.cfg配置文件

vim ngrok.cfg

添加:

server_addr: "ngrok.wili.us:4443"
trust_host_root_certs: false

启动:subdomain后面的自定义就好

./bin/ngrok -subdomain mp -config=./ngrok.cfg 5000
Linux下ngrok内网穿透_第7张图片

备注:客户端和服务端必须在相同证书下编译,不能分开编译。

参考:   手把手教你搭建ngrok服务-轻松外网调试本机站点

             一分钟实现内网穿透(ngrok服务器搭建)

             https://github.com/inconshreveable/ngrok/blob/master/docs/SELFHOSTING.md

             https://github.com/inconshreveable/ngrok/blob/master/docs/DEVELOPMENT.md

             

你可能感兴趣的:(随记,ubuntu,ngrok,内网穿透)