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 相关文章推荐
在IE6下发生Internet Explorer cannot open the Internet site错误
Jun 21 Javascript
JavaScript中两个感叹号的作用说明
Dec 28 Javascript
javascript模拟map输出与去除重复项的方法
Feb 09 Javascript
jquery简单的弹出层浮动层代码
Apr 27 Javascript
js+html5实现canvas绘制镂空字体文本的方法
Jun 05 Javascript
jQuery Validation Plugin验证插件手动验证
Jan 26 Javascript
详解基于Node.js的微信JS-SDK后端接口实现代码
Jul 15 Javascript
bootstrap动态调用select下拉框的实例代码
Aug 09 Javascript
浅析vue-router原理
Oct 19 Javascript
如何基于vue-cli3.0构建功能完善的移动端架子
Apr 24 Javascript
vue如何限制只能输入正负数及小数
Jul 04 Javascript
vue中组件通信详解(父子组件, 爷孙组件, 兄弟组件)
Jul 27 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
AMFPHP php远程调用(RPC, Remote Procedure Call)工具 快速入门教程
2010/05/10 PHP
在Linux系统下一键重新安装WordPress的脚本示例
2015/06/30 PHP
php图片添加文字水印实现代码
2016/03/15 PHP
php通过执行CutyCapt命令实现网页截图的方法
2016/09/30 PHP
JS+XML 省份和城市之间的联动实现代码
2009/10/14 Javascript
js中的getAttribute方法使用示例
2014/08/01 Javascript
使用pjax实现无刷新更改页面url
2015/02/05 Javascript
JS+CSS实现大气清新的滑动菜单效果代码
2015/10/22 Javascript
javascript中利用柯里化函数实现bind方法
2016/04/29 Javascript
Bootstrap基本插件学习笔记之折叠(22)
2016/12/08 Javascript
微信公众号菜单配置微信小程序实例详解
2017/03/31 Javascript
jQuery 开发之EasyUI 添加数据的实例
2017/09/26 jQuery
JS获取一个表单字段中多条数据并转化为json格式
2017/10/17 Javascript
Vue使用mixins实现压缩图片代码
2018/03/14 Javascript
vue实现全匹配搜索列表内容
2019/09/26 Javascript
基于JavaScript实现留言板功能
2020/03/16 Javascript
js实现小时钟效果
2020/03/25 Javascript
微信小程序报错: thirdScriptError的错误问题
2020/06/19 Javascript
[01:03:51]2018DOTA2亚洲邀请赛 4.7 淘汰赛 VP vs LGD 第三场
2018/04/09 DOTA
基于python中pygame模块的Linux下安装过程(详解)
2017/11/09 Python
对numpy 数组和矩阵的乘法的进一步理解
2018/04/04 Python
Pandas标记删除重复记录的方法
2018/04/08 Python
Python实现针对给定单链表删除指定节点的方法
2018/04/12 Python
解决pycharm remote deployment 配置的问题
2019/06/27 Python
手动安装python3.6的操作过程详解
2020/01/13 Python
python实现在线翻译功能
2020/03/03 Python
Pycharm生成可执行文件.exe的实现方法
2020/06/02 Python
使用Python实现NBA球员数据查询小程序功能
2020/11/09 Python
HTML5 LocalStorage 本地存储刷新值还在
2017/03/10 HTML / CSS
工业设计专业推荐信
2013/10/29 职场文书
高校毕业生登记表自我鉴定
2013/11/03 职场文书
公司综合部的成员自我评价分享
2013/11/05 职场文书
《姥姥的剪纸》教学反思
2014/02/25 职场文书
交通志愿者活动总结
2014/06/27 职场文书
2014年医院科室工作总结
2014/12/20 职场文书
会议开幕词
2015/01/28 职场文书