ngrok内网穿透工具
- 官网:https://ngrok.com/
- 账号:最好创建一个注册账号,获取验证authtoken,启动ngrok的时候设置authtoken可以使会话时间更长,不使用也可以,示例:
#设置 authtoken 可以让会话时常更长
ngrok authtoken authtoken码
- 下载及执行
#直接解压要/usr/local/bin目录,可以直接调用,不需要使用含路径的全名。
sudo unzip ~/Downloads/ngrok-v3-stable-darwin-amd64.zip -d /usr/local/bin
#配置authtoken,不用每次都要输入
ngrok config add-authtoken authtoken码
#启动代理, 8080 是需要对外映射的本地端口
ngrok http 8080
#在执行的显示内容中可以看到对外映射的公网地址。
- 反向代理
- 注意⚠️:在使用外网域名访问的时候能够看到一个ngrok-skip-browser-warning的警告信息
- 如果只是手工测试可以不做反向代理
- 如果调试公众号调用,或者其他直接调用的场景,或者不希望出现警告信息,可以设置反向代理
- 原理
- 使用nginx把一个固定的网址映射到ngrok穿透后的外网域名
- 去除ngrok-skip-browser-warning的警告信息
- 配置nginx:header ngrok-skip-browser-warning=true 或 1
- 优点:
- 网址固定
- 没有ngrok-skip-browser-warning的警告信息
- 配置:
#自己的域名: gzh-dev.rstone.com.cn
#ngrok 启动后的域名: fa9c-2409-8a00-1a40-ec90-58d7-daf3-64bb-fb24.ngrok-free.app
#建立nginx配置文件
sudo -i
cat > /docker-data/nginx/config/conf.d/gzh-dev.rstone.com.cn.conf << eof
server {
listen 80;
server_name gzh-dev.rstone.com.cn;
location / {
# regular forwarding headers
proxy_set_header X-Forwarded-For $proxy_protocol_addr;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header Host fa9c-2409-8a00-1a40-ec90-58d7-daf3-64bb-fb24.ngrok-free.app;
# this line does the actual trick
proxy_set_header ngrok-skip-browser-warning 1;
# forward!
proxy_pass https://fa9c-2409-8a00-1a40-ec90-58d7-daf3-64bb-fb24.ngrok-free.app;
proxy_ssl_server_name on;
}
}
eof
#测试配置文件
docker exec nginx-vts nginx -t
#重新加载配置文件
docker exec nginx-vts nginx -s reload
#测试
curl http://gzh-dev.rstone.com.cn/ping