Ręczna konfiguracja ustawień proxy przeglądarki Google Chrome na Ubuntu

9

Mam aplikację, która musi zmienić ustawienia proxy używane przez Google Chrome, następnie użyć przeglądarki, a następnie automatycznie przełączyć proxy z powrotem na to, co było.

Nie udało mi się znaleźć, gdzie w moim systemie Ubuntu są zapisane te ustawienia. Na pewno nie ma go w pliku preferencji. Jakieś pomysły na temat tego zadania?

Elitecoder
źródło
Wygląda na to, że chcesz programowo zmienić ustawienia proxy. Ręczna ich zmiana wymagałaby otwarcia sekcji Preferencje przeglądarki Chrome. To, co chcesz zrobić, wydaje się bardzo dziwne - jaki jest podstawowy cel tego, co próbujesz osiągnąć? Może istnieć prostszy sposób na osiągnięcie tego celu.
Mike Rowave,
Może wyjaśnienie, dlaczego chcę to zrobić, pomoże ludziom zaoferować alternatywne rozwiązania. Chcę rejestrować cały ruch obsługiwany przez Google Chrome. W tym celu mam klienta, który działa jak serwer proxy. Teraz, jeśli ustawię proxy Chrome na localhost i określony port, cały ruch przejdzie przez mojego klienta, a mój klient będzie mógł rejestrować wszystko, co się wydarzyło. A kiedy skończę nagrywać to, czego potrzebuję, zamknę Chrome i przywrócę oryginalne ustawienia proxy. Nie chcę używać argumentów wiersza poleceń przekazywanych do przeglądarki Chrome i chcę to robić programowo.
Elitecoder

Odpowiedzi:

12

Możesz użyć ustawień proxy Chromium z wiersza poleceń. Strona podręcznika informuje, jak to zrobić. Oto fragment z przeglądarki Chrome Man z mojego Ubuntu Natty:

   --proxy-server=host:port
          Specify the HTTP/SOCKS4/SOCKS5 proxy server to use for requests.  This overrides any environment variables or settings picked via the options dialog.  An individual
          proxy server is specified using the format:

            [<proxy-scheme>://]<proxy-host>[:<proxy-port>]

          Where <proxy-scheme> is the protocol of the proxy server, and is one of:

            "http", "socks", "socks4", "socks5".

          If the <proxy-scheme> is omitted, it defaults to "http". Also note that "socks" is equivalent to "socks5".

          Examples:

            --proxy-server="foopy:99"
                Use the HTTP proxy "foopy:99" to load all URLs.

            --proxy-server="socks://foobar:1080"
                Use the SOCKS v5 proxy "foobar:1080" to load all URLs.

            --proxy-server="sock4://foobar:1080"
                Use the SOCKS v4 proxy "foobar:1080" to load all URLs.

            --proxy-server="socks5://foobar:66"
                Use the SOCKS v5 proxy "foobar:66" to load all URLs.

          It is also possible to specify a separate proxy server for different URL types, by prefixing the proxy server specifier with a URL specifier:

          Example:

            --proxy-server="https=proxy1:80;http=socks4://baz:1080"
                Load https://* URLs using the HTTP proxy "proxy1:80". And load http://*
                URLs using the SOCKS v4 proxy "baz:1080".

Zaletą korzystania z argumentów wiersza poleceń jest to, że nie trzeba zmieniać globalnych ustawień systemu.

Na przykład:

$ chromium-browser --proxy-server="http://127.0.0.1:8080"

Zobacz także post Justina w tym wątku, w którym opisuje on również, jak używać proxy do żądania DNS.

Strubbl
źródło
1
Czy istnieje sposób na ustawienie określonych domen, które NIE powinny używać proxy? Coś analogicznego do No proxy for ustawienia w Firefoksie ...
becko
1
chromenie działa, ponieważ nie ma opcji--host-resolver-rules="MAP * 0.0.0.0 , EXCLUDE 127.0.0.1"
BeGood
nie działa chrome ignoruje wszystkie ustawienia proxy
user27636,
3

Odpowiedź Strubbl jest poprawna, jest to najlepsze rozwiązanie, ponieważ nie musisz ciągle włączać / wyłączać ustawień proxy dla całego systemu.

Dodam, że powinieneś również użyć tego przełącznika w połączeniu

--host-resolver-rules="MAP * 0.0.0.0 , EXCLUDE 127.0.0.1" 

gdzie 127.0.0.1 to serwer proxy. Ten przełącznik powstrzymuje Chrome przed wysyłaniem zewnętrznych żądań DNS, które, gdy ważna jest prywatność, nie ujawnią żadnych informacji DNS.

Tak więc pełne polecenie jest następujące.

/usr/bin/google-chrome-stable %U --proxy-server="socks5://127.0.0.1:9050" --host-resolver-rules="MAP * 0.0.0.0 , EXCLUDE 127.0.0.1"
Justin
źródło
1

W przypadku systemu Ubuntu 14.04 LTS przejdź do terminalu. Otwórz ten plik, ale najpierw go zapisz

& cp /usr/share/applications/chromium-browser.desktop /home/@user/

& sudo su

(passwd)

Następnie

& gedit /usr/share/applications/chromium-browser.desktop &

Przejdź do pierwszej linii „Exec”

Exec=chromium-browser %U

Zmień to na

Exec=chromium-browser %U --proxy-server="127.0.0.1:8118"

127.0.0.1:8118lub cokolwiek. Zapisz ten plik i zamknij edytor, uruchom ponownie przeglądarkę i spróbuj.

Aby przywrócić tę zmianę

& sudo su

(passwd)

& cp /home/@user/chromium-browser.desktop /usr/share/applications/

lub przepisz tę linię do

Exec=chromium-browser %U

cieszyć się!

TheRabi71
źródło
0

Chrom i Google Chrome używać http_proxy, https_proxya no_proxyustawienia środowiskowe. Dostęp do nich różni się od języka programowania do języka programowania. W powłoce możesz pisać

echo $http_proxy

itp. Można je ustawić na wiele sposobów. Zobacz https://askubuntu.com/a/513956/438156 i https://askubuntu.com/a/755100/438156 .

serv-inc
źródło