Как заставить хром правильно работать с прокси?

X11 отправляет одиночные вызовы отрисовки, поставленные в очередь в синхронном конвейере, то есть каждый вызов ожидает подтверждения предыдущего (по -упрощенному ).

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

В этом случае VNC может превосходить -производительность, потому что он может отправлять много данных (фрагментов изображения экрана )за один раз, не дожидаясь ответов между ними.

2
16.08.2019, 18:47
4 ответа

Если вы нашли способ заставить все работать, и вас беспокоит только то, что вы получаете слишком много предупреждений, вы можете действовать по-своему, отбрасывая сообщения:

<your command> 2> /dev/null

Вы бы перенаправлялифайловый дескриптор (FD)#2, который является stderr, в "черную дыру". Вы также можете отказаться от сообщений, отправленных на стандартный вывод (FD #1 ), хотя в таких случаях, как ваш, это менее распространено. Вы должны проверить, сколько беспорядка вы получаете. Итак, у вас будет (перенаправление только stderr):

google-chrome-stable --proxy-server="socks5://127.0.0.1:1080" 2> /dev/null &

или (перенаправление stderr и stdout; это альтернативные формы одной и той же команды)

google-chrome-stable --proxy-server="socks5://127.0.0.1:1080" 2> /dev/null 1>&2 &
google-chrome-stable --proxy-server="socks5://127.0.0.1:1080" > /dev/null 2>&1 &

Синтаксис 2>&1означает перенаправление FD #2 туда, куда идет FD #1. FD по умолчанию — #1, поэтому >эквивалентно 1>.


В редких случаях вам нужно больше информации, чем указано выше, или ради любопытства:

https://stackoverflow.com/questions/5256599/what-are-file-descriptors-explained-in-simple-terms

Для чего в Bash файловый дескриптор 255, могу ли я его использовать?

https://en.wikipedia.org/wiki/File_descriptor

3
27.01.2020, 21:58

Скорее всего, ваша попытка редактирования google-chrome.desktopне сработала, потому что в этом файле есть более одной Execзаписи, и та, которую вы изменили, на самом деле не используется.

Используя пакет Chrome для Debian из репозитория Google, google-chrome.desktopпоказывает три Execзаписи в трех отдельных разделах (групп в номенклатуре freedesktop.org):

$ grep -E '^Exec|^\[|^Name=' /usr/share/applications/google-chrome.desktop 
[Desktop Entry]
Name=Google Chrome
Exec=/usr/bin/google-chrome-stable %U
[Desktop Action new-window]
Name=New Window
Exec=/usr/bin/google-chrome-stable
[Desktop Action new-private-window]
Name=New Incognito Window
Exec=/usr/bin/google-chrome-stable --incognito

Вариант с опцией --incognito— скорее всего тот, который вы редактировали — выполняется только при выборе «Новое окно в режиме инкогнито» в контекстном меню (, например. после щелчка правой кнопкой мыши по значку Chrome в деятельности GNOME ).

Если вы не стремились изменить конфигурацию для каждого пользователя в вашей системе, я предлагаю вам создать собственную, настроенную версиюgoogle-chrome.desktop:

$ cp /usr/share/applications/google-chrome.desktop ~/.local/share/applications/

Затем отредактируйте запись Exec, по крайней мере в группе [Desktop Entry](вы можете оставить другие записи Execвыровненными, чтобы гарантировать, что Chrome будет вести себя так же нет независимо от того, какой пункт меню вы использовали для его запуска):

Exec=/usr/bin/google-chrome-stable --proxy-server="socks5://proxyURL:proxyPORT" --host-resolver-rules="MAP * ~NOTFOUND, EXCLUDE proxyURL" %U

Как отметил Доминик Матис в комментарии , вы можете добавить параметр --host-resolver-rules, чтобы предотвратить обход настроек прокси-сервера с помощью предварительной выборки DNS Chrome, как описано в Документация Chromium .

При необходимости отрегулируйте proxyURLи proxyPORT; не забудьте установить proxyURLдля опций --proxy-serverи --host-resolver-rules.

Если вы хотите, чтобы действие открытия по умолчанию запускало Chrome без установки прокси-сервера, вы можете оставить основную запись [Desktop Entry]'s Execнетронутой и вместо этого добавить действие . Это требует от вас

  1. добавить имя нового действия на клавишу Actionsв группе [Desktop Entry];
  2. добавить новую группу действий.
[Desktop Entry]
...
Actions=new-window;new-private-window;new-proxied-window;

...

[Desktop Action new-proxied-window]
Name=New Proxied Window
Exec=/usr/bin/google-chrome-stable --proxy-server="socks5://proxyURL:proxyPORT" --host-resolver-rules="MAP * ~NOTFOUND, EXCLUDE proxyURL" %U

«Новое проксированное окно» появится в качестве опции, если щелкнуть правой кнопкой мыши значок Chrome (, для этого может потребоваться выход/вход в систему ).Обратите внимание, что все одновременно запущенные экземпляры Chrome будут использовать те же настройки прокси-сервера, что и первый, который вы открыли, если только вы не запустите их с параметром--user-data-dir.

2
27.01.2020, 21:58

Я писал о различных способах воздействия настроек прокси-сервера на Google Chrome . Вместо того, чтобы устанавливать прокси в Chrome, используйте вместо этого настройки ОС.

Если вы используете GNOME, попробуйтеgsettings

gsettings set org.gnome.system.proxy.http host "myproxy.server.com"
gsettings set org.gnome.system.proxy.http port "3128"

Можно ли загрузить файл из Интернета с помощью wgetили curl? Создает ли следующая команда файл index.htmlс главной страницы Google?

wget https://www.google.com

Если проблема связана с подключением к SOCKS-прокси и влияет на другие приложения, попробуйте использовать proxychains или pacproxy .

$ proxychains4 google-chrome
2
27.01.2020, 21:58

cat /usr/share/applications/google -chrome.desktop

[Desktop Entry]
Name=Google Chrome
Icon=/usr/share/icons/hicolor/16x16/apps/google-chrome.png
Terminal=false
Type=Application
Categories=Network;WebBrowser;
Exec=/usr/bin/google-chrome-stable --proxy-server="socks5://127.0.0.1:1080"  2> /dev/null 1>&2 &
0
27.01.2020, 21:58

Теги

Похожие вопросы