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 相关文章推荐
jQuery EasyUI API 中文文档 - Calendar日历使用
Oct 19 Javascript
Javascript判断对象是否相等实现代码
Mar 18 Javascript
JavaScript中的数值范围介绍
Dec 29 Javascript
分享两个手机访问pc网站自动跳转手机端网站代码
Dec 24 Javascript
BootStrap创建响应式导航条实例代码
May 31 Javascript
javascript入门之window对象【新手必看】
Nov 22 Javascript
基于jstree使用AJAX请求获取数据形成树
Aug 29 Javascript
React为 Vue 引入容器组件和展示组件的教程详解
May 03 Javascript
layUI实现列表查询功能
Jul 27 Javascript
使用ThinkJs搭建微信中控服务的实现方法
Aug 08 Javascript
vue视频播放暂停代码
Nov 08 Javascript
vue 路由守卫(导航守卫)及其具体使用
Feb 25 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中利用XML技术构造远程服务(上)
2006/10/09 PHP
php5.2时间相差8小时
2007/01/15 PHP
PHP安装GeoIP扩展根据IP获取地理位置及计算距离的方法
2016/07/01 PHP
thinkPHP模板算术运算相关函数用法分析
2016/07/12 PHP
PHP laravel中的多对多关系实例详解
2017/06/07 PHP
jquery实现手风琴效果实例代码
2013/11/15 Javascript
js实现文本框中焦点在最后位置
2014/03/04 Javascript
javascript判断是否按回车键并解决浏览器之间的差异
2014/05/13 Javascript
javascript实现简单的省市区三级联动
2015/05/14 Javascript
如何用JavaScript实现动态修改CSS样式表
2016/05/20 Javascript
AngularJS入门教程之链接与图片模板详解
2016/08/19 Javascript
Node.js获取前端ajax提交的request信息
2017/02/20 Javascript
利用JS制作万年历的方法
2017/08/16 Javascript
实现div内部滚动条滚动到底部和顶部的代码
2017/11/15 Javascript
详解如何在React组件“外”使用父组件的Props
2018/01/12 Javascript
微信小程序ibeacon三点定位详解
2018/10/31 Javascript
在vue中使用G2图表的示例代码
2019/03/19 Javascript
JS实现马赛克图片效果完整示例
2019/04/13 Javascript
基于JS实现计算24点算法代码实例解析
2020/07/23 Javascript
[04:38]完美世界携手游戏风云打造 卡尔工作室饰品系统篇
2013/04/25 DOTA
[06:16]DOTA2守卫传承者——职业选手谈心路历程
2015/02/26 DOTA
浅析Python中的赋值和深浅拷贝
2017/08/15 Python
Python实现合并同一个文件夹下所有PDF文件的方法示例
2018/04/28 Python
Python二叉树的镜像转换实现方法示例
2019/03/06 Python
Python+Appium实现自动化测试的使用步骤
2020/03/24 Python
使用 css3 实现圆形进度条的示例
2017/07/05 HTML / CSS
澳大利亚优质葡萄酒专家:Vintage Cellars
2019/01/08 全球购物
伦敦鲜花递送:Flower Station
2021/02/03 全球购物
预备党员党校学习自我评价分享
2013/11/12 职场文书
致1500米运动员广播稿
2014/02/07 职场文书
班干部演讲稿
2014/04/24 职场文书
贷款担保书范文
2014/05/13 职场文书
2014迎国庆标语大全
2014/09/19 职场文书
质量整改报告范文
2014/11/08 职场文书
大足石刻导游词
2015/02/02 职场文书
每日六道java新手入门面试题,通往自由的道路
2021/06/30 Java/Android