Использование удаленной отладки Chromium от внешнего устройства

Chrome можно запустить для поддержки удаленной отладки, запустив его через командную строку с подсказкой, такой как chrome.exe --remote-debugging-port=9222 --user-data-dir=C:/foo. Это часто используется для отладки на android или iOs использование браузера на настольном устройстве, но я хотел бы отладить chrome, работающий на настольном ПК. из "клиентского браузера" на той же машине можно вызвать localhost:9222 и посмотреть браузер сервера, вызов localhost:9222/json приведет к представлению JSON вкладок, открытых на " сервере броузер." Это работает просто отлично.

однако, когда я пытаюсь использовать другое устройство в той же сети (wifi), вызывая [локальный IP]:9222 или [локальный IP]:9222/json (локальный IP-это IP-адрес браузера сервера), я получаю тайм-аут соединения. Можно ли использовать удаленную отладку таким образом? Нужны ли другие коммутаторы при запуске браузера?

редактировать нет прямого TCP для отладки мобильных устройств, но есть ли не кажется такой переключатель для Chrome.

Изменить 2 это, кажется, немного дубликат вопросов здесь и здесь однако, на данный момент я еще не получил решения, представленные там, чтобы работать.

Итак, по-видимому, это сводится к пересылке порта на localhost: 9222. Однако, по крайней мере, на машинах windows мне не повезло с SSH-туннелями. Есть ли какие-либо другие способы пересылки на машине?

3 ответов


как вы уже упоминали, решение состоит в том, чтобы переслать порт 9222. Ниже вы найдете подходы для Linux и Windows.

Linux

после запуска chrome с

chrome --remote-debugging-port=9222

порт

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

таким образом, вы можете получить доступ к интерфейсу debuggin с внешнего устройства через порт 9223 С помощью Chrome браузер.

Windows

как видно этот ответ, на 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 с внешнего устройства через порт 9222.

убедитесь также,что брандмауэр не блокирует соответствующий порт.


Я успешно использовал RInetD для легкой переадресации портов в Windows 7, попробовал это, и это сработало как шарм, внешняя отладка браузера Chrome в Windows из Chrome в Mac/Ubuntu.

вы можете скачать rinetd из:

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

распакуйте файл, создайте пустой файл с любым именем (я использовал rinetd.conf), с этим содержанием:

0.0.0.0 127.0.0.1 9223 9222

в консоли Windows запустите его с помощью:

утилиту rinetd.ехе -с утилиту rinetd.conf

и вуаля!


вы можете достичь того же поведения, добавив аргумент --remote-debugging-address=[YOUR_EXTERNAL_IP_ADDRESS] Как сообщает здесь, без какого-либо дополнительного программного обеспечения, кроме самого хрома.