文章插图
障碍二:位于不同局域网内的两台主机 , 即使是知道了对方的 IP 地址和端口号 , “一厢情愿”地将数据包发送过去 , 对方也是接收不到的 。
因为出于安全起见 , 除非是主机主动向对方发出了连接请求(这时会在该主机的数据结构中留下一条记录) , 否则 , 当主机接收到数据包时 , 如果在其数据结构中查询不到对应的记录 , 那些不请自来的数据包将会被丢弃 。
文章插图
解决办法:要想解决以上两大障碍 , 我们需要借助一台具有公网 IP 的服务器进行桥接 。
二、常见的内网穿透产品
2.1、花生壳花生壳既是内网穿透软件、内网映射软件,也是端口映射软件 。规模最大 , 较正规 , 完善 。
收费高 , 使用简单
官网:http://www.oray.com/
文章插图
2.2、Nat123nat123是内网端口映射与动态域名解析软件 , 在内网启动映射后 , 可在外网访问连接内网网站等应用 。整个网站我都没有找到客服电话 , 网友发了一些反面的评价
收费 , 使用简单
官网:http://www.nat123.com
文章插图
2.3、NATAPPNATAPP基于ngrok的国内内网穿透服务 , 免费版会强制更换域名 , 临时用一下可以
收费 , 使用简单
官网:https://natapp.cn/
文章插图
2.4、frp与其它frp 是一个高性能的反向代理应用 , 可以帮助您轻松地进行内网穿透 , 对外网提供服务 , 支持 tcp, http, https 等协议类型 , 并且 web 服务支持根据域名进行路由转发 。
开源免费
使用相对复杂 , 需要代理服务器支持
官网:https://github.com/fatedier/frp
文档:查看帮助文档 , 简书示例
利用处于内网或防火墙后的机器 , 对外网环境提供 http 或 https 服务 。
对于 http, https 服务支持基于域名的虚拟主机 , 支持自定义域名绑定 , 使多个域名可以共用一个80端口 。
利用处于内网或防火墙后的机器 , 对外网环境提供 tcp 和 udp 服务 , 例如在家里通过 ssh 访问处于公司内网环境内的主机 。
文章插图
因为frp 仍然处于前期开发阶段 , 未经充分测试与验证 , 不推荐用于生产环境 , 所有我选择了ngrok , 资料比较多 。
还有如圣剑内网通、ngrok(开源免费)、更多办法
三、ngrokngrok是一个反向代理 , 通过在公共的端点和本地运行的Web服务器之间建立一个安全的通道 。ngrok可捕获和分析所有通道上的流量 , 便于后期分析与响应 。
开源免费
官网:https://ngrok.com/
源码:https://github.com/inconshreveable/ngrok
文章插图
ngrok1.x开源 , ngrok2.x不开源
ngrok使用Go语言开发 , 源代码分为客户端与服务器端 。
国内免费服务器:http://ngrok.ciqiuwl.cn/ , 更多免费服务器请大家挖掘 , 资源共享 , 我随时更新:)
如果有服务器 , 仅客户端的使用是不复杂的 , 以上面的免费服务器为示例完成内网穿透
现在假定我的本地已成功部署了一个网站 , 访问地址为127.0.0.1 , 想内网穿透后被公网上的用户访问 , 一般步骤如下:
步骤1、下载windows版本的客户端 , 解压 。一般在为你提供代理服务器的网站上找你要下载的客户端:
文章插图
步骤2、在命令(cmd)行下进入到ngrok客户端目录下
文章插图
推荐阅读
- 搭建ELK容器化
- 如何搭建一支高效的互联网运营团队
- web服务器 IIS、Apache和Ngnix基础
- Ubuntu16.04搭建VNC Server远程桌面服务器
- Ngrok:超简单的内网穿透,了解一下?
- Nginx+Tomcat搭建高性能负载均衡集群
- 服务器端如何开启GZIP压缩功能
- 虚拟主机、服务器在网站建设选购主机大有讲究
- 史上最全Linux服务器程序规范
- 分享Nginx搭建图片服务器简单实现