1. 程式人生 > >本地chrome調試服務器node

本地chrome調試服務器node

child pro specified bsp name cif 公網ip -- end

Node內置了V8引擎提供的 inspector 調試器,可以通過 TCP 協議從外部訪問這個調試器,方便對Node程序進行調試。啟動調試的標誌有:

Flag Meaning
--inspect
  • Enable inspector agent (一直向下運行,直到源碼 debugger 處才進入暫停狀態)
  • Listen on default address and port (127.0.0.1:9229) (調試器默認綁定的ip和port,只能本機連接)
--inspect=[host:port]
  • Enable inspector agent
  • Bind to specified address or hostname host (default: 127.0.0.1)
  • Listen on port port (default: 9229) (綁定到公網ip或0.0.0.0,任何能連接該ip的外部客戶端都可以連接到調試器,很危險,需要設置防火墻和其他訪問控制。)
--inspect-brk
  • Enable inspector agent
  • Listen on default address and port (127.0.0.1:9229)
  • Break before user code starts (在用戶代碼開始處暫停) ?
--inspect-brk=[host:port]
  • Enable inspector agent
  • Bind to address or hostname host (default: 127.0.0.1)
  • Listen on port port (default: 9229)
  • Break before user code starts ?
node inspect script.js
  • Spawn child process to run user‘s script under --inspect flag;
  • and use main process to run CLI debugger. (當前命令行進程為調試界面,子進程為node應用,在用戶代碼的首行進入暫停狀態) ?
node inspect --port=xxxx script.js
  • Spawn child process to run user‘s script under --inspect flag;
  • and use main process to run CLI debugger.
  • Listen on port port (default: 9229)
具體步驟: 1.使用 --inspect-brk=host:port 標誌啟動遠端服務器內的 inspector 調試器 技術分享圖片 2.在本地訪問 http://[host:port]/json/list得到 devtoolsFrontendUrl: 技術分享圖片 技術分享圖片 3.本地訪問devtoolsFrontendUrl得到調試界面: 技術分享圖片 技術分享圖片

註意:
  1. 通過本地chrome devtool 調試遠端服務器代碼時,遠端服務器有風險,要設置訪問控制,如白名單進行限制。
  2. 或者通過 node inspect server.js 在服務器的CLI界面調試。
  3. 或者通過SSH進行端口轉發,禁止任意客戶端連接服務器的inspector調試器,更安全:
    先--inspect 啟動服務器端的調試器,僅限本機可以連接:
技術分享圖片 技術分享圖片  本地客戶端啟動ssh端口轉發:     $ ssh -L 9221:localhost:9229 [email protected]   本地chrome瀏覽器獲取devtoolsFrontendUrl:
技術分享圖片 技術分享圖片   修改devtoolsFrontendUrl的端口後在本地訪問,獲得調試界面: 技術分享圖片

技術分享圖片

本地chrome調試服務器node