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 相关文章推荐
struts2+jquery+json实现异步加载数据(自写)
Jun 24 Javascript
js取得html iframe中的元素和变量值
Jun 30 Javascript
js判断手机端(Android手机还是iPhone手机)
Jul 22 Javascript
jquery+CSS实现的多级竖向展开树形TRee菜单效果
Aug 24 Javascript
jquery实现两边飘浮可关闭的对联广告
Nov 27 Javascript
js如何改变文章的字体大小
Jan 08 Javascript
Vue.js2.0中的变化小结
Oct 24 Javascript
原生javascript实现文件异步上传的实例讲解
Oct 26 Javascript
jQuery实现的简单无刷新评论功能示例
Nov 08 jQuery
HTML5+JS+JQuery+ECharts实现异步加载问题
Dec 16 jQuery
vue.js 嵌套循环、if判断、动态删除的实例
Mar 07 Javascript
vue.js内置组件之keep-alive组件使用
Jul 10 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无限分类(树形类)
2013/09/28 PHP
ThinkPHP、ZF2、Yaf、Laravel框架路由大比拼
2015/03/25 PHP
PHP文件后缀不强制为.php方法
2019/03/31 PHP
Jquey拖拽控件Draggable使用方法(asp.net环境)
2010/09/28 Javascript
js触发asp.net的Button的Onclick事件应用
2013/02/02 Javascript
js动态修改表格行colspan列跨度的方法
2015/03/30 Javascript
JS实现Select的option上下移动的方法
2016/03/01 Javascript
javascript拖拽效果延伸学习
2016/04/04 Javascript
巧用数组制作图片切换js代码
2016/11/29 Javascript
20170918 前端开发周报之JS前端开发必看
2017/09/18 Javascript
jQuery实现的两种简单弹窗效果示例
2018/04/18 jQuery
如何利用ES6进行Promise封装总结
2019/02/11 Javascript
JavaScript实现的3D旋转魔方动画效果实例代码
2019/07/31 Javascript
[12:51]71泪洒现场!是DOTA2让经典重现
2014/03/24 DOTA
python实现zencart产品数据导入到magento(python导入数据)
2014/04/03 Python
python-pyinstaller、打包后获取路径的实例
2019/06/10 Python
python单向链表的基本实现与使用方法【定义、遍历、添加、删除、查找等】
2019/10/24 Python
python 命名规范知识点汇总
2020/02/14 Python
Python3.7.0 Shell添加清屏快捷键的实现示例
2020/03/23 Python
使用jupyter notebook将文件保存为Markdown,HTML等文件格式
2020/04/14 Python
详解使用Python写一个向数据库填充数据的小工具(推荐)
2020/09/11 Python
纯CSS实现预加载动画效果
2017/09/06 HTML / CSS
伦敦时尚生活的缩影:LN-CC
2017/01/24 全球购物
PHP面试题及答案一
2012/06/18 面试题
SQL Server 2000数据库的文件有哪些,分别进行描述
2013/03/30 面试题
应届毕业生个人自我评价
2013/09/20 职场文书
会计大学生职业生涯规划书范文
2014/01/13 职场文书
幼儿园运动会加油词
2014/02/14 职场文书
大气污染防治方案
2014/05/19 职场文书
教师党员批评与自我批评发言稿
2014/10/15 职场文书
公司2014年度工作总结
2014/12/10 职场文书
教师年终个人总结
2015/02/11 职场文书
2016年妇联“6﹒26国际禁毒日”宣传活动总结
2016/04/05 职场文书
Vue.js 带下拉选项的输入框(Textbox with Dropdown)组件
2021/04/17 Vue.js
探讨Java中的深浅拷贝问题
2021/06/26 Java/Android