Chromeでプロキシを正しく実行する方法は?

Chromeでプロキシを正しく実行する方法は?

ソックス5プロキシを使用してChromeを設定したいです。

chrome://linux-proxy-config/

Chromeに入力するには、chrome://linux-proxy-config/次の内容を含むページが表示されます。

サポートされているデスクトップ環境でGoogle Chromeを実行している場合は、システムプロキシ設定が使用されます。ただし、システムがサポートされていないか、システム構成を開始できません。

ただし、まだコマンドラインで設定できます。google-chromeフラグと環境変数の詳細については、manを参照してください。

コンソールに次のコマンドを入力します。

google-chrome-stable  --proxy-server="socks5://127.0.0.1:1080

上記のコマンドの2つの効果:

  • 効果1:今すぐソックス5プロキシを介してインターネットにアクセスできるようになりました。

  • effect2: 警告メッセージが多すぎます。

    "Fontconfig warning: "/etc/fonts/fonts.conf", line 100: unknown element "blank"
    [3873:3960:0808/102301.399211:ERROR:object_proxy.cc(619)] Failed to call method: org.freedesktop.Notifications.GetCapabilities: object_path= /org/freedesktop/Notifications: org.freedesktop.DBus.Error.ServiceUnknown: The name org.freedesktop.Notifications was not provided by any .service files
    [7:13:0808/102302.782729:ERROR:command_buffer_proxy_impl.cc(107)] ContextResult::kTransientFailure: Shared memory region is not valid
    [3873:4069:0808/102302.788747:ERROR:object_proxy.cc(619)] Failed to call method: org.freedesktop.DBus.Properties.Get: object_path= /org/freedesktop/UPower: org.freedesktop.DBus.Error.ServiceUnknown: The name org.freedesktop.UPower was not provided by any .service files
    [3873:4069:0808/102302.789045:ERROR:object_proxy.cc(619)] Failed to call method: org.freedesktop.UPower.GetDisplayDevice: object_path= /org/freedesktop/UPower: org.freedesktop.DBus.Error.ServiceUnknown: The name org.freedesktop.UPower was not provided by any .service files
    

effect2を修正したいです。つまり、コマンドがバックグラウンドで自動的に実行されるようにしたいのです。

google-chrome-stable  --proxy-server="socks5://127.0.0.1:1080  &

Effect2 はまだ存在しますが、バックグラウンドで実行できず、コンソールに警告メッセージが表示されます。

他のことを試してみてください:

sudo gvim /usr/share/applications/google-chrome.desktop
#replace the  `Exec=/usr/bin/google-chrome-stable --incognito` with 
Exec=/usr/bin/google-chrome-stable  --proxy-server="socks5://127.0.0.1:1080"

ロゴ付きのChromeを起動するとChromeが開きますが、プロキシを使用してオンラインにアクセスできなくなりましたsocks5://127.0.0.1:1080。どうすれば修正できますか?

答え1

アクションを実行する方法が見つかりましたが、警告が多すぎるのが唯一の関心事である場合は、目的の方法でアクションを実行してメッセージを削除できます。

<your command> 2> /dev/null

あなたはなりますリダイレクト ファイル記述子(FD)#2、stderrは「ブラックホール」にリダイレクトされます。 stdout(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>&1FD#2をFD#1がある場所にリダイレクトすることを意味します。デフォルトのFDは#1なので、>と同じです1>


まれに、上記の情報よりも多くの情報が必要な場合、または単に好奇心がある場合です。

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

ファイル記述子255はBashで何をしており、使用できますか?

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

答え2

google-chrome.desktopファイルに複数のExecエントリがあり、変更したエントリが実際に使用されたエントリではないため、編集に失敗した可能性があります。

使用Debian 用 Chrome パッケージgoogle-chrome.desktop3つの異なるセクション(グループ、Execfreedesktop.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オプションを含むオプション(おそらく編集したオプション)は、コンテキストメニューで「新しいシークレットウィンドウ」を選択した場合にのみ実行されます(例:GNOMEアクティビティでChromeアイコンを右クリックした後など)。

システム内のすべてのユーザーの設定を変更することが目的ではない限り、独自のカスタムバージョンを作成することをお勧めします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、ChromeのDNSプリフェッチャーがプロキシ設定をバイパスしないようにするオプションを追加する必要があるかもしれません。Chrome ドキュメント

proxyURL必要に応じてproxyPORT調整してください。設定proxyURL--proxy-serverオプションを忘れないでください--host-resolver-rules

プロキシを設定せずにデフォルトの開く操作でChromeを実行するには、デフォルトの[Desktop Entry]項目を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 オプション

答え3

私は以下について書いた。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.htmlGoogle ホームページからファイルを生成しますか?

wget https://www.google.com

問題がSOCKSプロキシに接続し、他のアプリケーションに影響を与える場合は、次を試してください。プロキシチェーンまたはパーカーエージェント

$ proxychains4 google-chrome

答え4

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 &

関連情報