千家信息网

微信公众号开发80端口映射之搭建ngrok服务器

发表于:2025-12-02 作者:千家信息网编辑
千家信息网最后更新 2025年12月02日,说明了解本文之前,最好先看前篇:<<微信公众号开发80端口映射解决方案>>。最近公司要搞微信公众号开发,需要解决80端口映射的问题,为了稳定可靠,只好自己搭建ngrok服务端。ngrok 是一个使用g
千家信息网最后更新 2025年12月02日微信公众号开发80端口映射之搭建ngrok服务器

说明

了解本文之前,最好先看前篇:<<微信公众号开发80端口映射解决方案>>。最近公司要搞微信公众号开发,需要解决80端口映射的问题,为了稳定可靠,只好自己搭建ngrok服务端。ngrok 是一个使用go语言编写的反向代理软件,通过在公共的端点和本地运行的 Web 服务器之间建立一个安全的通道,实现内网穿透。ngrok 可捕获和分析所有通道上的流量,便于后期分析和重放。

环境和条件

服务器Centos6.8_x64+windows10_x64


一台有公网ip的服务器


域名解析到服务器。此处拿域名ngrok.XXX.com举例。


关于域名解析,如果你的域名是为此专用的,可以开启泛解析到此服务器上面。如果你的主域名已经在用,你仅仅需要一个二级域名解析到此服务器,并且开启二级域名的泛解析。我选择是第二种,如下图。当然你不做泛解析也可以,自己在本地hosts文件添加记录也可以。

安装步骤

一.安装依赖包

yum -y install zlib-devel openssl-devel perl hg cpio expat-devel gettext-devel curl curl-devel perl-ExtUtils-MakeMaker hg wget gcc gcc-c++ git

二.安装go语言环境

可以选择yum安装,我选择yum安装

yum install -y golang

也可以手动安装,下载地址http://www.golangtc.com/download

下载安装包之后,直接解压,配置环境变量即可。

三.编译ngrok

3.1下载ngrok源码并设置变量

cd /usr/local/

git clone https://github.com/inconshreveable/ngrok.git

export GOPATH=/usr/local/ngrok/

export NGROK_DOMAIN="ngrok.XXX.com"

cd /usr/local/ngrok

3.2生成自签名证书,ngrok为ssl加密连接。
openssl genrsa -out rootCA.key 2048openssl req -x509 -new -nodes -key rootCA.key -subj "/CN=$NGROK_DOMAIN" -days 5000 -out rootCA.pemopenssl genrsa -out server.key 2048openssl req -new -key server.key -subj "/CN=$NGROK_DOMAIN" -out server.csropenssl x509 -req -in server.csr -CA rootCA.pem -CAkey rootCA.key -CAcreateserial -out server.crt -days 5000
拷贝证书文件到指定位置

cp rootCA.pem assets/client/tls/ngrokroot.crt

cp server.crt assets/server/tls/snakeoil.crt

cp server.key assets/server/tls/snakeoil.key

服务器在国内需要修改,在国外不用修改

vim /usr/local/ngrok/src/ngrok/log/logger.go

log "github.com/keepeye/log4go"

3.3 编译服务端和linux客户端,GOOS和GOARCH可以参照go env

cd /usr/local/ngrok/

GOOS=linux GOARCH=amd64

make clean

make release-server release-client


执行完会在当前目录生成一个bin文件夹,里面包含了ngrokdngrok文件;
其中,bin/ngrokd文件是服务端程序;bin/ngrok文件是客户端程序(注意上面指定了GOOS

64位linux的,所以这个文件是不能在macwin等其他平台跑的,下面将进行说明如何交叉编译)


3.4 交叉编译客户端
Windows客户端

cd /usr/local/ngrok/

GOOS=windows GOARCH=amd64

make release-client

MAC客户端

cd /usr/local/ngrok/

GOOS=darwin GOARCH=amd64

make release-client


客户端配置文件

server_addr: "ngrok.XXX.com:4443"

trust_host_root_certs: false

四.启动服务

/usr/local/ngrok/bin/ngrokd -domain="$NGROK_DOMAIN" -httpAddr=":80"

后台运行

setsid /usr/local/ngrok/bin/ngrokd -domain="$NGROK_DOMAIN" -httpAddr=":80"


启动服务后会,默认会开启监听80,443,4443。当然80和443端口你可以指定端口,只需要如下启动服务

bin/ngrokd -domain="ngrok.XXX.com" -httpAddr=":8888" -httpsAddr=":8889"


开启客户端

ngrok -config=ngrok.cfg -subdomain=test 80

启动成功如下效果

服务 文件 服务器 域名 客户 客户端 编译 端口 环境 选择 二级域名 变量 程序 证书 语言 通道 交叉 分析 生成 运行 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 原油期货 什么软件开发 sql数据库服务器地址安装 网络安全信息教育总结 安装数据库突然跳出黑窗 松江区口碑好的软件开发诚信为本 郑州梦圆达软件开发有限公司 服务器能插移动硬盘吗 网络安全工程师有哪些证书 中国国家网络安全办公室 数据库设计的概念结构与逻辑结构 戴尔服务器更换教程 缺乏统一的数据库分析和辅助决策 常州网络安全实战 四川省安全生产隐患数据库 做软件开发的人咋一句话都没有 腾讯云里的服务器在哪找 网络安全宣传主题海报宣传画 安全生产建立大数据库 软件开发在哪个网站学 阳高现代化网络安全答疑解惑 缤飞扬网络技术有限公司 网络安全主导是谁 软件开发项目设计 数据库安全控制包含哪些内容 dell服务器硬盘序列号是哪个 安徽app软件开发价钱 paddle lite 服务器 应用软件开发的优缺点 amd工业服务器 网络技术管理员岗位职责
0