关于ngrok:ngrok实现内网穿透端口映射无需公网ip实现内网穿透

什么是内网穿透?内网就是你电脑的本机ip的外部网络,他人无奈近程拜访,你只能在一个范畴进行拜访,外网就是裸露的ip地址,他人能够轻松拜访到。如果你在你电脑开发了一个网站,搭建了一个服务器为http://127.0.0.1:80,你能够在你电脑轻松拜访,然而他人无法访问,这个时候你能够将网页上传到服务器,而后解析域名和绑定域名,就能够让他人拜访。 然而如果你还在开发,又想边开发边分享给其他人体验和改良,你想把在本地的网站让其他人拜访,那么就须要内网穿透,让他人能轻松拜访你电脑的本地网站,相当于你的电脑成了线上的服务器。 ngrok实现内网穿透1、进入ngrok官网ngrok.com下载ngrok.exe 2、注册一个账号,登陆账号进入治理后盾,获取Token,即左侧的Your Authtoken3、关上你的windows cmd命令行工具4、cd到ngrok.exe所在的目录,而后执行以下命令 ngrok authtoken 你的Token 5、而后就能够开启内网穿透服务了,输出以下命令 ngrok http 80 这样的话,就能够实现将你内网80端口映射到以下两个域名 http://f0e296d1f0df.ngrok.iohttps://f0e296d1f0df.ngrok.ioAuthor:TANKINGWeChat:face6009

August 5, 2021 · 1 min · jiezi

关于ngrok:ngrok使用

官网地址:https://ngrok.com 下载安装(Windows双击关上)登录进入目录:Authentication>Your Authtoken获取受权码运行命令Connect your account:ngrok authtoken [authtoken]To start a HTTP such as:ngrok http https://localhost:3000可获取到一个公网可拜访的地址:

December 7, 2020 · 1 min · jiezi

Mac如何开启内网穿透微信开发本地调试

微信开发时,要使用域名,当然也需要本地调试。如果每次都上传到服务器调试,那开发效率就太低下了。因此可以使用内网穿透工具,实现本地调试,提高开发效果,也不需要注册域名和备案,当然上线时还是需要注册域名和进行备案的。下面是参考步骤: 1. 注册账号1.1 注册打开网址:https://natapp.cn,进行账号注册,实名认证等操作。 1.2 购买免费/付费隧道注册完成后,登录账号,进入『购物隧道』,可选择免费和付费隧道。第一次使用建议试用免费,正式开发后建议购买付费。 1.3 查看authtoken此autoken在后面的步骤会使用到,请记录authtoken信息。 2. 下载工具Mac版本下载地址:natapp也提供win, linux版本。具体看官网:https://natapp.cn/#download 3. 授权读写3.1 解压下载完成后,解压文件,会有一个natapp的文件 3.2 授权把natapp放到自定义的目录,比如放到桌面下的natapp目录: /Users/zhangguoye/Desktop/natappFolder/natapp执行下面命令进行授权# 注意:此目录改成你自己的存放natapp的目录$ cd /Users/zhangguoye/Desktop/natappFolder/# 授权$ chmod a+x natapp4. 运行4.1 authtoken请使用自己的authtoken,假如authtoken是 9ab6b9040a624f40如果找到自己的authtoken? 请查看步骤 【1.3 查看authtoken】 # 在natapp文件的当前路径运行$ ./natapp -authtoken=9ab6b9040a624f40显示如下,表示运行成功。注意:请先确定你开发的程序,在127.0.0.1:8089是能正常访问的。(假如你程序和隧道配置的是8089端口)

August 20, 2019 · 1 min · jiezi

SunnyNgrok如何在没有公网ip或者二级运营商实现外网访问内外机器实现本地开发调试

很多情况下,我们需要对客户延时做好的demo、服务器放在家里或者公司没有公网,怎么实现外网访问? 这是我本地的一个演示地址,我要在外网访问需要怎么操作呢? 通过路由器的端口转发实现1、进入路由器选择端口转发 2、添加转发信息添加端口转发信息,外部端口使用 10000 内部端口是 80,也就是说外网通过 ip:10000 访问的时候实际上访问到的是 192.168.1.175:80 这个ip的80端口 在路由器里面可以看到我的外网ip,或者在 http://www.ip138.com 也可以看到只要让在外网的人通过 http://123.121.142.122:10000/ 就可以访问到我 192.168.1.175:80 这个端口里面的php文件了 如果想要进行 ssh端口 或者 3389 远程访问也是一样的方式操作。 通过路由器的dmz方式实现这里填写了我一个树莓派的地址,然后我通过在腾讯云服务器使用ssh配合我的外网ip登陆树莓派。只需要在腾讯云的服务器上输入以下命令就可以登陆我家里的树莓派。 ssh pi@123.121.142.122通过上图已经可以看到我通过腾讯云的服务器使用ssh登陆到了我的树莓派里面。这种是在一级运营商拉的网线有公网ip的情况下可以通过路由器实现的外网访问内网服务。 注意:在做http服务的时候80端口是不能外网访问的,所以可以通过其他端口访问,例如我就用了10000端口在外网访问,但是在开发微信的时候这点还是不方便,微信只接受80或者443这些功能在你接入一级运营商的时候是可以用的,但是遇到二级运营商或者小区宽带的时候,这就很有心无力了。因为你从这些运营商得到的ip是一个内ip,你自己路由器相当于一个二级路由器,所以在二级路由器端口转发但是在一级路由器并没有,也就是说类似住宅楼一样,你把你加的房门打开了,但是一楼大厅的大门没有打开,外面的人还是进不来。 那我们还有没有什么别的办法能让外网不需要加端口直接访问到80呢?答案是肯定有的。最简单的办法是通过 Sunny-Ngrok 实现,仅需要在平台注册账号密码设置好映射的信息,只要一条命令就能实现外网访问内网了。 1、打开 注册界面 注册一个账号 2、开通隧道由于网站提供了Ngrok和Frp两种服务,因此用户需要自己选择想要开通的类型。 注意:详细阅读网站弹出来的提示,因为很重要注意:详细阅读网站弹出来的提示,因为很重要注意:详细阅读网站弹出来的提示,因为很重要3、填写隧道信息 根据自己实际情况填写 隧道开通之后不能更换协议和服务器隧道开通之后不能更换协议和服务器隧道开通之后不能更换协议和服务器4、下载客户端返回首页下载客户端遇到问题的时候可以观看使用教程哦,里面提供了比较详细的教程。选择自己开通的服务类型和操作系统版本下载。 网站有两种客户端,记得要匹配自己的开通服务类型网站有两种客户端,记得要匹配自己的开通服务类型网站有两种客户端,记得要匹配自己的开通服务类型对于开发者建议开通Ngrok、因为在做微信开发或者支付异步回调的时候可以通过127.0.0.1:4040 实现请求查看和重发,对于开发人员来说比上传代码到服务器和写日志查看日志更省心省力省时间。 5、启动隧道一定要观看官网教程,注意不通的服务类型有不通的启动方式区分,Windows进入cmd命令启动不是双击;Linux通过终端启动。 这个是我在平台上的配置 这个是我在mac的启动方式 启动成功的界面是这样的,我通过上面显示出来的地址就可以访问到我的路由器了,因为我的路由器ip是192.168.1.1 我这里隧道映射的ip也是 192.168.1.1 这样就可以看到已经实现了外网访问内网的机器了。 如果是开发者通过 http://127.0.0.1:4040 可以得到更丰富的功能。 可以看到右边有一个再次请求和下面在内网返回的信息都已经返回回来了,在做异步支付的时候就可以在本地开发了,并且可以看到代码是哪里报错了。

July 6, 2019 · 1 min · jiezi

使用frp搭建内网穿透

内网穿透的概念内网穿透,即NAT穿透,网络连接时术语,计算机是局域网内时,外网与内网的计算机节点需要连接通信,有时就会出现不支持内网穿透。——来自百度百科。 简单来说,就是让互联网(外网)的设备能访问局域网(内网)的设备提供的服务,这里的设备通常是电脑。 内网穿透的应用场景对开发人员来说,一个典型的应用场景就是针对第三方授权(通常是oauth2.0)和支付回调的开发调试。通过内网穿透工具将第三方SDK的回调地址映射到本机开发环境,从而实现实时调式。 其次是节约部署成本(通常是公网服务器费用)。通过将应用部署在本机,再利用内网穿透工具对外提供服务,这样就能,既节约服务器租用费用,又能提升服务器的硬件配置。 本文适用于第一种情况,即低频率开发调式用。 内网穿透的搭建工具1、ngrok这是一个国外的穿透工具,1.0版本是开源的,目前2.0以上版本已经闭源,并且提供免费和收费的服务。 2、frp这是一个国内的开源工具,目前最新版本为0.26.0,有比较详尽的中文文档,并且一直在维护更新。 由于frp一直开源,并且维护积极、更新频繁,再加上中文文档加持,本文最终选择了frp作为搭建工具。 注:frp自主搭建需要一个有公网ip的服务器,本文使用阿里云ECS。 frp下载和版本选择官方github release地址,目前最新版本是0.26.0 版本选择说明:frp_0.26.0_darwin_amd64.tar.gz —— 适用于Mac OS系统frp_0.26.0_freebsd_386.tar.gz —— 适用于FreeBSD 32位系统frp_0.26.0_freebsd_amd64.tar.gz —— 适用于FreeBSD 64位系统frp_0.26.0_linux_386.tar.gz —— 适用于Linux 32位系统frp_0.26.0_linux_amd64.tar.gz —— 适用于Linux 64位系统frp_0.26.0_linux_arm.tar.gz —— 适用于Linux 32位嵌入式系统frp_0.26.0_linux_arm64.tar.gz —— 适用于Linux 64位嵌入式系统frp_0.26.0_linux_mips.tar.gzfrp_0.26.0_linux_mips64.tar.gzfrp_0.26.0_linux_mips64le.tar.gzfrp_0.26.0_linux_mipsle.tar.gzfrp_0.26.0_windows_386.zip —— 适用于Windows 32位系统frp_0.26.0_windows_amd64.zip —— 适用于Windows 64位系统本文服务器系统为CentOS7 64位,选择了frp_0.26.0_linux_adm64.tar.gz;本机系统为Mac OS X,于是选择了frp_0.26.0_darwin_amd64.tar.gz。 下载方式:1、直接点击链接,使用浏览器下载到本机。利用ssh工具连接到阿里云ECS,再使用lrzsz工具的rz命令将frp_0.26.0_linux_amd64.tar.gz上传到服务器,而压缩包frp_0.26.0_darwin_amd64.tar.gz直接在本机解压。 注:ssh工具、lrzsz实用工具的安装和用法可自行搜索。 2、终端命令方式 2.1、服务器 使用wget下载 wget https://github.com/fatedier/frp/releases/download/v0.26.0/frp_0.26.0_linux_amd64.tar.gz解压 tar -xzvf frp_0.26.0_linux_amd64.tar.gz2.2、本机 使用curl下载 curl -O https://github.com/fatedier/frp/releases/download/v0.26.0/frp_0.26.0_darwin_amd64.tar.gz解压 tar -xzvf frp_0.26.0_darwin_amd64.tar.gzfrp压缩包文件说明每个压缩包解压后都包含以下文件和一个systemd文件夹: frpc —— 客户端可执行二进制文件frpc_full.ini —— 包含全部配置项的客户端配置文件frpc.ini —— 客户端使用的配置文件,包含最简配置frps —— 服务端可执行二进制文件frps_full.ini —— 包含全部配置项的服务端配置文件frps.ini —— 服务端使用的配置文件,包含最简配置systemd —— 文件夹,用于将frpc和frps添加为服务的配置,linux下使用systemd作为守护程序、mac os使用launchd作为守护程序注:服务端只需用到frp_0.26.0_linux_amd64目录下的frps相关文件,本机(客户端)只需用到frp_0.26.0_darwin_amd64目录下的frpc相关文件。 ...

April 25, 2019 · 1 min · jiezi

反向代理和内网穿透

概念反向代理看上去看深奥,其实不然,只是因为汉语言文化的差异导致它看上去深奥。一般反派感觉都比较厉害和神秘。要理解反向代理,我们就不得不说一下正向代理。正向代理 (Forward Proxy)所谓正向代理,就是大家通常说的代理。打个通俗的比方,你想跟你舅舅借钱,但不好开口(或者你舅妈会设法阻拦),就跟你妈说。这时母亲大人就是个正向代理。此时代理本质就是个桥的作用,这个桥让你能和桥对面的人交换信息。正向代理是多对一的概念,例如你姐,你妹你可以通过你妈去跟舅舅借钱,但舅舅只有一个舅舅。舅舅有可能并不知道到底是谁真正在借钱,只知道钱给了你妈。反向代理 (Reserve Proxy)大家都有打客服电话的经历,比如10086,一般上来就是个语音系统,转接人工服务后嘟嘟嘟好几声才有人接听,说我是工号xxx,很高兴为你服务。这个客服总机号码10086就是个反向代理,反向代理隐藏了真实的服务端,有可能有N个客服对应N个号码,但你只需要记一个10086,它会平衡客服之间的压力给你安排合适的人。反向代理是一对多的概念,刚好和正向代理反过来了。正向代理代理的对象是客户端反向代理代理的对象是服务端反向代理最常见的作用就是负载均衡。比如你访问baidu的域名后,baidu会根据你的ip地址和网络情况给你分配最快的服务器,这个分配服务器的服务器就是反向代理。反向代理还有一个场景就是内网穿透,因为服务对象是在内网里,你需要通过代理才能访问到。内网穿透从外网是没办法直接访问到内网的资源的,因为内网是一个局域网不在一个网段,而且还有防火墙在。这时候你弄个反向代理就可以解决这个问题:内网服务器访问代理服务器握手,建立通道外网用户访问代理,代理通过通道和内网通信举一个具体例子,TeamViewer的服务端(外网)就是个反向代理,它需要和TeamViewer客户端(内网)一直保持通信,建立一个通道(TeamViewer ID)。当远程连接这台机器时,你需要登录到TeamViewer服务器,然后通过代理通道(TeamViewer ID)和远程机器连接。一些反向代理服务远程连接内网机器的桌面服务是最常见的需求,有时候我们希望做的是自己的机器上跑一些服务能够从外网访问,比如demo,博客,甚至私有云等等。TeamViewer和向日葵大家可能都知道,我说一些不一样的。frp开源界最流行的反向代理之一,frp全称FaskReverseProxy,它的目标是做最快速可靠的反向代理,用GO语言实现,在Github上正在快速迭代中。安装和配置都非常简单,只需要几个命令就可以完成。frp支持的客户端非常丰富,树莓派,路由器,安卓手机等等,可玩性很高。frp服务可以让你本地的web项目提供给外网访问,特别适合向别人展示你本机的web demo 以及调试一些远程的API (比如微信公众号,企业号的开发)。FRP还可以轻松代理TCP,HTTPS,SSH等等协议,你需要有一台具有公网IP的机器,最好加一个域名。ngrok曾经是开源界反向代理软件的老大,到2.0以后选择闭源,最后开源的版本2016年后就没有再更新,止于1.7。基于C语言实现,配置略复杂,不过据说灵活性和稳定性超好。ngrok也可以代理常见的各种协议,自己搭建只能用早期的开源版本。或者选择商业公司提供的收费服务,国内外可以搜到很多提供NGROK服务的网站,可不可靠不太敢说,但真的很多。这里列举一些知乎推荐过的,你也可以通过ngrok这个关键字搜索到很多。natapp.cn小米球Sunny-Ngrokechositedog-tunnel翻译过来就是狗洞吧,国人做的,基于GO语言开发,在GitHub上活跃度还不错,有1k+的星星,有兴趣可以试一下。serveo.net无需注册,无需配置,只需要 ssh 就行,没有客户端,支持多端口映射,支持自定义子域名,只要一行代码。ssh -R 80:localhost:3000 http://serveo.net我试了一下,临时用一下真的很棒!写在最后内网服务本来就是比较敏感的,所以从数据安全的角度看我觉得还是自己搭建代理服务更可靠。用不靠谱的服务有很大风险,还有可能很坑,非常坑。比如nat123和花生壳,一步一步诱导你付费,协议,端口,流量,速度,域名每个细节都要收费,还不一次说清楚,你付完钱才知道后面还要付钱的,别问我怎么知道的。更多讨论,你也可以去看知乎:https://www.zhihu.com/questio…关于作者:Toby Qin, Python 技术爱好者,目前从事测试开发相关工作,转载请注明原文出处。欢迎关注我的博客 https://betacat.online,你可以到我的公众号中去当吃瓜群众。

February 23, 2019 · 1 min · jiezi