内网穿透 ngrok 服务器搭建与坑点
标签(空格分隔): 开发工具 前端
站在用户的角度思考问题,与客户深入沟通,找到上栗网站设计与上栗网站推广的解决方案,凭借多年的经验,让设计与互联网技术结合,创造个性化、用户体验好的作品,建站类型包括:成都网站建设、成都网站设计、企业官网、英文网站、手机端网站、网站推广、域名申请、虚拟主机、企业邮箱。业务覆盖上栗地区。
[toc]
前端开发,有时候需要给外网的测试人员浏览,此时若没有专门的测试服务器,那么使用内网穿透就是最简便通用的方式了。一个常见的选择就是 ngrok 。 也有 frp
ngrok官网
本地客户端跑起,搭建内网端口隧道给外网服务器,用户访问外网服务器对应地址,自动映射到本地对应地址。
这个方案很简单,也很慢,超慢,无法忍受的慢。
官网教程参看
从零搭建参看,
已经写好的搭建脚本,参看
如果脚本安装失败,可能是有些依赖没有,例如 apt-get
如果脚本失败,可能是依赖没装好,一般就是 go 没装,试下下面
安装 go
如果没有 apt-get yum,使用下面
按教程的做法是这样的
开启服务后,服务端报错 Failed to read message: remote error: bad certificate , 客户端端报错 x509: cannot validate certificate for xx.xx.xx.xx because it doesn't contain any IP SANs
搜索客户端报错,按 此文解决 ,在最后一句生成证书的命令前加上以下命令,就解决了
ngrok 客户端会自动生成一个随机子域名或者用户自定义一个,总之无论如何都会有一个域名,这就会导致 ip 域名无效, 例如 - localhost:80 , 解决办法就是改源码,去掉随机生成的 subdomain
删掉 %x. rand.Int31() , 以及该文件第一行引入的 math/rand ,重新编译出服务端与客户端即可。这样不加 -subdomain 选项就不会有子域名
ngrok服务需要的三级域名解析设置
这个我没法讲的很透彻,因为我的服务器是架设在阿里云,我的域名使用的是阿里云旗下的万网,那么如果服务商不同,那么设计的界面和方法估计都有略微的不同,所以我这里只能贴出我在万网的解析设置,以供参考:
*.ngrok中的ngrok为二级域名,这满足我之前服务器所所设定ngrok.gamecc.cn这个ngrok的主域名,而*是域名设置中的通配符,代表可以接受 http://任意名称.ngrok.gamecc.cn这种域名解析设置。
没有什么神奇的。。。就这样即可,但是值得注意的是*这种通配符咱只能这样用一次,什么意思呢?
就是在万网的域名解析设置列表中,只能有这样一个使用*的解析。所以自己考虑,我这里之前为了方便学生使用,所以才这样设置的。当然还有解决办法就是我写一个系统专门来解决ngrok的验证问题,提供web界面用户需要注册或者赋予特定权限后,才能使用三级域名系统,以及ngrok提供的反向代理服务。例如ngrok.com,以及国内的ngrok.cc这样的网站。
利用老毛子padvan路由器ngrok内网穿透搭建服务器
1、移步 注册用户名并且开启免费的隧道。
2、开通隧道
3、在【隧道管理】中,点击隧道的【id】,查看隧道的完整信息,基中【隧道域名】【服务器地址】【服务器端口】【赠送域名】之后配置路由器需要用到。
4、将以上信息添加至潘多拉路由器
5、【启用Ngrok内网穿透】开关开启,ngrok【服务器地址】填入1.4中【服务器地址】,【服务器端口】填写4443,【自定义域名映射】开关启用,【协议类型】http,【本地端口】80,【自定义域名】填写1.4中【赠送域名】,填完完毕【应用本面设置】
6、在 ngrok.cc 网站,的【隧道管理】,点击【查看状态】,显示ip,表示隧道服务正常.
7、隧道服务正常,打开1.4【赠送域名】,就可以打开路由器设置.
8、改用自己的域名
8.1 隧道管理-编辑
文章题目:阿里云搭建ngrok服务器 利用阿里云服务器搭建网站
文章来源:http://scgulin.cn/article/ddoigjh.html