微信公众号的开发,要搭建网站,并且随时都有可能修改网站内容进行调试,这就需要临时外网能返回本地开发环境搭建的项目进行测试,即内网映射到公网,但是好多开发者没有自己的域名和服务器,这里我们先来搭建一个本地代理环境把服务器地址变为外网能访问的地址。

  下面是我对内网映射外网的方法进行的一下简单总结:

  1 ngrok映射工具(失效)

  2 nodejs的localtunnel服务(虚拟域名,随机生成,总是变化,不方便)

  3 www.tunnel.mobl(失效)

  4 QQ浏览器微信调试工具(已下架)

  5 花生壳客户端--收费(Windows、Linux、树莓派、网页版),我电脑是mac的,没有对应客户端,所以没有选用这款工具


  6 pagekite(http://pagekite.net/)--收费 31天试用:我们进入他的官网,可以看到,它支持很多平台,我要使用的是mac平台的,点mac切换到安装命令提示上:

       

    安装提示打开终端执行命令,先执行第一行命令,完成后执行第二行,注意第二行中80,是你要使用的端口号,yourname是你的域名,第二条命令执行后,按照终端提示进行操作就可以了,提示注册产品是输入Y,提示填写邮箱时,最好填写真是邮箱然,之后记得去邮箱激活一下,提示继续时输入Y即可,提示保存设置时也输入Y。然后我们可以看到如下截图,图中蓝字即为本地端口号映射到外网的地址:

   

    打开注册邮箱,点击右键进行激活,可以看到,我的试用期是31天~

    

    激活后,终端会有提示信息:

    现在我们来测试一下,我在我的桌面,新建里一个test的文件夹,里面放了一个html文件,提示信息为Hello World,我们新开一个终端窗口使用python命令来启动服务:

    $ python -m SimpleHTTPServer 3100

    

    然后打开浏览器,在地址栏输入:http://localhost:3100/,可以看到我们的测试页面:

    打开本地端口号映射到外网的地址,我们也可以看到测试页面:

    证明使用pagekite,已经成功将内网穿透到了外网~~

    按control+C,可以退出pagekite,再次登录,执行命令$ pagekite.py即可(再次登陆系统会自动进入上次登陆的账号,自动完成网络映射)。


  7 NATAPP(https://natapp.cn/)--有2条免费隧道

    这里我要先说明一点,官网提示信息如下:

    我下面说的是免费隧道的使用方法,不能用于微信开发,如果有兴趣的同学,可以看看。

    先进入官网进行用户注册,注册完成后,下载客户端:

    下载完成后解压,然后打开终端,输入命令:

      打开终端进入natapp目录,执行 $ chmod a+x natapp

      然后接着执行 $ ./natapp

       结果如图所示:

    看到认证错误的提示信息,前面,我们已经进行了注册,但是那时,我没有申请免费隧道,现在,进入官网系统申请一个免费隧道,入口在购买通道菜单里,按照提示完成即可。注意隧道协议要选择Web。

     现在,我已经拥有了一条免费隧道:

    点击上图中的蓝色按钮--「点击复制」,赋值authtoken值,然后进入终端,输入命令:./natapp -authtoken=YourAuthtokenValue,执行成功,会看到如下界面:

    因为在配置pagekite的时候,我把测试页面放在了3100端口下,并用Python启动了服务,这里我图个省事,也是把natapp的端口设置在了3100,从上图中,可以看到,tunnel status 为online,这是,我们来看一眼,本地地址与外网地址页面:

    

    napapp已经配置成功了。

    按control+C退出,重新启动,执行命令./natapp -authtoken=YourAuthtokenValue

    (我写的过程比较简略,大家也可以参考这篇文章:https://natapp.cn/article/natapp_newbie)


  8 魔法隧道(http://www.mofasuidao.cn/)--有2条免费隧道

    进入魔法隧道官网,注册后登录,在用户控制中心,新建隧道,隧道信息可根据自己需要自行填写:

    创建完成后,可以在控制中心看到隧道列表:

    然后点击下载,到下载页面下载自己平台所需的客户端:

    我下载的是mac版的,下载后,我默认放到了桌面,打开终端,进入桌面目录,执行命令:

      $ chmod a+x mofaisuidao

      $ ./mofasuidao tokenValue

    上面命令行里的tokenValue为隧道token。

    看到下图则说明隧道已启动:

    这里我依然用3100端口做测试,可以看到成的页面效果如下:

    按control+C退出,执行命令$ ./mofasuidao tokenValue 启动隧道。

    魔法隧道官网,也提供了一篇文章,为使用魔法隧道提供帮助,大家也可以作为参考:http://www.mofasuidao.cn/rest/page/help

  到这里,我已知的内网映射外网的工具以及使用方法,已经总结完了,一方面,可以给自己备份下操作过程,另一方面,也希望给需要的同学提供一点参考,如果以后我知道了新的工具,也会补充到文章中的。

3 微信开发本地代理环境的搭建--实现将内网ip映射到外网的更多相关文章

  1. 微信公众号开发之怎样将本机IP映射成外网域名

    近期一个项目须要用到微信公众号的网页授权登录,在研究这个公众号的时候遇到各种困难,现将自己的一些心得总结一下. 我想进行微信公众号开发遇到的第一个困难就是微信公众号必须输入一个外网能够訪问的域名,在网 ...

  2. java -Mac搭建本地服务器并映射到外网

    最近在学习Html,小有进步变想着写一个浪漫的静态页面给女朋友浪漫一下,那么问题就来了,如何把我的网页让对网络一窍不通的女朋友看到,所以便想到了是用自己电脑作为服务器的想法.百度以后整理如下: 首先搭 ...

  3. Mac搭建本地服务器并映射到外网

    最近在学习Html,小有进步变想着写一个浪漫的静态页面给女朋友浪漫一下,那么问题就来了,如何把我的网页让对网络一窍不通的女朋友看到,所以便想到了是用自己电脑作为服务器的想法.百度以后整理如下: 首先搭 ...

  4. Android 获得本地IP地址、外网IP地址、本设备网络状态信息、本地Mac地址

    本地内网IP和外网IP的区别: 根据我的经验一台电脑需要两个ip才可以上网,一个是本地的内网ip 一个是外网的ip 本地的ip 一般是192.168.1.2这种样子  只要在不同的路由器上可以重复 外 ...

  5. Java开发和运行环境的搭建

    Java开发需要准备的东西? JDK+Eclipse 其中JDK的意思是Java开发工具包,Eclipse是进行用于做Java程序开发的工具(当然你也可以用记事本什么的去做). 其他开发工具:JCre ...

  6. 获取Mac、CPUID、硬盘序列号、本地IP地址、外网IP地址OCX控件

    提供获取Mac.CPUID.硬盘序列号.本地IP地址.外网IP地址OCX控件 开发语言:vc++ 可应用与WEB程序开发应用 <HTML><HEAD><TITLE> ...

  7. sockets+proxychains代理,使内网服务器可以访问外网

    Socks5+proxychains做正向代理 1.         应用场景: 有一台能上外网的机子,内网机子都不能连外网,需求是内网机子程序需要访问外网,做正向代理. 2.         软件 ...

  8. 本地k8s环境minikube搭建过程

    首先要安装docker这个环境是需要自己安装的.相关步骤如下: 1 2 3 4 5 6 7 8 9 10 11 yum install -y yum-utils device-mapper-persi ...

  9. VM中Linux网络设置(固定ip、连接外网开发环境)

      在开发过程中,我们经常需要在linux中进行操作.毕竟服务器的系统大多数都是Linux,所以在dev环境需要配置好一台Linux系统配合开发.   在VMWare Workstation Pro中 ...

随机推荐

  1. bzoj3774 最优选择

    题目描述: 小N手上有一个N*M的方格图,控制某一个点要付出Aij的代价,然后某个点如果被控制了,或者他周围的所有点(上下左右)都被控制了,那么他就算是被选择了的.一个点如果被选择了,那么可以得到Bi ...

  2. thinkphp5实现文件上传

    原理:通过form表单的enctype = "multipart / form-data"属性将文件临时放在htdocs文件夹的tmp目录下,再通过后台的程序将文件保存在自己设定的 ...

  3. Python中 模块、包、库

    模块:就是.py文件,里面定义了一些函数和变量,需要的时候就可以导入这些模块. 包:在模块之上的概念,为了方便管理而将文件进行打包.包目录下第一个文件便是 __init__.py,然后是一些模块文件和 ...

  4. python_time和datetime模块

    time和datatime模块 时间相关的操作,时间有三种表示方式: 时间戳               1970年1月1日之后的秒,即:time.time() 格式化的字符串    2019-1-1 ...

  5. Django-Ajax组件

    Ajax Ajax简介 AJAX(Asynchronous Javascript And XML),翻译成中文为"异步Javascript和XML".即使用Javascript语言 ...

  6. 【HIHOCODER 1033 】 交错和(数位DP)

    描述 输入 输入数据仅一行包含三个整数,l, r, k(0 ≤ l ≤ r ≤ 1018, |k| ≤ 100). 输出 输出一行一个整数表示结果,考虑到答案可能很大,输出结果模 109 + 7. 提 ...

  7. SQLServer__问题记录

    “备份集中的数据库备份与现有的xx数据库不同”  参考链接: http://www.cnblogs.com/huangfr/archive/2012/08/09/2629687.html RESTOR ...

  8. [转]android 如何获取第三方app的sha1值

    对于android 应用的sha1值和md5值的获取,如果是我们自己的应用,不论是获取测试的和正式的都是比较方便的.但是如何去获取别人开发的app的sha1和md5呢,并且我们只有apk有没有相关的文 ...

  9. Flex里监听mouseDownOutside事件解决弹出窗口点击空白关闭功能

    其实当用户在使用 PopUpManager 打开的某个组件外部单击时,会从该组件分派一个mouseDownOutside事件 监听该事件就能实现点击空白处关闭窗口的功能 this.addEventLi ...

  10. SQL SERVER 2008破解加密存储过程(修正存储过程过长解密出来是空白的问题)

    SQLServer2005里使用with encryption选项创建的存储过程仍然和sqlserver2000里一样,都是使用XOR进行了的加密.和2000不一样的是,在2005的系统表syscom ...