5

Chrome可以運行以支持remote debugging,方法是通過命令行啓動Chrome,並提示如chrome.exe --remote-debugging-port=9222 --user-data-dir=C:/foo。這通常在桌面設備上使用to debug on android or iOs使用瀏覽器,但我想調試在桌面PC上運行的chrome。從同一臺機器上的「客戶端瀏覽器」可以調用localhost:9222並查看服務器瀏覽器,調用localhost:9222/json將導致在「服務器瀏覽器」中打開的標籤的json表示。這工作得很好。但是,當我嘗試通過調用[local IP]:9222或[local IP]:9222/json(本地IP是服務器瀏覽器的IP)在同一個(wifi)網絡中使用其他設備時,我得到連接超時。是否有可能以這種方式使用遠程調試?啓動瀏覽器時是否需要其他開關?使用來自外部設備的Chromium遠程調試

編輯我發現了一些使用轉發tcp的調試移動設備,但確實有not seem to be such a switch for chrome

編輯2這似乎是有點問題herehere重複。然而,作爲然而我還沒有得到呈現在那裏工作的解決方案。

所以,顯然這歸結爲轉發到本地主機端口:9222。但是,至少在Windows機器上,我沒有使用SSH隧道。有沒有其他方法可以在機器上轉發?

回答

2

正如您所提到的,解決方案是轉發端口。下面你可以找到適用於Linux和Windows的方法。

的Linux

後已經開始鑲邊

chrome --remote-debugging-port=9222 

轉發端口

ssh -L 0.0.0.0:9223:localhost:9222 localhost -N 

這種方式可以從外部設備訪問使用端口的debuggin接口Chrome瀏覽器。

的Windows

可以看出在this answer,在windows(上7,8測試)做portforwarding沒有第三方應用程序的最簡單的方法是通過netsh

我創建一個批處理文件與以下內容。它必須跑了作爲管理者,並沒有以前的Chrome瀏覽器窗口打開:

netsh interface portproxy delete v4tov4 listenport=9222 listenaddress=0.0.0.0 
start /b cmd /c call "\program files\google\chrome\application\chrome.exe" -remote-debugging-port=9222 
timeout 5 
netsh interface portproxy add v4tov4 listenport=9222 connectaddress=127.0.0.1 connectport=9222 listenaddress=0.0.0.0 

這種方式可以從外部設備訪問端口的debuggin接口。

同時也要確保沒有防火牆阻止相應的端口。

2

我已經成功地在Windows 7中使用RInetD輕鬆實現端口轉發,嘗試了這一點,它的工作方式就像一個魅力,從Mac/Ubuntu中的Chrome在Windows中從外部調試Chrome瀏覽器。

您可以從下載rinetd:

http://www.boutell.com/rinetd/

解壓文件,創建具有任何名稱(我用rinetd.conf)一個空文件,與此內容:

0.0。 0.0 9223 127.0.0.1 9222

在Windows控制檯中運行它:

rinetd.exe -c rinetd.conf

瞧!

1

您可以通過添加參數 --remote-debugging-address=[YOUR_EXTERNAL_IP_ADDRESS](如報告的here)來獲得相同的行爲,而無需Chrome本身以外的其他軟件。