Чи є спосіб встановити мережевий проксі у всій системі?


18

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

Чи є спосіб уникнути цього, що я можу включати та вимикати, коли в мережі потрібен проксі (ім'я хоста: порт)?


1
Я думаю, що http_proxyзмінна - це те, що ти шукаєш. Ознайомтеся з посиланням на технічну підтримку Proxy .
sakisk

Відповіді:


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. Потім ви налаштовуєте свої системні маршрути, щоб фактично надсилати трафік на це. Здається, приємний підхід.

(Я також знайшов червоні шкарпетки через цю посаду . Це не здається настільки елегантним, як використання інтерфейсу TUN для мене - наприклад, він взагалі не обробляє UDP для початку.)


3

Я використовую цей інструмент , який в основному є парою сценаріїв для налаштування параметрів для різних додатків з однієї точки.

PS: Я написав і підтримую цей інструмент.


2

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

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

Якщо у вас є програма, яка не підтримує проксі, ви можете використовувати щось на зразок socksify , щоб обернути її мережеве з'єднання.


Так ви спробували це і не вдалося?
thepang

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.