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 相关文章推荐
ExtJS 2.0 实用简明教程之布局概述
Apr 29 Javascript
JavaScript中也使用$美元符号来代替document.getElementById
Jun 19 Javascript
网易JS面试题与Javascript词法作用域说明
Nov 09 Javascript
JQury slideToggle闪烁问题及解决办法
Jul 05 Javascript
jQuery中:last-child选择器用法实例
Dec 31 Javascript
详细分析Javascript中创建对象的四种方式
Aug 17 Javascript
JS实现淡入淡出图片效果的方法分析
Dec 20 Javascript
JS实现仿微信支付弹窗功能
Jun 25 Javascript
jQuery实现的点击按钮改变样式功能示例
Jul 21 jQuery
node基于async/await对mysql进行封装
Jun 20 Javascript
vue下使用nginx刷新页面404的问题解决
Aug 02 Javascript
在vue项目中封装echarts的步骤
Dec 25 Vue.js
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
Lumen timezone 时区设置方法(慢了8个小时)
2018/01/20 PHP
php实现生成带二维码图片并强制下载功能
2018/02/24 PHP
php实现等比例压缩图片
2018/07/26 PHP
laravel框架邮箱认证实现方法详解
2019/11/22 PHP
HTML代码中标签的全部属性 中文注释说明
2009/03/26 Javascript
jquery.validate使用攻略 第一部
2010/07/01 Javascript
CodeMirror2 IE7/IE8 下面未知运行时错误的解决方法
2012/03/29 Javascript
javascript中var的重要性分析
2015/02/11 Javascript
Bootstrap登陆注册页面开发教程
2016/07/12 Javascript
Bootstrap零基础学习第一课之模板
2016/07/18 Javascript
微信公众平台开发教程(五)详解自定义菜单
2016/12/02 Javascript
JS定时检测任务任务完成后执行下一步的解决办法
2016/12/22 Javascript
原生js实现返回顶部缓冲效果
2017/01/18 Javascript
你真的了解BOM中的history对象吗
2017/02/13 Javascript
详解nodejs解压版安装和配置(带有搭建前端项目脚手架)
2018/12/06 NodeJs
js实现web调用摄像头 js截取视频画面
2019/04/21 Javascript
js中arguments对象的深入理解
2019/05/14 Javascript
react+redux仿微信聊天界面
2019/06/21 Javascript
js遍历详解(forEach, map, for, for...in, for...of)
2019/08/28 Javascript
JavaScript 判断浏览器是否是IE
2021/02/19 Javascript
python使用锁访问共享变量实例解析
2018/02/08 Python
分分钟入门python语言
2018/03/20 Python
python实现飞机大战微信小游戏
2020/03/21 Python
详解Python图像处理库Pillow常用使用方法
2019/09/02 Python
Python小程序 控制鼠标循环点击代码实例
2019/10/08 Python
结合OpenCV与TensorFlow进行人脸识别的实现
2019/10/10 Python
Python+OpenCV实现将图像转换为二进制格式
2020/01/09 Python
10种CSS3实现的loading动画,挑一个走吧?
2020/11/16 HTML / CSS
免费获得微软MCSD证书赶快行动吧!
2012/11/13 HTML / CSS
远程学习的教学用品和家庭学习资源:Really Good Stuff
2020/04/27 全球购物
四年大学生活的个人自我评价
2013/12/11 职场文书
经营理念标语
2014/06/21 职场文书
2015财务年终工作总结范文
2015/05/22 职场文书
信仰观后感
2015/06/03 职场文书
Golang的继承模拟实例
2021/06/30 Golang
如何Python使用re模块实现okenizer
2022/04/30 Python