<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          Nohost基于 Whistle 的遠(yuǎn)程配置及抓包調(diào)試平臺(tái)

          聯(lián)合創(chuàng)作 · 2023-09-29 07:05

          Nohost 是基于 Whistle 實(shí)現(xiàn)的多用戶多環(huán)境配置及抓包調(diào)試系統(tǒng),不僅具備 Whistle 的所有功能,并在 Whistle 基礎(chǔ)上擴(kuò)展了一些功能,且支持多人多環(huán)境同時(shí)使用,主要用于部署在公共服務(wù)器上供整個(gè)部門(公司)的同事共同使用,具有以下功能:

          1. 環(huán)境共享:前端無(wú)需配后臺(tái)環(huán)境,后臺(tái)無(wú)需配前端環(huán)境,其他人無(wú)需配任何環(huán)境
          2. 抓包調(diào)試:遠(yuǎn)程實(shí)時(shí)抓包調(diào)試,支持各種 Whistle 規(guī)則,以及通過鏈接分享抓包數(shù)據(jù)
          3. 歷史記錄:可以把環(huán)境配置及抓包數(shù)據(jù)沉淀下來(lái),供后續(xù)隨時(shí)切換查看
          4. 插件擴(kuò)展:可以通過插件擴(kuò)展實(shí)現(xiàn)諸如 inspect,vase,autosave 等功能
          5. 對(duì)外接口:提供對(duì)外接口,可供發(fā)布系統(tǒng)、CI等工具操作,實(shí)現(xiàn)自動(dòng)化增刪查改環(huán)境配置

          目錄

          一. 準(zhǔn)備

          二. 安裝

          三. 設(shè)置

          四. 訪問

          五. 賬號(hào)

          六. 配置

          七. 規(guī)則

          一. 準(zhǔn)備

          安裝 Nohost 之前,建議先做好以下工作:

          1. 準(zhǔn)備一臺(tái)服務(wù)器,假設(shè)IP為:10.1.2.3(以你自己的服務(wù)器為準(zhǔn),建議4核8G以上的配置)
          2. 準(zhǔn)備一個(gè)域名(以下假設(shè)為:nohost.imweb.io),并把 DNS 指向上述服務(wù)器(10.1.2.3)
          3. 收集涉及域名的證書對(duì),只支持 xxx.key 和 xxx.crt(非必須,但建議用正式的證書,否則要么 Nohost 里面無(wú)法查看 HTTPS 的內(nèi)容,要么每個(gè)訪問 Nohost 的客戶端都要安裝一遍根證書)
          申請(qǐng)域名的好處是可以直接用域名訪問管理及賬號(hào)頁(yè)面,手機(jī)也可以通過域名設(shè)置代理訪問 Nohost,方便記憶及輸入

          二. 安裝

          首先,需要安裝Node(建議使用最新的LTS版本):Node

          Node安裝成功后,通過npm安裝 nohost

          npm i -g @nohost/server --registry=https://r.npm.taobao.org

          安裝完成后執(zhí)行啟動(dòng)命令:

          n2 start
          

          也可以啟動(dòng)時(shí)直接設(shè)置當(dāng)前 Nohost 服務(wù)到域名 n2 restart -o nohost.imweb.io Nohost 的默認(rèn)端口為 8080,如果需要自定義端口,可以通過 n2 restart -p 80 設(shè)置。 如果命令行提示沒有對(duì)應(yīng)命令,檢查下系統(tǒng)環(huán)境變量 PATH 配置,看看 Nohost 安裝后生成的命令所在目錄是否已添加到 PATH。 

          重啟 Nohost

          n2 restart

          停止 Nohost

          n2 stop

          重置管理員賬號(hào):

          n2 restart --reset

          三. 設(shè)置

          安裝啟動(dòng)成功后,打開管理員頁(yè)面 http://10.1.2.3:8080/admin.html#system/administrator,輸入默認(rèn)用戶名(admin)和密碼(123456),打開系統(tǒng)配置后:

          其中 10.1.2.3 表示Nohost運(yùn)行的服務(wù)器IP,具體根據(jù)實(shí)際 ServerIP 替換
          1. 修改管理員的默認(rèn)賬號(hào)名和密碼(不建議使用默認(rèn)賬號(hào)及密碼,如果忘記管理員賬號(hào)名或密碼,可以通過 n2 restart --reset 重置
          2. 設(shè)置Nohost的域名(將申請(qǐng)的域名填上,如果需要設(shè)置多個(gè)域名,可以通過逗號(hào) , 分隔,也可以通過啟動(dòng)參數(shù) -o www.xxx.com,www.yyy.com 設(shè)置)
          3. 上傳涉及的 key 和證書(證書只支持 .crt 格式)

          Note: 設(shè)置的域名 DNS 一定要指向該IP,否則可能出現(xiàn)不可用狀態(tài),上述配置會(huì)自動(dòng)重啟服務(wù),建議避免頻繁操作

          四. 訪問

          Nohost 本身就是一個(gè)代理,可以直接配置瀏覽器或系統(tǒng)代理訪問,也可以通過 Nginx反向代理訪問,為方便大家使用,針對(duì)不同的人群可以使用不同的方案(以下用 nohost.imweb.io 表示 Nohost 的域名,具體域名需要自己申請(qǐng)及設(shè)置)。

          前端開發(fā)

          前端開發(fā)建議使用最新版的 Whistle,可以通過以下兩種方式訪問 Nohost:

          1. 直接在 Whistle 上配置遠(yuǎn)程規(guī)則

            @http://nohost.imweb.io:8080/whistle.nohost/cgi-bin/plugin-rules
            

            上述配置表示 Whistle 從 http://nohost.imweb.io:8080/whistle.nohost/cgi-bin/plugin-rules 獲取 Nohost 的生成的入口規(guī)則,并且如果 Nohost 規(guī)則有變會(huì)自動(dòng)更新規(guī)則,這些規(guī)則是由 Nohost 上傳證書的域名及界面 配置/入口配置 配置的規(guī)則自動(dòng)生成(具體參見后面的配置),這些規(guī)則可以自動(dòng)過濾掉無(wú)關(guān)請(qǐng)求,只會(huì)把相關(guān)的請(qǐng)求轉(zhuǎn)到Nohost。

            當(dāng)然這種直接手動(dòng)配置在 Whistle 上還不是最好的方式,更建議的方式是把這些規(guī)則集成到插件里面,這樣開發(fā)者只需安裝插件即可。

          2. 【強(qiáng)烈推薦】 集成 Whistle 插件,具體參考:https://github.com/nohosts/whistle.nohost-imweb/blob/master/dev.md

          后臺(tái)開發(fā)

          后臺(tái)開發(fā)推薦使用 Chrome 的 SwitchyOmega 配置代理規(guī)則 (如上述代理配置 nohost.imweb.io + 8080),如果不想所有請(qǐng)求都轉(zhuǎn)到 Nohost,可以配置 SwitchyOmega 的自動(dòng)切換或者用PAC腳本代替,也可以參考 nohost-client 打包一個(gè)客戶端:https://github.com/nohosts/client。手機(jī)端可以直接配代理,或者通過 VPN App 設(shè)置代理,如 iPhone 可以用 detour。

          其他人員

          非開發(fā)人員盡量使用客戶端、APP、或通過外網(wǎng)轉(zhuǎn)發(fā)的方式,減少他們的接入成本,如何打包客戶端參考:https://github.com/nohosts/client;手機(jī)等同后臺(tái)開發(fā)的配置方式。

          外網(wǎng)訪問

          一般 Nohost 是部署在公司內(nèi)網(wǎng),外網(wǎng)是不可以直接訪問,需要通過接入層(如:Nginx)轉(zhuǎn)發(fā)。

          五. 賬號(hào)

          安裝好插件或配置好代理后,打開相關(guān)頁(yè)面(這些頁(yè)面的域名必須在上面上傳證書里面,如果沒有需要額外配置,具體參考下方 配置 說明),即可看到頁(yè)面左下腳出現(xiàn)一個(gè)小圓點(diǎn),點(diǎn)擊小圓點(diǎn)可以進(jìn)行切換環(huán)境:

          如果頁(yè)面左下腳沒出現(xiàn)小圓點(diǎn),可以看下面 配置 說明 第一次打開小圓點(diǎn)只有一個(gè) 正式環(huán)境,需要管理員添加賬號(hào):

          添加完賬號(hào)后,打開獨(dú)立的環(huán)境選擇頁(yè)面 http://nohost.imweb.io:8080

          創(chuàng)建完環(huán)境后,可以在環(huán)境里面配置任何 Whistle 規(guī)則,跟普通到本地 Whistle 功能一模一樣,甚至更多。每個(gè)實(shí)例可以建立上百個(gè)賬號(hào),每個(gè)賬號(hào)可以建立上百個(gè)環(huán)境,具體取決于你到機(jī)器性能。

          六. 配置

          默認(rèn)情況下,只有證書里面域名的請(qǐng)求才會(huì)被轉(zhuǎn)發(fā)到各個(gè)賬號(hào),且 html 類型的內(nèi)容會(huì)自動(dòng)注入小圓點(diǎn),但在實(shí)際應(yīng)用中你可能會(huì)遇到以下問題:

          域名證書問題

          有些域名只涉及 http 請(qǐng)求,不涉及 https 的請(qǐng)求不需要證書,或者某些敏感及第三方域名無(wú)法獲得證書,這類域名可以通過在 配置 -> 入口配置 里面設(shè)置: 

          入口配置的規(guī)則有三種(#xxx表示注釋):

          pattern #轉(zhuǎn)發(fā)到Nohost,如果是html頁(yè)面則注入小圓點(diǎn)
          -pattern #轉(zhuǎn)發(fā)到Nohost,不注入小圓點(diǎn)
          --pattern #不轉(zhuǎn)發(fā)到Nohost,且不注入小圓點(diǎn)
          x)-pattern #x為整數(shù)(正負(fù)數(shù)零都可以),表示手動(dòng)設(shè)置優(yōu)先級(jí),默認(rèn)為0
          

          pattern 參見:https://wproxy.org/whistle/pattern.html,匹配順序是從上到下,每個(gè)請(qǐng)求只會(huì)匹配其中一個(gè),證書里面到域名優(yōu)先級(jí)默認(rèn)最低,可以通過 1) 設(shè)置優(yōu)先級(jí)。

          如:

          ke.qq.com
          -*.url.cn
          --localhost.**
          -1)**.qq.com
          

          表示:

          1. 所有 ke.qq.com 的請(qǐng)求都轉(zhuǎn)發(fā)到Nohost,且所有 html 都注入小圓點(diǎn)
          2. 所有 xxx.url.cn 的請(qǐng)求都轉(zhuǎn)發(fā)到Nohost,但不注入小圓點(diǎn)
          3. 所有 localhost.xxx.yyy... 的請(qǐng)求都不轉(zhuǎn)發(fā)到Nohost,且不注入小圓點(diǎn)
          4. 所有 qq.com 的子代域名請(qǐng)求都轉(zhuǎn)發(fā)到Nohost,但不注入小圓點(diǎn),并優(yōu)先級(jí)設(shè)為 -1 ,確保證書里面的 qq.com 子域名可以正常注入小圓點(diǎn)

          七. 規(guī)則

          這個(gè)是 Nohost 主進(jìn)程 Whistle,所有請(qǐng)求都會(huì)通過該 Whistle,并通過該進(jìn)程的 whistle.nohost 插件進(jìn)行賬號(hào)管理及請(qǐng)求轉(zhuǎn)發(fā),主進(jìn)程 Whistle 在生產(chǎn)環(huán)境下無(wú)法查看抓包數(shù)據(jù),可用于設(shè)置規(guī)則及全局插件管理,如:屏蔽一些請(qǐng)求等等,更多內(nèi)容參見后面的文檔。

          詳細(xì)內(nèi)容參見文檔:https://nohost.pro/

          瀏覽 25
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          編輯 分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          編輯 分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  欧美日本中文在线 | 黄色免费国产电影 | 欧美日韩123区 | 成人网五月天 | 日韩欧美国产视频 |