【工具】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…

相關文章
相關標籤/搜索