例如我们公司在本地局域网中设置了一台电脑/服务器, 该电脑使用Apache + PHP + Mysql环境并且安装了客户管理系统(CRM)。公司员工都可以在本地局域网内访问此管理系统。但是,我们希望该系统同时可以在外网被访问,这样我们员工就可以在家里能访问客户管理系统了。要实现这个功能其实非常简单,那就是在路由器上面进行端口映射,并使用DDNS动态域名解析服务。
完成这些操作,即可输入动态域名如http://unifore.ddns.net 来访问系统,而不是本地IP地址 http://192.168.1.2。 但是,有很多中国电信猫不支持端口映射,或者设置好了还是无法允许外网访问,你又不想购买一台新的路由器,遇到这种情况可以使用Ngrok, Pagekite 反向代理软件/服务。
Ngrok, Pagekite的原理我不是很清楚,可能就是本地电脑安装的客户端把电脑的IP地址和端口号上传给远程服务器,远程服务器存储了客户端网络信息供外网用户来连接,类似于P2P服务器。这些反向代理可实现无需端口转发,无需使用DDNS就可以使本地部署的网站让外网能直接访问。 Ngrok和Pagekite软件被广泛应用于微信开发中。
此次我们选择了国内的Ngrok免费服务,该网站这样描述Ngrok服务的: “一条命令解决的外网访问内网问题,本地WEB外网访问、本地开发微信、TCP端口转发。”