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 相关文章推荐
nicejforms——美化表单不用愁
Feb 20 Javascript
基于JavaScript制作霓虹灯文字 代码 特效
Sep 01 Javascript
关于JavaScript和jQuery的类型判断详解
Oct 08 Javascript
浅谈Angular.js中使用$watch监听模型变化
Jan 10 Javascript
angular和BootStrap3实现购物车功能
Jan 25 Javascript
Angular.js ng-file-upload结合springMVC的使用教程
Jul 10 Javascript
自定义事件解决重复请求BUG的问题
Jul 11 Javascript
基于jquery trigger函数无法触发a标签的两种解决方法
Jan 06 jQuery
vue.js 底部导航栏 一级路由显示 子路由不显示的解决方法
Mar 09 Javascript
详解react内联样式使用webpack将px转rem
Sep 13 Javascript
微信小程序实现星级评价效果
Dec 28 Javascript
vue基于better-scroll仿京东分类列表
Jun 30 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实现框架(一)
2006/10/09 PHP
最令PHP初学者们头痛的十四个问题
2007/01/15 PHP
PHP下对数组进行排序的函数
2010/08/08 PHP
php 数组字符串搜索array_search技巧
2016/07/05 PHP
PHP实现的方程求解示例分析
2016/11/11 PHP
用Jquery重写windows.alert方法实现思路
2013/04/03 Javascript
JavaScript定义类的几种方式总结
2014/01/06 Javascript
Firefox下无法正常显示年份的解决方法
2014/09/04 Javascript
JavaScript数据库TaffyDB用法实例分析
2015/07/27 Javascript
JavaScript常用数组算法小结
2016/02/13 Javascript
JavaScript 栈的详解及实例代码
2017/01/22 Javascript
React Native 自定义下拉刷新上拉加载的列表的示例
2018/03/01 Javascript
vue.js删除列表中的一行
2018/06/30 Javascript
详解在vue-cli中使用graphql即vue-apollo的用法
2018/09/08 Javascript
arctext.js实现文字平滑弯曲弧形效果的插件
2019/05/13 Javascript
JQuery实现简单的复选框树形结构图示例【附源码下载】
2019/07/16 jQuery
JS实现动态倒计时功能(天数、时、分、秒)
2019/12/12 Javascript
用javascript实现倒计时效果
2021/02/09 Javascript
Python实现在tkinter中使用matplotlib绘制图形的方法示例
2018/01/18 Python
使用numpy和PIL进行简单的图像处理方法
2018/07/02 Python
使用Python批量修改文件名的代码实例
2019/01/24 Python
200行python代码实现2048游戏
2019/07/17 Python
Python企业编码生成系统总体系统设计概述
2019/07/26 Python
python获取网络图片方法及整理过程详解
2019/12/20 Python
Python 模拟动态产生字母验证码图片功能
2019/12/24 Python
基于python实现语音录入识别代码实例
2020/01/17 Python
keras读取h5文件load_weights、load代码操作
2020/06/12 Python
PyTorch安装与基本使用详解
2020/08/31 Python
python实现一个简单RPC框架的示例
2020/10/28 Python
英国在线发型和美容产品商店:Beauty Cutie
2019/04/27 全球购物
瑞典最大的儿童用品网上商店:pinkorblue.se
2021/03/09 全球购物
优秀教师工作感言
2014/02/16 职场文书
房产遗嘱范本
2015/08/06 职场文书
初中班主任教育随笔
2015/08/15 职场文书
分享CSS盒子模型隐藏的几种方式
2022/02/28 HTML / CSS
全新239军机修复记
2022/04/05 无线电