搭建自己的ngrok服务器搭建方式二
1、必要条件
(1)服务器,用来搭建ngrok的服务器,必须有公网ip,并且可以正常访问(本次测试使用的是Ubuntu 16.04 64位)。
(2)域名,用来生成访问域名。
2、安装git 和Golang
apt-get install build-essential golang mercurial git
Golang,Go语言支持,因为Ngrok是基于Go语言编写的
3、下载源码,当然也可以不安装git,但是需要手动上传代码到需要的位置。
此处使用非官方地址,修复了部分包无法获取(摘自网络)
git clone https://github.com/tutumcloud/ngrok.git ngrok
4、生成自签名证书
使用ngrok.com官方服务时,我们使用的是官方的SSL证书。自建ngrokd服务,如果不想买SSL证书,我们需要生成自己的自签名证书,并编译一个携带该证书的ngrok客户端。
证书生成过程需要一个NGROK_BASE_DOMAIN。 以ngrok官方随机生成的地址xxx.ngrok.com为例,其NGROK_BASE_DOMAIN就是“ngrok.com”,如果你要提供服务的地址为“example.ngrok.xxx.com”,那NGROK_BASE_DOMAIN就应该 是“ngrok.xxx.com”。本次测试,由于没有多余的域名,我替换成自己的二级域名“weixin.yangjiace.xyz”。
cd ngrokNGROK_DOMAIN="weixin.yangjiace.xyz"openssl genrsa -out base.key 2048openssl req -new -x509 -nodes -key base.key -days 10000 -subj "/CN=$NGROK_DOMAIN" -out base.pemopenssl genrsa -out server.key 2048openssl req -new -key server.key -subj "/CN=$NGROK_DOMAIN" -out server.csropenssl x509 -req -in server.csr -CA base.pem -CAkey base.key -CAcreateserial -days 10000 -out server.crt
执行完成后需要替换证书
cp base.pem assets/client/tls/ngrokroot.crt
5、编译
make release-server release-client
编译成功后会在bin目录下找到ngrokd和ngrok这两个文件。其中ngrokd 就是服务端程序了。
6、启动服务端
./bin/ngrokd -tlsKey=server.key -tlsCrt=server.crt -domain="weixin.yangjiace.xyz" -httpAddr=":80" -httpsAddr=":443"
httpAddr、httpsAddr 分别是 ngrok 用来转发 http、https 服务的端口,可以随意指定。ngrokd 还会开一个 4443 端口用来跟客户端通讯(可通过 -tunnelAddr=”:xxx” 指定)。由于微信限制不能出现端口号,因此这个使用了80、443端口。
7、编译客户端
(1)windows
GOOS=windows GOARCH=amd64 make release-client
(2)mac
GOOS=darwin GOARCH=amd64 make release-client
执行对应的命令会在bin目录下生成相对应的windows、mac目录,ngrok.exe就存放在对应目录下。将对应的ngrok.exe下载到本地。
8、设置本地客户端
(1)在同级目录下新建一个配置文件ngrok.cfg
server_addr: "weixin.yangjiace.xyz:4443"
trust_host_root_certs: false
(2)同级目录下新建一个启动脚本startup.bat
@echo on
cd %cd%
#ngrok -proto=tcp 22
#ngrok start web
ngrok -config=ngrok.cfg -log=ngrok.log -subdomain=yjc 8080
其中,-config指向配置文件,-log存放日志文件位置,-subdomain为自定义的域名前缀。8080为端口号。
(3)启动,点击启动脚本startup.bat完成启动。
9、设置为系统程序,并后台运行。
服务器在运行ngrok时,如果关闭会话窗口,会导致服务中断,很显然这不是我们想要的结果,我们需要服务不断的在后台运行,当需要的时候在停止。
在/etc/systemd/system/目录下创建服务ngrok.service,内容为
[Unit]
Description=ngrok
After=network.target[Service]
ExecStart=/myweb/ngrok/bin/ngrokd -tlsKey=/myweb/ngrok/server.key -tlsCrt=/myweb/ngrok/server.crt -domain="weixin.yangjiace.xyz" -httpAddr=":80" -httpsAddr=":443"[Install]
WantedBy=multi-user.target
其中要根据自己的实际目录修改相对应的目录。
这样我们就可以了通过systemctl start ngrok.service启动服务。然后就可以愉快的玩耍了。
本文转自:https://blog.csdn.net/yjc_1111/article/details/79353718
搭建自己的ngrok服务器搭建方式二相关推荐
- 一分钟实现内网穿透(ngrok服务器搭建)
简单来说内网穿透的目的是:让外网能访问你本地的应用,例如在外网打开你本地http://127.0.0.1指向的Web站点. 最近公司的花生壳到期了,要续费,发现价格一直在涨,都是5年以上的老用户,旗舰 ...
- 内网穿透(ngrok服务器搭建)
转:https://blog.csdn.net/zhangguo5/article/details/77848658?utm_source=5ibc.net&utm_medium=referr ...
- Ubuntu上搭建自己的ngrok服务器
Ubuntu上搭建自己的ngrok服务器 参考网站:http://www.sunnyos.com/article-show-48.html 上面的内容似乎是sunny大神本人写的,了解的越多,发现自己 ...
- ngrok服务器搭建流程
ngrok服务器搭建流程 微信开发内网测试问题一直是一个困扰开发者的问题,ngrok服务是一个很好的解决方案,网上有类似的工具比如小米球但是不稳定或收费,如果自己有一台公网上的centos服务器,可以 ...
- CentOS7 NGROK服务器搭建 无需域名
CentOS7 NGROK服务器搭建 CentOS7 NGROK服务器搭建 无需域名 看到一些ngrok收费一月9元起,遂花了10元买了腾讯云服务https://curl.qcloud.com/lj0 ...
- 内网穿透-----ngrok服务器搭建
一,需求与ngrok简介 1)需求 有时我们需要进行内网穿透,也就是说我们需要去访问和使用一些内网的机器:比方说,我在实验室有一台机器,而实验室的网络是内网(192.168.0.48),这个时候我想在 ...
- 10分钟教你搭建自己的ngrok服务器
内网穿透想必开发过微信的同志都很了解,大部分人选择网上寻找各种现成的,比如ngrok官网.ittun-ngrok.sunny-ngrok或者花生壳之类的.但是世界上没有免费的午餐,要不就是收费,要不就 ...
- 内网穿透、反向代理(ngrok服务器搭建)
内网穿透的目的是:让外网能访问你本地的应用,例如在外网打开你本地http://127.0.0.1指向的Web站点. 一.ngrok ngrok是一个反向代理,通过在公共的端点和本地运行的Web服务器之 ...
- 服务器中搭建OA系统,云服务器搭建oa系统
云服务器搭建oa系统 内容精选 换一换 云服务器创建后区域固定,不能将云服务器转移到另一个区域,也不能将云服务器转移到另一个帐号.您可以通过镜像迁移方式实现云服务器的跨帐号跨区域迁移.服务器迁移的常见 ...
最新文章
- 【C++】new和malloc的区别
- OpenCV On Android
- 【机器学习算法专题(蓄力计划)】十五、机器学习中玄乎的最大熵原理及模型
- python对象模型_[译] 用 Python 实现一个最简单的对象模型
- 1个月教你学会用Python实现机器学习
- 机器学习线性回归案例讲解_09机器学习实战之简单线性回归
- 两间三层小型别墅图片_占地仅120平的现代风别墅,带KTV和健身房,引领时尚新潮流...
- 神策分析 1.13 版本用户分群全新升级,为企业打磨精细化运营基石
- 论文计算机制图,计算机制图教学设计运用论文
- 以后睡觉还是关上手机吧!
- [句子成分] 一、主语
- 线程局部存储-pthread_getspecific和pthread_setspecific使用
- 卡斯卡迪亚社区建设者奖:2017年获胜者公布
- echart折线图删除_echart清空折线图数据
- 中考计算机上机考试如何操作,全国2021年初中信息技术中招考试上机考试提分技巧...
- bzoj 4008 亚瑟王 - 动态规划 - 概率与期望
- 【中医学】10 针灸-1
- 腾讯优图实验室招聘计算机视觉研究员和实习生
- 'wx' is not defined no-undef
- matplotlib刻度值使用科学记数法
热门文章
- ERP顾问是怎么炼成的
- c语言读取一行的前几个字符串,c语言读取文件某一列 c语言 读取文件中某一行的前一行...
- 图像风格迁移基础入门及实践案例总结
- 未分配利润与利润表不一致_资产负债表未分配利润与利润表不一致怎么处理?...
- R语言对完全随机分组实验、拉丁方实验及正交实验进行方差分析(例题,过程+代码)
- java毕业设计企业人事信息管理mybatis+源码+调试部署+系统+数据库+lw
- NFS(网络文件系统)基于什么协议
- 换道超车 区块链是你的捷径
- 乌镇关注物联网安全 卡巴斯基重获中国政府投标许可
- DHCP_RELAY(Option60与Option82)