5

Chrome có thể được chạy để hỗ trợ remote debugging bằng cách khởi động nó qua dòng lệnh với lời nhắc như chrome.exe --remote-debugging-port=9222 --user-data-dir=C:/foo. Điều này thường được sử dụng to debug on android or iOs bằng Trình duyệt trên Thiết bị Máy tính để bàn nhưng tôi muốn gỡ lỗi chrome chạy trên máy tính để bàn. từ một "trình duyệt máy khách" trên cùng một máy có thể gọi localhost: 9222 và xem trình duyệt máy chủ, gọi localhost: 9222/json sẽ dẫn đến biểu diễn json của các tab đang mở trong "trình duyệt máy chủ". Điều này hoạt động tốt.Sử dụng Gỡ lỗi từ xa Chromium từ thiết bị bên ngoài

Tuy nhiên, khi tôi cố gắng sử dụng thiết bị khác trong cùng một mạng (wifi) bằng cách gọi [IP cục bộ]: 9222 hoặc [IP cục bộ]: 9222/json (IP cục bộ là IP của trình duyệt máy chủ) thời gian chờ kết nối. Có thể sử dụng gỡ lỗi từ xa theo cách đó không? Có bất kỳ thiết bị chuyển mạch nào khác cần thiết khi khởi động trình duyệt không?

Chỉnh sửa Tôi đã tìm thấy một số việc sử dụng tcp chuyển tiếp để gỡ lỗi thiết bị di động, nhưng có not seem to be such a switch for chrome.

Chỉnh sửa 2 này có vẻ là một chút của một bản sao của các câu hỏi herehere Tuy nhiên, tính đến nhưng tôi đã không nhận các giải pháp được trình bày có để làm việc.

Vì vậy, dường như điều này đi xuống để chuyển tiếp cổng đến máy chủ cục bộ: 9222. Tuy nhiên, ít nhất là trên các cửa sổ máy tôi không có may mắn với đường hầm SSH. Có cách nào khác để chuyển tiếp trên máy không?

Trả lời

2

Như bạn đã đề cập, giải pháp là chuyển tiếp cổng . Dưới đây bạn tìm thấy cách tiếp cận cho Linux và Windows.

Linux

Sau khi bắt đầu chrome với

chrome --remote-debugging-port=9222 

Forward cảng

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

Bằng cách này bạn có thể truy cập vào giao diện debuggin từ một thiết bị bên ngoài trên cổng sử dụng một Trình duyệt Chrome.

của Windows

Như đã thấy trong this answer, trên cửa sổ (thử nghiệm trên 7,8) là cách dễ nhất để làm portforwarding mà không cần ứng dụng của bên thứ 3 là thông qua netsh

tôi đã tạo ra một tập tin thực thi như sau Nội dung. Nó phải được chạy as administrator, và không có cửa sổ chrome trước mở:

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 

Bằng cách này bạn có thể truy cập vào giao diện debuggin từ một thiết bị bên ngoài trên cổng .

Đảm bảo rằng không có tường lửa nào đang chặn cổng tương ứng.

2

Tôi đã sử dụng thành công RInetD để chuyển tiếp cổng dễ dàng trong Windows 7, đã thử tính năng này và nó hoạt động như một sự quyến rũ, gỡ lỗi bên ngoài trình duyệt Chrome trong Windows từ Chrome trong Mac/Ubuntu.

Bạn có thể tải rinetd từ:

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

Giải nén file, tạo một file trống với tên bất kỳ (tôi đã sử dụng rinetd.conf), với nội dung này:

0,0. 0.0 9223 127.0.0.1 9222

Bàn điều khiển Windows chạy nó với:

rinetd.exe rinetd.conf -c

Và thì đấy!

1

Bạn có thể đạt được hành vi tương tự bằng cách thêm đối số --remote-debugging-address=[YOUR_EXTERNAL_IP_ADDRESS] như được báo cáo here mà không cần bất kỳ phần mềm bổ sung nào khác ngoài chính Chrome.