Linux настройка работы через прокси

Использование HTTP proxy и SOCKS в Linux

В Linux существует много полезных консольных команд, которые при необходимости хотелось бы запустить через proxy. Некоторые приложения имеют встроенную поддержку proxy, а некоторые нет. Далее описано как пользоваться востребованными утилитами через proxy, даже теми, которые этой поддержки не имеют.

curl: передача данных через proxy

curl имеет полноценную поддержку как HTTP proxy так и SOCKS.

Для тестирования возможно использовать proxy сервера из бесплатных списков (socks — sockslist.net, и HTTP proxy — proxyhttp.net). Проверка IP адреса будет производиться с помощью ресурса check-host.net

# Проверить HTTP proxy curl --proxy 11.22.33.44:5555 check-host.net/ip # Тоже самое, но если для HTTP proxy требуется авторизация curl --proxy 11.22.33.44:5555 -U username:password check-host.net/ip # Проверить socks4 curl --socks4 11.22.33.44:5555 check-host.net/ip # Проверить socks5 curl --socks5 11.22.33.44:5555 check-host.net/ip # Тоже самое, только преобразование имен идет также через SOCKS # (подробнее о преобразовании имен можно прочитать ниже в подразделе "DNS запросы через proxy") curl --socks5-hostname 11.22.33.44:5555 check-host.net/ip 

Часть параметров curl можно записать в файл ~/.curlrc:

socks5 = 11.22.33.44:5555 proxy-user = username:password user-agent = "Mozilla/5.0 (X11; Linux i686; rv:7.0.1) Gecko/20100101 Firefox/7.0.1" 

С помощью time и curl также можно замерить время отклика сервера:

# Без proxy: time curl check-host.net/ip # С proxy: time curl --socks5 11.22.33.44:5555 check-host.net/ip # Или любого сайта: time curl habrahabr.ru 

Результат будет выглядеть так:

real 0m0.307s user 0m0.000s sys 0m0.004s 

wget: закачка файлов через proxy

wget имеет встроенную поддержку proxy. Недостаток лишь в том, что только поддержку HTTP proxy. Для использования совместно с SOCKS рекомендуется использовать соксификатор dante.

 # Скачать файл через proxy: http_proxy="http://33.22.44.44:8080" wget http://www.google.com/favicon.ico Тоже самое, но для HTTPS https_proxy="http://33.22.44.44:8080" wget https://www.google.com/favicon.ico # Использовать proxy с авторизацией http_proxy="http://33.22.44.44:8080" wget --proxy-user=user --proxy-password=password http://www.google.com/favicon.ico 

Чтобы все время не указывать —proxy-user и —proxy-password можно их прописать в файл ~/.wgetrc:

proxy-user = username proxy-password = password user-agent = Mozilla/5.0 (X11; Linux i686; rv:7.0.1) Gecko/20100101 Firefox/7.0.1 

ssh: доступ к серверам

Для доступа к серверам через ssh и proxy также лучше использовать соксификатор dante.

Соксификатор dante

apt-get install dante-client # пример для Debian-based систем 
# Если требуется зайти по ssh на сервер SOCKS_PASSWORD="" SOCKS_SERVER="11.22.33.44:1080" socksify ssh myserver # Тоже самое, только если для подключения к соксу требуется авторизация SOCKS_USERNAME="user" SOCKS_PASSWORD="password" SOCKS_SERVER="11.22.33.44:1080" socksify ssh myserver # Пример с использованием IRC клиента - irssi SOCKS_PASSWORD="" SOCKS_SERVER="11.22.33.44:1080" socksify irssi # Тоже самое, только с использованием HTTP proxy с поддержкой метода CONNECT HTTP_CONNECT_PROXY="http://11.22.33.44:8080" socksify irssi 

С помощью socksify можно направить через proxy почти любое приложение, не только консольное.

Читайте также:  Чтение содержимого файла linux

Чтобы все время не вводить данные о proxy можно создать файл /etc/socks.conf
Пример для SOCKS:

Пример для HTTP proxy с авторизацией:

А также экспортировать переменные SOCKS_USERNAME и SOCKS_PASSWORD, если для SOCKS или HTTP proxy требуется авторизация:

export SOCKS_USERNAME="username" export SOCKS_PASSWORD="password" 

DNS запросы через proxy

Часто требуется чтобы и преобразование имен происходило через proxy. Если использовать dante, то запрос на преобразование имен идет и через proxy, и через именной сервер указанный в /etc/resolv.conf . Понять почему же идет два одинаковых запроса вместо одного не удалось. Поэтому можно предложить два варианта:
1) Закомментировать именные сервера в файле /etc/resolv.conf, чтобы преобразование имен шло только через proxy. Это отразится на всей системе.
2) Изменить /etc/resolv.conf и выставить именные сервера необходимой страны, или просто отличные от серверов провайдера. Например установить сервера Google:

nameserver 8.8.8.8 nameserver 8.8.4.4 

Чтобы данные не были перезаписаны именными серверами провайдера (при переподключении), можно запретить обновление списка именных серверов сетевому менеджеру (NetworkManager/wicd) или DHCP-клиенту (спасибо ergil за корректировку).

Или воспользоваться «грубым» методом — запрещением изменения файла /etc/resolv.conf:

sudo chattr +i /etc/resolv.conf 

Если есть какие-то дополнения, пожалуйста, напишите, это будет полезно узнать и применить.

Источник

Использование прокси

В этой статье содержится описание настроек прокси-соединений для различных программ.

Глобальные настройки

Для того, чтобы настроить прокси в Ubuntu откройте Системные параметры, перейдите в пункт Сеть. Выберите пункт Сетевая прокси-служба. Смените метод на Вручную и введите ваши настройки прокси. Минус такой настройки в том, что в случае, если у Вас прокси с авторизацией по логину и паролю, то указать эти данные невозможно, и прокси не будет работать.

Настроить прокси на системном уровне можно и через конфигурационные файлы (True UNIX-way). Для этого нужно открыть на редактирования с правами root файл /etc/environment (например sudo nano /etc/environment). В конец файла добавим строки:

https_proxy="https://user:pass@proxy:port/" http_proxy="http://user:pass@proxy:port/" ftp_proxy="ftp://user:pass@proxy:port/" socks_proxy="socks://user:pass@proxy:port/"

Если прокси без авторизации, то строки должны быть вида:

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

Читайте также:  Can parallels run linux

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

Firefox

Firefox умеет использовать как глобальные настройки, так и свои собственные. Для того чтобы назначить ему прокси, откройте его окно настроек, перейдите на вкладку Дополнительно, далее на вкладку Сеть и нажмите на кнопку Настроить напротив надписи Настройка параметров соединения Firefox с Интернетом. Важное отличие от других программ — он умеет использовать NTLM аутентификацию (используется на Microsoft Internet Security and Acceleration Server).

Chromium-browser

Также может использовать глобальные настройки и имеет свои. Для того чтобы назначить ему прокси персонально, откройте файл /etc/chromium-browser/default и допишите следующие строки:

CHROMIUM_FLAGS="-proxy-server=адрес:порт"

APT

В новых версиях умеет работать с глобальными настройками, но в более старых мог работать только с персональными настройками. Сообщенные настройки: в файле /etc/apt/apt.conf нужно указать:

Acquire::http::proxy "http://логин:пароль@ip_прокси:порт_прокси/"; Acquire::https::proxy "http://логин:пароль@ip_прокси:порт_прокси/"; Acquire::ftp::proxy "http://логин:пароль@ip_прокси:порт_прокси/"; Acquire::socks::proxy "http://логин:пароль@ip_прокси:порт_прокси/"; Acquire. Proxy "true";

Если сервер без авторизации, то логин:пароль@ нужно убрать.

Bash

Само собой настройка через /etc/environment (описано выше в разделе глобальных настроек) будет работать для всех программ запущенных из терминала. Если вы хотите указать настройки персонально для запускаемой программы, то перед ее запуском нужно выполнить:

export http_proxy='http://логин:пароль@ip_прокси:порт_прокси/' export ftp_proxy='http://логин:пароль@ip_прокси:порт_прокси/'

wget

Дописываем в файл /etc/wgetrc :

proxy-user = username proxy-password = password http_proxy = http://xxx.xxx.xxx.xxx:8080/ ftp_proxy = http://xxx.xxx.xxx.xxx:8080/ use_proxy = on

Если прокси без авторизации, то proxy-user и proxy-password нужно убрать

apt-add-repository

Многие компании и университеты блокируют все неизвестные порты наружу. Обычно блокируется и порт 11371, используемый утилитой apt-add-repository для добавления репозиториев. Есть простое решение, как получать ключи репозиториев через 80-ый порт, который используется для доступа к web-страницам и чаще всего не блокируется.

Редактируем файл /usr/lib/python2.6/dist-packages/softwareproperties/ppa.py (нужны привилегии root, вместо /usr/lib/python2.6 может быть версия 2.7). Ищем фразу keyserver.ubuntu.com , заменяем

В версии 16.04 достаточно иметь настроенной переменную окружения

https_proxy="https://user:pass@proxy:port/"
  • Сайт
  • Об Ubuntu
  • Скачать Ubuntu
  • Семейство Ubuntu
  • Новости
  • Форум
  • Помощь
  • Правила
  • Документация
  • Пользовательская документация
  • Официальная документация
  • Семейство Ubuntu
  • Материалы для загрузки
  • Совместимость с оборудованием
  • RSS лента
  • Сообщество
  • Наши проекты
  • Местные сообщества
  • Перевод Ubuntu
  • Тестирование
  • RSS лента
Читайте также:  Линукс операционная система или виндовс

© 2018 Ubuntu-ru — Русскоязычное сообщество Ubuntu Linux.
© 2012 Canonical Ltd. Ubuntu и Canonical являются зарегистрированными торговыми знаками Canonical Ltd.

Источник

Обновление Ubuntu через прокси

Иногда нужно настроить обновление Ubuntu через прокси-сервер. Некоторые провайдеры или крупные организации разрешают доступ в интернет только через свои прокси. Таким образом они получают возможность фильтровать просматриваемый трафик, чтобы ограничивать доступ на нежелательные ресурсы или при неуплате.

Настройка сводится к выполнению нескольких консольных команд. В Ubuntu для управления пакетами используется утилита apt — её и будем настраивать. Как вы поняли, в данной статье мы рассмотрим, как настроить apt через прокси, а точнее, как выполняется настройка обновления через прокси Ubuntu 16.04.

Настройка работы apt через прокси

Как я уже сказал, в Ubuntu загрузкой, поиском и установкой пакетов занимается утилита apt. Таким образом, нам нужно заставить apt работать через прокси. Для этого будем использовать каталог /etc/apt/apt.conf.d/, создайте в нём файл 10proxy:

sudo vi /etc/apt/apt.conf.d/10proxy

Синтаксис записей в файле выглядит следующим образом:

Вообще, название файлу можно дать какое угодно, а выбрано именно это, чтобы вы сразу, посмотрев на имя, поняли для чего этот файл.

  • http — протокол, на котором работает прокси;
  • http://proxy.com — адрес прокси-сервера;
  • port — порт;
  • username — имя пользователя, если для прокси используется аутентификация;
  • password — пароль от прокси.

Например, зададим три прокси, которые работают на протоколах http, https, ftp и socks, затем разрешим использование прокси-серверов:

Acquire::http::proxy «http://username:password@proxy.com:port/»;
Acquire::https::proxy «https://username:password@proxy.com:port/»;
Acquire::ftp::proxy «http://username:password@proxy.com:port/»;
Acquire::socks::proxy «socks://username:password@proxy.com:port/»;
Acquire. Proxy «true»;

Прокси применяются так, как они расположены в списке, если первый не работает, применяется второй и так далее. Сохраните изменения — теперь можно обновлять систему или устанавливать программное обеспечение:

Или выполнить установку пакетов Ubuntu через прокси:

Если захотите отключить обновление Ubuntu через прокси, просто удалите файл 10proxy:

sudo rm /etc/apt/apt.conf.d/10proxy

Выводы

Вот и всё, теперь вы знаете как выполняется настройка apt через прокси Ubuntu. Для работы apt того, что описано в статье достаточно, но если нужно заставить работать другие приложения, придётся выполнить ещё пару настроек, задать прокси в настройках системы, а также установить переменную http_proxy в файле ~/.bashrc. Если у вас остались вопросы, задавайте их в комментариях!

Обнаружили ошибку в тексте? Сообщите мне об этом. Выделите текст с ошибкой и нажмите Ctrl+Enter.

Источник

Оцените статью
Adblock
detector