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

18

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

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

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

Ответы:

11

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

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

http_proxy=123.45.67.89:1011

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

Shadur
источник
1
... с заметным исключением Firefox и Thunderbird askubuntu.com/a/23123
akraf - восстановить
и, похоже, node тоже нет
Брэд Паркс
да, и перезагрузка оболочки другими словами означает выход из системы, а затем снова вход в систему для графических оболочек.
Химаншу Шекхар
6

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

jsbillings
источник
3

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

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

natevw
источник
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
Шон Джонс
источник