ngrok内网穿透工具「不如frp」
ngrok内网穿透工具
账号:最好创建一个注册账号,获取验证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