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 相关文章推荐
javascript 写类方式之七
Jul 05 Javascript
javascript高级学习笔记整理
Aug 14 Javascript
jquery移除button的inline onclick事件(已测试及兼容浏览器)
Jan 25 Javascript
JavaScript事件委托的技术原理探讨示例
Apr 17 Javascript
JavaScript运动减速效果实例分析
Aug 04 Javascript
js实现异步循环实现代码
Feb 16 Javascript
JS onkeypress兼容性写法详解
Apr 27 Javascript
Vue.js动态添加、删除选题的实例代码
Sep 30 Javascript
vue.js获取数据库数据实例代码
May 26 Javascript
JS库之Waypoints的用法详解
Sep 13 Javascript
vue-resource post数据时碰到Django csrf问题的解决
Mar 13 Javascript
微信小程序APP的生命周期及页面的生命周期
Apr 19 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初学者(入门学习经验谈)
2010/10/12 PHP
ecshop 2.72如何修改后台访问地址
2015/03/03 PHP
Laravel 5框架学习之日期,Mutator 和 Scope
2015/04/08 PHP
php+html5实现无刷新图片上传教程
2016/01/22 PHP
简单实用的js调试logger组件实现代码
2010/11/20 Javascript
jQuery学习笔记[1] jQuery中的DOM操作
2010/12/03 Javascript
jQuery UI Dialog 创建友好的弹出对话框实现代码
2012/04/12 Javascript
使用JS实现jQuery的addClass, removeClass, hasClass函数功能
2014/10/31 Javascript
jQuery中:nth-child选择器用法实例
2014/12/31 Javascript
浅谈javascript中的instanceof和typeof
2015/02/27 Javascript
使用基于Node.js的构建工具Grunt来发布ASP.NET MVC项目
2016/02/15 Javascript
深入理解$.each和$(selector).each
2016/05/15 Javascript
Java框架SSH结合Easyui控件实现省市县三级联动示例解析
2016/06/12 Javascript
js选择器全面解析
2016/06/27 Javascript
JS实现方形抽奖效果
2018/08/27 Javascript
一步快速解决微信小程序中textarea层级太高遮挡其他组件
2019/03/04 Javascript
浅析Vue中拆分视图层代码的5点建议
2019/08/15 Javascript
jQuery冲突问题解决方法
2021/01/19 jQuery
[04:44]DOTA2 2017全国高校联赛视频回顾
2017/08/21 DOTA
python通过colorama模块在控制台输出彩色文字的方法
2015/03/19 Python
python检查指定文件是否存在的方法
2015/07/06 Python
Python地图绘制实操详解
2019/03/04 Python
在Pandas中处理NaN值的方法
2019/06/25 Python
django 使用 PIL 压缩图片的例子
2019/08/16 Python
python KNN算法实现鸢尾花数据集分类
2019/10/24 Python
pytorch masked_fill报错的解决
2020/02/18 Python
Python 在局部变量域中执行代码
2020/08/07 Python
纯CSS实现聊天框小尖角、气泡效果
2014/04/04 HTML / CSS
《赶海》教学反思
2014/04/20 职场文书
赡养老人协议书
2014/04/21 职场文书
节能环保标语
2014/06/12 职场文书
入党自荐书范文
2015/03/05 职场文书
2015年助理政工师工作总结
2015/05/26 职场文书
nginx如何将http访问的网站改成https访问
2021/03/31 Servers
mysql幻读详解实例以及解决办法
2022/06/16 MySQL
Nginx开源可视化配置工具NginxConfig使用教程
2022/06/21 Servers