Выношу в отдельный пост советы по работе с особенно непрозрачными прокси-серверами.
- SSH через прокси (Tunneling SSH over an HTTP-Proxy Server).
Ниже пример для джентоводов, остальные заменят две первые команды установкой аналогичных пакетов в своем любимом дистрибутиве.# echo 'net-misc/corkscrew' >> /etc/portage/package.keywords/all.keywords # emerge -av corkscrew netcat $ cd ~/.ssh && wget http://www.mtu.net/~engstrom/downloads/ssh-proxy $ chmod a+x ssh-proxy $ echo -e 'Host *\n ProxyCommand $HOME/.ssh/ssh-proxy -p http.proxy.ru:8080 %h %p' >> ~/.ssh/config
- Доступ к репозитариям svn, git, hg, Rsync.
Для Rsync все просто: достаточно добавить в /etc/profile строку export RSYNC_PROXY="proxy.host.ru:8080".
Для Mercurial тоже несложно: редактируем ~/.hgrc[http_proxy] host = proxy.host.ru:8080
В случае subversion сложнее. Если нет никакой возможности повлиять на админов прокси (чаще всего это squid с дефолтным конфигом), то придется выкручиваться. Можно поменять порт или протокол (например, заменить на https, см. подробнее FAQ).
Для git существует множество рецептов в сети (в том числе использование proxychains). Кардинальный путь решения проблемы с прокси — использование socat. Рецепт для git, более гибкая модификация для git и svn.
Можно еще тупо соединяться через ssh (git clone ssh://...). - Обход фильтрации контента.
Про это в сети написано очень много. Если прокси настроен тупо, можно просто заменить имя хоста IP-адресом. Когда сработает, можете смело считать админа... лекгомысленным человеком =) В противном случае надо в сети искать доступные сервисы по форвардингу контента, маскировке URL и анонимайзеры. Например PHProxy. Или сделать такой самому, а можно и через тот же ssh-тоннель, раз уж доступна удаленная машина ;)
Создаем /etc/proxy.d/192.168.0.111:
export RSYNC_PROXY="proxy.host.ru:8080"
export http_proxy="proxy.host.ru:8080"
export https_proxy="proxy.host.ru:8080"
export ftp_proxy="proxy.host.ru:8080"
export no_proxy="127.0.0.1,localhost"