web-dev-qa-db-ja.com

chromeをプロキシで適切に実行する方法は?

Chromeをsocks5プロキシに設定します。

chrome://linux-proxy-config/

Chromeでchrome://linux-proxy-config/を入力するために、次のコンテンツのページが表示されます。

Google Chromeがサポートされているデスクトップ環境で実行されている場合、システムプロキシ設定が使用されます。ただし、システムがサポートされていないか、システム構成の起動に問題がありました。

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

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

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

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

  • effect1:socks5プロキシ経由でサーフィンに行くことができます。

  • 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でサーフィンできなくなりました。修正する方法は?

2

物事をうまく機能させる方法を見つけ、警告が多すぎることが唯一の懸念である場合は、メッセージを破棄する方法で物事を行うことができます。

<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>&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

Googleのさまざまな方法Chromeはプロキシ設定の影響を受けます 。Chrome内でプロキシを設定するのではなく、OSの設定を使用してください。

GNOMEを使用している場合は、gsettingsを使用してみてください

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

wgetまたはcurlを使用してインターネットからファイルをダウンロードできますか?次のコマンドは、Googleのホームページからindex.htmlファイルを作成しますか?

wget https://www.google.com

問題がSOCKSプロキシへの接続であり、他のアプリケーションに影響している場合は、 proxychains または pacproxy を使用してみてください。

$ proxychains4 google-chrome
1
hanxue

ほとんどの場合、google-chrome.desktopを編集しようとしても、そのファイルには複数のExecエントリがあり、変更したものが実際に使用されたものではなかったため、失敗しました。

Googleのリポジトリから DebianのChromeパッケージ を使用すると、google-chrome.desktopは3つのExecエントリを3つの異なるセクション(グループ、 freedesktop.org's nomenclature)に表示します ):

$ 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

コメントDominik Matis で説明されているように、--Host-resolver-rulesオプションを追加して、ChromeのDNSプリフェッチャーがプロキシ設定を迂回しないようにすることができます。 Chromiumのドキュメント

必要に応じて、proxyURLおよびproxyPORTを調整します。 --proxy-serverオプションと--Host-resolver-rulesオプションの両方にproxyURLを設定することを忘れないでください。

プロキシを設定せずにデフォルトの開始アクションを実行する場合はChrome=プロキシを設定せずに、メインの[Desktop Entry]Execエントリを変更せずに action 代わりに。

  1. 新しいアクションの名前を[Desktop Entry]グループのActionsキーに追加します。
  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のアイコンを右クリックするとオプションとして表示されます(ログアウト/ログインが必要な場合があります)。 --user-data-dirオプション で開始しない限り、Chromeの同時実行インスタンスはすべて、最初に開いたものと同じプロキシ設定を共有します。 。

1
fra-san

猫/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