前言
如果只是网站临时访问只用官方的ngrok自动映射即可
如果是长久使用,推荐使用frp,因为ngrok这东西,官方的是2.x 开源的是1.x 这是一个商业运作软件。
ngrok映射http协议
无需注册账户,下载即用
通过官网下载
运行
ngrok http 80
终端反馈
ngrok by @inconshreveable (Ctrl+C to quit)
Session Status online
Version 2.2.4Region United States (us)
Web Interface
Forwarding -> localhost :8080Forwarding -> localhost:8080Connections ttl opn rt1 rt5 p50 p90 24 0 0.00 0.01 0.00 0.00
就是我们的 外网 地址
浏览器打开 Web入口
.
此时如果使用其他设备访问Forwarding后面的地址,就会在Web页面上面查看到当前访问的请求细节.
服务器搭建
服务器以centos7为例
环境配置
yum -y install zlib-devel openssl-devel perl hg cpio expat-devel gettexurl-devel perl-ExtUtils-MakeMaker hg wget gcc gcc-c++ golang
下载ngrok服务端
git clone
编译准备
cd ngrokexport NGROK_DOMAIN="ngrok.9sb.org"openssl genrsa -out rootCA.key 2048openssl req -x509 -new -nodes -key rootCA.key -subj "/CN=$NGROK_DOMAIN" -days 5000 -out rootCA.pem
openssl genrsa -out server .key 2048openssl 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 5000cp rootCA.pem assets/client/tls/ngrokroot.crt
cp server.crt assets/server/tls/snakeoil.crt
cp server.key assets/server/tls/snakeoil.key
编译
#win服务端GOOS=windows GOARCH=386 make release-server
#win客户端GOOS=windows GOARCH=386 make release-client
# linux 服务端GOOS=linux GOARCH=386 make release-server
#linux客户端GOOS=linux GOARCH=386 make release-client
服务端运行
注意防火墙开放对应的端口
我们只需要以下三个文件
ngrokd 在bin目录里 server.key server.crt在当前目录
在这三个文件所在的目录中可以直接启动ngrokd
ngrokd -tlsKey="server.key" -tlsCrt="server.crt" -domain="ngrok.9sb.org" -httpAddr=":1000" -httpsAddr=":1001" -tunnelAddr=":1002" -domain使用的域名 -httpAddr HTTP端口 -httpsAddrHTTPS端口 -tunnelAddr隧道端口
客户端运行
我们的目的是把主机的80 端口映射 到服务器的1003端口上
下载编译好的ngrok. exe ,在bin目录里
新建配置文件
ngrokyml
server_addr: "ngrok.9sb.org:1002"trust_host_root_certs: falsetunnels: ssh: remote_port: 1003 proto: tcp : 80
在ngrok.exe和ngrokyml的目录下右键运行 powershell
.\ngrok.exe -config=ngrokyml start ssh
验证