150行Node.js实现的dns代理工具


Posted in Javascript onAugust 02, 2019

工具地址:github.com/Yi-love/dns…

安装: npm install dns-proxy-server -g

这个我觉得应该还是挺实用的一个工具。开发过程中我们需要配置IP来访问测试环境域名。

使用电脑开发测试还好,直接使用Switch hosts! , 修改域名IP即可访问特定IP的域名网站。

那么如何在手机上也尽可能容易的访问到测试环境呢?

手机如何访问到内部网络特定IP域名?

手机要访问到测试环境的域名,我们需要做的就是建立一个代理服务,然后手机通过代理服务访问测试环境域名。

常见的代理方式:

  1. 请求代理
  2. DNS代理

请求代理

无非就是作为一个中间人,代替手机访问测试环境域名,然后将请求结果返回手机。如果代理的是http请求还好,遇到https请求代理的话可以不是那么灵验了。虽然fiddler可以配置证书代理 https 请求,但是实际效果并不如人意,失败率还挺高的。

DNS代理

DNS代理说小一点就是个DNS解析服务,说大了就是个域名系统。

DNS代理只会告诉手机当前访问域名在哪个IP上。之后DNS代理访问并不会参与手机和测试环境域名直接的请求代理。

所以说:请求代理和DNS代理最大的区别就在这里,请求代理会参与请求,DNS不会参与。

为什么需要DNS代理

当前app里面有很多的内嵌页面(都是https请求), 使用请求代理,可能会App都登陆不了,这个适合选择DNS更合适。

但是DNS代理是看不见请求数据的,所以在需要抓包的场景,DNS无法做到。

使用 dns-proxy-server 服务

dns-proxy-server 是使用Node.js纯原生编写。使用非常方便。非常适合前端在手机app里预览内嵌页面。

安装:

npm install dns-proxy-server -g

使用:

dnsproxy[ ip[ port]]

案例: dnsproxy 172.28.24.1

150行Node.js实现的dns代理工具

mac用户需要使用 sudo dnsproxy [ip [port]] 方式。因为DNS绑定的是机器53端口。

配合 Switch hosts! 爽歪歪!!!!。

Javascript 相关文章推荐
页面中js执行顺序
Nov 09 Javascript
jQuery的实现原理的模拟代码 -4 重要的扩展函数 extend
Aug 03 Javascript
javascript获取作用在元素上面的样式属性代码
Sep 20 Javascript
jQuery操作动态生成的内容的方法
May 28 Javascript
jQuery实现复选框的全选和反选
Feb 02 Javascript
Angular实现的日程表功能【可添加及隐藏显示内容】
Dec 27 Javascript
解决vue中无法动态修改jqgrid组件 url地址的问题
Mar 01 Javascript
解决easyui日期时间框ie的兼容的问题
Mar 01 Javascript
Vue单页及多页应用全局配置404页面实践记录
May 22 Javascript
JQuery中DOM节点的操作与访问方法实例分析
Dec 23 jQuery
vue setInterval 定时器失效的解决方式
Jul 30 Javascript
小程序自定义圆形进度条
Nov 17 Javascript
el-select 下拉框多选实现全选的实现
Aug 02 #Javascript
js动态获取时间的方法分析
Aug 02 #Javascript
微信小程序实现语音识别转文字功能及遇到的坑
Aug 02 #Javascript
jQuery pager.js 插件动态分页功能实例分析
Aug 02 #jQuery
vue单页应用的内存泄露定位和修复问题小结
Aug 02 #Javascript
vue回到顶部监听滚动事件详解
Aug 02 #Javascript
微信小程序npm引入vant-weapp的踩坑记录
Aug 01 #Javascript
You might like
用PHP书写安全的脚本代码
2012/02/05 PHP
Sublime里直接运行PHP配置方法
2014/11/28 PHP
PHP输入流php://input实例讲解
2015/12/22 PHP
js 单引号 传递方法
2009/06/22 Javascript
jquery+ashx无刷新GridView数据显示插件(实现分页、排序、过滤功能)
2010/04/25 Javascript
jQuery老黄历完整实现方法
2015/01/16 Javascript
jQuery性能优化技巧分析
2015/02/20 Javascript
Ionic如何创建APP项目
2016/06/03 Javascript
JS扩展类,克隆对象与混合类实例分析
2016/11/26 Javascript
nodejs利用http模块实现银行卡所属银行查询和骚扰电话验证示例
2016/12/30 NodeJs
详解vue前后台数据交互vue-resource文档
2017/07/19 Javascript
「中高级前端面试」JavaScript手写代码无敌秘籍(推荐)
2019/04/08 Javascript
利用JavaScript将Excel转换为JSON示例代码
2019/06/14 Javascript
Vue 实现分页与输入框关键字筛选功能
2020/01/02 Javascript
[00:47]DOTA2荣耀之路6:玩不了啦!
2018/05/30 DOTA
Python函数学习笔记
2008/10/07 Python
Python读取Json字典写入Excel表格的方法
2018/01/03 Python
Python写出新冠状病毒确诊人数地图的方法
2020/02/12 Python
Django models文件模型变更错误解决
2020/05/11 Python
python 实现网易邮箱邮件阅读和删除的辅助小脚本
2021/03/01 Python
使用HTML5做个画图板的方法介绍
2013/05/03 HTML / CSS
HTML5之消息通知的使用(Web Notification)
2018/10/30 HTML / CSS
洛杉矶生活休闲而精致的基础品牌:Mika Jaymes
2018/01/07 全球购物
Harrods美国:英国最大的百货公司
2018/11/04 全球购物
迪卡侬(Decathlon)加拿大官网:源自法国的运动专业超市
2020/11/22 全球购物
电力公司个人求职信范文
2014/02/04 职场文书
关于晚自习早退的检讨书
2014/09/13 职场文书
2014学校领导四风对照检查材料思想汇报
2014/09/23 职场文书
公司地址变更通知
2015/04/25 职场文书
灵魂歌王观后感
2015/06/17 职场文书
2015年政治教研组工作总结
2015/07/22 职场文书
《曹冲称象》教学反思
2016/02/20 职场文书
小学四年级作文之最感动的一件事
2019/11/01 职场文书
小程序实现筛子抽奖
2021/05/26 Javascript
Python办公自动化PPT批量转换操作
2021/09/15 Python
Mysql中一千万条数据怎么快速查询
2021/12/06 MySQL