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 相关文章推荐
Opacity.js
Jan 22 Javascript
慎用 somefunction.prototype 分析
Jun 02 Javascript
JavaScript在IE和Firefox浏览器下的7个差异兼容写法小结
Jun 18 Javascript
wap浏览自动跳转到wap页面的js代码
May 17 Javascript
javascript使用call调用微信API
Dec 15 Javascript
在Google 地图上实现做的标记相连接
Jan 05 Javascript
JavaScript 定时器 SetTimeout之定时刷新窗口和关闭窗口(代码超简单)
Feb 26 Javascript
基于js 各种排序方法和sort方法的区别(详解)
Jan 03 Javascript
vue+vuex+axios实现登录、注册页权限拦截
Mar 09 Javascript
解决修复npm安装全局模块权限的问题
May 17 Javascript
mpvue微信小程序多列选择器用法之省份城市选择的实现
Mar 07 Javascript
在Vue项目中使用snapshot测试的具体使用
Apr 16 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
提问的智慧
2006/10/09 PHP
回答PHPCHINA上的几个问题:URL映射
2007/02/14 PHP
PHP+Memcache实现wordpress访问总数统计(非插件)
2014/07/04 PHP
php序列化函数serialize() 和 unserialize() 与原生函数对比
2015/05/08 PHP
javascript事件函数中获得事件源的两种不错方法
2014/03/17 Javascript
基于jQuery实现动态数字展示效果
2015/08/12 Javascript
BootStrap 智能表单实战系列(十)自动完成组件的支持
2016/06/13 Javascript
js无法获取到html标签的属性的解决方法
2016/07/26 Javascript
jQuery插件FusionCharts实现的MSBar3D图效果示例【附demo源码】
2017/03/23 jQuery
vue学习教程之带你一步步详细解析vue-cli
2017/12/26 Javascript
angular6根据environments配置文件更改开发所需要的环境的方法
2019/03/06 Javascript
如何使用50行javaScript代码实现简单版的call,apply,bind
2019/08/14 Javascript
JS判断数组是否包含某元素实现方法汇总
2020/06/24 Javascript
vue+echarts实现动态折线图的方法与注意
2020/09/01 Javascript
Python中几种操作字符串的方法的介绍
2015/04/09 Python
Python在Console下显示文本进度条的方法
2016/02/14 Python
Python实现统计给定列表中指定数字出现次数的方法
2018/04/11 Python
Python2.7 实现引入自己写的类方法
2018/04/29 Python
python 批量修改/替换数据的实例
2018/07/25 Python
使用matplotlib中scatter方法画散点图
2019/03/19 Python
Python关键字及可变参数*args,**kw原理解析
2020/04/04 Python
python中sympy库求常微分方程的用法
2020/04/28 Python
使用Python matplotlib作图时,设置横纵坐标轴数值以百分比(%)显示
2020/05/16 Python
如何理解python面向对象编程
2020/06/01 Python
python Protobuf定义消息类型知识点讲解
2021/03/02 Python
Paradigit比利时电脑卖场:购买笔记本、电脑、平板和外围设备
2016/11/28 全球购物
日语系毕业生推荐信
2013/11/11 职场文书
八年级语文教学反思
2014/02/11 职场文书
副科竞争上岗演讲稿
2014/05/12 职场文书
质检员岗位职责
2015/02/03 职场文书
自主招生自荐信怎么写
2015/03/24 职场文书
2015年营销工作总结范文
2015/04/23 职场文书
幼师辞职信范文大全
2015/05/12 职场文书
Python数据类型最全知识总结
2021/05/31 Python
python pygame入门教程
2021/06/01 Python
Win11软件图标固定到任务栏
2022/04/19 数码科技