Есть ли способ настроить сетевой прокси для всей системы?


18

Если я хочу, чтобы приложения GNOME (а также Firefox и Chrome) имели доступ к сети через прокси-сервер, мне нужно только использовать их gnome-network-properties(хороший и простой графический интерфейс, я должен сказать). Для других приложений (например, APT, Transmission, XChat) я должен использовать их конкретные способы сделать это.

Есть ли способ избежать этого, что-то, что я могу включать и выключать, когда в сети требуется прокси (имя хоста: порт)?


1
Я думаю, что http_proxyпеременная - это то, что вы ищете. Ознакомьтесь с инструкцией по поддержке Proxy .
Сакиск

Ответы:


11

Я думаю, что почти все программное обеспечение Linux / Unix, которое использует сеть, будет учитывать переменные http_proxyи ftp_proxyсреды. В зависимости от того, как настроен ваш дистрибутив, он /etc/environmentбудет существовать и будет по умолчанию читаться оболочкой входа в систему.

Вы можете добавить строку, говорящую

http_proxy=123.45.67.89:1011

в /etc/environmentдостаточно легко, но изменения в этом файле будут принимать только держать в следующий раз , когда вы запускаете процесс оболочки - и только в этом процессе оболочки. Я не думаю, что вы можете изменить глобальные переменные в оболочке, отличной от текущей.


1
... с заметным исключением Firefox и Thunderbird askubuntu.com/a/23123
akraf - восстановить

и, похоже, node тоже нет
Брэд Паркс

да, и перезагрузка оболочки другими словами означает выход из системы, а затем снова вход в систему для графических оболочек.
Химаншу Шекхар

6

Я согласен, что лучший способ использовать прокси-сервер - это переменная окружения http_proxy, как указывалось в других ответах. К сожалению, не все приложения поддерживают переменную среды http_proxy, поэтому я все еще использую tsocks для некоторых программ, чтобы использовать LD_PRELOAD для принудительной установки сетевых соединений через прокси-сервер SOCKS.


3

Помимо tsocks - который все еще AFAICT требует, чтобы вы запускали программы с правильной средой для работы - вы должны проверить tun2socks . С его помощью вы настраиваете интерфейс TUN (т. Е. Новый сетевой интерфейс, как при создании VPN), и любые отправленные туда пакеты передаются на ваш сервер SOCKS5. Затем вы настраиваете системные маршруты для фактической отправки трафика на это. Похоже, хороший подход.

(Я также нашел redsocks через этот пост Это не кажется столь же элегантно , как с помощью интерфейса TUN мне. -. , Например , это на самом деле не обрабатывать UDP вообще, для начала)


3

Я использую этот инструмент , который представляет собой пару сценариев для настройки параметров различных приложений из одной точки.

PS: я написал и поддерживаю этот инструмент.


2

Нет единого решения для всех. Каждая программа использует свой собственный способ подключения к прокси-серверу.

У меня похожая проблема в моем офисе. Я обнаружил, что лучший способ сделать это - использовать VPN-соединение. При подключении весь системный сетевой трафик будет проходить через VPN. Если у вас нет доступа к VPN-серверу, вы можете запустить новый вручную и подключить его к имеющемуся у вас прокси-серверу.

Если у вас есть приложение, которое не поддерживает прокси, вы можете использовать что-то вроде socksify , чтобы обернуть его сетевое соединение.


Итак, вы попробовали это и потерпели неудачу?
Чепанг

0

У меня похожая проблема, но для меня, чтобы создать общесистемный прокси, я буду обращаться к ядру Linux iptables. Добавление и удаление правил пересылки в iptables(определенных адресах, портах и ​​протоколах), действующих на сетевом уровне, является единственным способом обеспечения общесистемного прокси-сервера, который не может быть переопределен никакими специфическими для приложения настройками на уровне приложения.


0

Это сработало для меня
vi /etc/environment:

http_proxy="http://username:password@proxysrv:8080/"
https_proxy="https://username:password@proxysrv:8080/"
ftp_proxy="ftp://username:password@proxysrv:8080/"
no_proxy=".mylan.local,.domain1.com,host1,host2"

также
vi /etc/yum.conf:

proxy=http://proxysrv:8080
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.