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中的事件处理
Jan 16 Javascript
flexigrid 类似ext grid的JS表格代码
Jul 17 Javascript
js实现网站最上边可关闭的浮动广告条代码
Sep 04 Javascript
JS+CSS实现的蓝色table选项卡效果
Oct 08 Javascript
基于jquery实现智能提示控件intellSeach.js
Mar 17 Javascript
jQuery插件开发汇总
May 15 Javascript
jQuery通过ajax请求php遍历json数组到table中的代码(推荐)
Jun 12 Javascript
微信小程序页面生命周期详解
Jan 31 Javascript
超好用的jQuery分页插件jpaginate用法示例【附源码下载】
Dec 06 jQuery
一步快速解决微信小程序中textarea层级太高遮挡其他组件
Mar 04 Javascript
微信小程序后台持续定位功能使用详解
Aug 23 Javascript
JavaScript实现鼠标移入随机变换颜色
Nov 24 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
解析PHP中的内存管理,PHP动态分配和释放内存
2013/06/28 PHP
PHP实现的交通银行网银在线支付接口ECSHOP插件和使用例子
2014/05/10 PHP
基于jquery的横向滚动条(滑动条)
2011/02/24 Javascript
基于Jquery实现表格动态分页实现代码
2011/06/21 Javascript
网站404页面3秒后跳到首页的实例代码
2013/08/16 Javascript
ajax请求乱码的解决方法(中文乱码)
2014/04/10 Javascript
Javascript WebSocket使用实例介绍(简明入门教程)
2014/04/16 Javascript
js实现获取两个日期之间所有日期的方法
2016/06/17 Javascript
Angular2学习教程之组件中的DOM操作详解
2017/05/28 Javascript
解决vue axios的封装 请求状态的错误提示问题
2018/09/25 Javascript
教你如何编写Vue.js的单元测试的方法
2018/10/17 Javascript
深入解析ES6中的promise
2018/11/08 Javascript
使用layer弹窗提交表单时判断表单是否输入为空的例子
2019/09/26 Javascript
这15个Vue指令,让你的项目开发爽到爆
2019/10/11 Javascript
Python 中的with关键字使用详解
2016/09/11 Python
python使用pdfminer解析pdf文件的方法示例
2018/12/20 Python
python使用paramiko模块通过ssh2协议对交换机进行配置的方法
2019/07/25 Python
pycharm配置git(图文教程)
2019/08/16 Python
python如何从文件读取数据及解析
2019/09/19 Python
Python利用逻辑回归模型解决MNIST手写数字识别问题详解
2020/01/14 Python
Python数据正态性检验实现过程
2020/04/18 Python
Python如何合并多个字典或映射
2020/07/24 Python
HTML5在a标签内放置块级元素示例代码
2013/08/23 HTML / CSS
ET Mall东森购物网:东森严选
2017/03/06 全球购物
美国隐形眼镜销售网站:ContactsDirect
2017/10/28 全球购物
人民调解员培训方案
2014/06/05 职场文书
2014离婚协议书范文(3篇)
2014/11/29 职场文书
初一数学教学反思
2016/02/17 职场文书
职场领导同事生日简短祝福语
2019/08/06 职场文书
MySQL Threads_running飙升与慢查询的相关问题解决
2021/05/08 MySQL
JavaWeb 入门篇(3)ServletContext 详解 具体应用
2021/07/16 Java/Android
CKAD认证中部署k8s并配置Calico插件
2022/03/31 Servers
MySQL中优化SQL语句的方法(show status、explain分析服务器状态信息)
2022/04/09 MySQL
python pygame 开发五子棋双人对弈
2022/05/02 Python
Nginx 502 bad gateway错误解决的九种方案及原因
2022/08/14 Servers