【工具】150行Node.js实现的dns代理工具

工具地址:github.com/Yi-love/dns…前端

安装:npm install dns-proxy-server -ggit

这个我以为应该仍是挺实用的一个工具。开发过程当中咱们须要配置IP来访问测试环境域名。github

使用电脑开发测试还好,直接使用Switch hosts! , 修改域名IP便可访问特定IP的域名网站。npm

那么如何在手机上也尽量容易的访问到测试环境呢?网络

手机如何访问到内部网络特定IP域名?

手机要访问到测试环境的域名,咱们须要作的就是创建一个代理服务,而后手机经过代理服务访问测试环境域名。app

常见的代理方式:工具

  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

mac用户须要使用sudo dnsproxy [ip [port]]方式。由于DNS绑定的是机器53端口。

配合Switch hosts!爽歪歪!!!!。

展望

就像上面说的,这个说小了就是个小小的DNS代理,说大了能够用做DNS域名服务。

欢迎star: github.com/Yi-love/dns…

相关文章
相关标签/搜索