PDA

Просмотр полной версии : Системные Proxy в Линуксах


Ace
20.02.2008, 08:39
Визуально (например в GNOME) можно настроить прокси через: Preferences->Network Proxy.
Может кто знает, как вытащить из системы эти настройки?
Желательно на C/C++, либо через shell.

Дровосек
20.02.2008, 10:58
В свое время я конфигурировал вручную через шелл скрипты нечто подобное:
export http_proxy=http://1.2.3.4:8080/
export ftp_proxy=http://5.6.7.8:8080/
Но это в общем-то было в основном для wget, apt-ge, etc. Стоит проверить свои системные переменные.
П.С. Настройки для разных апликаций могут быть в разных местах.

Ace
20.02.2008, 13:16
Дровосек
Глобальные настройки в GNOME/KDE не связаны с глобальными переменными shell.
В любом случае спасибо. Буду искать дальше.

Lyonia
20.02.2008, 14:16
Глобальные настройки в GNOME/KDE не связаны с глобальными переменными shell.
кто тебе это сказал ? открой новый шел после того как поменяешь настройуи в гноме и посмотри. Кстати скорее всего они будут гдето /etc/...
я не знаком чтобы можно было определять прокси только для Гнома
imho они глобальные

Дровосек
20.02.2008, 14:53
Ace, ни apt-get ни wget ничего не знают о Гноме. Это его тафкид о них заботиться если он такой умный. А вот wget-у нужны переменные окружения для работы через прокси.

Telepoozeeck
20.02.2008, 15:06
Ace,
Глобальные настройки в GNOME/KDE не связаны с глобальными переменными shell.
да что ты говоришь?:)
настройки прокси гнома регестрировались всегда и регестрируются через твоё окружение: http_proxy, ftp_proxy, no_proxy переменные.
оттуда все приложения (сключая мозиллу и ко - эпифани и гален не в счёт) берут адреса прокси. мозилла и ко читают свои настройки.

Ace
24.02.2008, 08:03
открой новый шел после того как поменяешь настройуи в гноме и посмотри. Кстати скорее всего они будут гдето /etc/...
я не знаком чтобы можно было определять прокси только для Гнома
imho они глобальные
В том то и проблема - они глобальные, но для самого GNOME. shell о ниx не "знает".
Ace, ни apt-get ни wget ничего не знают о Гноме. Это его тафкид о них заботиться если он такой умный. А вот wget-у нужны переменные окружения для работы через прокси.
В точку.
Это я и подразумевал, говоря что нет прямой связи..

настройки прокси гнома регестрировались всегда и регестрируются через твоё окружение: http_proxy, ftp_proxy, no_proxy переменные.
Ответ неверен. Измени настройки прокси через: Preferences->Network Proxy. Никаких изменений в окружение shell ты этим не внесёшь.
GNOME хранит настройки в другом месте (/home/username/.gconf/system/). К ним есть доступ, но через его API, что-то типа Windows Registry...
Просто не хотелось пользоваться GTK , без нужды. Получается как из пушки стрелять по мухе..
Повторюсь - цель такая: реагировать на изменения юзером настроек прокси через: Preferences->Network Proxy.
Для меня сейчас есть два выхода:
1. Использовать GNOME API (GTK).
2. Читать ХML, который он сохраняет напрямую из фаила.
Склоняюсь к 1-му варианту, как к более универсальному и надёжному.

Telepoozeeck
24.02.2008, 08:06
Ace,
Ответ неверен. Измени настройки прокси через: Preferences->Network Proxy. Никаких изменений в окружение shell ты этим не внесёшь.
ответ верен и проверен. открой новый шелл и сделай grep -i proxy.

Ace
24.02.2008, 09:03
ответ верен и проверен. открой новый шелл и сделай grep -i proxy.
OK. Проверяю.
1. Определил прокси через установки GNOME. (не через шелл)
2. команда: "export | grep -i proxy"
3. Результат - ноль.

Telepoozeeck
25.02.2008, 14:48
открой новый шелл

это было в гноме с хз каких времён. даже GTK не нужно знать для этого.

Lyonia
25.02.2008, 17:26
Ace,
вот сейчас сижу под убунту и спейциально для тебя определил и отменил прокси
через установки Gnome и вот что получил

lyonia@bla:~$ export |grep proxy
declare -x http_proxy="http://proxy.bezeqint.net:8080/"
declare -x no_proxy="localhost,127.0.0.0/8,*.local"

Ace
26.02.2008, 06:43
это было в гноме с хз каких времён. даже GTK не нужно знать для этого.
Я же с первого моего поста сказал, что GNOME не меняет системные переменные шелл. По крайней мере на моей системе это так.
Не отрицаю, что программы могут проверять окружение шелл на наличие перeменных типа "http_proxy" ,нo это частичное решение проблемы. Мне же нужно вытащить именно Гномовские настройки.
И как же это нормально сделать без GTK?

Ace
26.02.2008, 06:50
Ace,
вот сейчас сижу под убунту и спейциально для тебя определил и отменил прокси
через установки Gnome и вот что получил
Код:

lyonia@bla:~$ export |grep proxy
declare -x http_proxy="http://proxy.bezeqint.net:8080/"
declare -x no_proxy="localhost,127.0.0.0/8,*.local"
Кажется мне понятно почему. У меня установлена CentOS.
Наверное в GNOME есть опция, что-то типа обновлять переменные шелл или не обновлять. Интересно можно до неё добраться али нет? Это тоже вариант.
Вобщем как ни печально: Разные системы, разные установки, под всех не подстроишся...

Lyonia
26.02.2008, 07:33
Ace,
Первое и главное шел надо открывать после того как утсновил прокси а не перед ним
Второе, по умолчанию в системе стоят куча скриптов что автоматом обновляют переменные окружения. Когда я работал на Юниксе у меня таких скриптов небыло и всё мы делали в ручную. Недостатки что эти скрипты сидят в памяти так как определены как переменная окружения, сделай export и посмотри сам.

Наверное в GNOME есть опция, что-то типа обновлять переменные шелл или не обновлять. Интересно можно до неё добраться али нет? Это тоже вариант.
У меня на убунту во всяком случае такого нету.

Ace
26.02.2008, 11:29
Первое и главное шел надо открывать после того как утсновил прокси а не перед ним
Ну вроде я не полный чайник и это понимаю. Но даже после logoff->logon - не фурычит.
Ладно, буду дальше копать, может чего и накопаю.
В любом случае - спасибо за советы. :)