habrahabr

Краткая инструкция: GitHub через Tor

  • четверг, 4 декабря 2014 г. в 02:11:50
http://habrahabr.ru/post/244869/

Предлагаю использовать Tor для доступа к сайтам, к которым отсутствует прямой доступ.

image


Сеть Tor — это система прокси-серверов, позволяющая устанавливать анонимное сетевое соединение. С помощью Tor можно анонимно подключаться к обычным серверам и хостить непрослушиваемые серверы в самой сети Tor.

Разберём пару способов подключаться к Github через Tor.

Способ 1. Torsocks (не для Windows)


На Debian и Ubuntu достаточно установить пакет tor:

# apt-get install tor

Пакет tor включает программу torsocks. Если к команде запуска программы (например, git) приписать torsocks, то её сетевая активность (включая разрешение доменов) пойдёт через Tor. Сетевая активность, которую нельзя пропустить через Tor, будет отсекаться (например, UDP).

torsocks git push
torsocks git pull


Способ 2. Проксирование SSH через Tor


$ cat ~/.ssh/config
Host github
Hostname github.com
User git
ProxyCommand /bin/nc -X 5 -x localhost:9050 %h %p

$ git clone github:starius/lapis.git

(Обратите внимание на использование github вместо git@github.com в команде гита. Если используете Tor-браузер вместо системной службы tor, то порт будет 9150 вместо 9050.)

Для этого способа требуется программа netcat-openbsd. Если используется другой netcat, могут возникать проблемы. В таком случае надо установить пакет netcat-openbsd.

UPD. Этот способ работает в Windows (Cygwin). Нужно установить пакеты git, openssh и nc. Можно использовать Tor в составе Tor-браузера (тогда порт SOCKS5 будет 9150).

Способ 3. Указать прокси в конфигурации Git (не SSH)


$ git config --global http.proxy socks5://localhost:9050
$ git config --global https.proxy socks5://localhost:9050

(Если используете Tor-браузер вместо системной службы tor, то порт будет 9150 вместо 9050.)

После этого можно работать с Github в обычном режиме, но только через http и https:

$ git clone https://github.com/leafo/lapis

Этот способ работает на Linux, Mac, Windows (скорее всего, будет работать везде, где есть тор и гит).

Почему Tor, а не I2P?


  1. I2P предназначен в первую очередь для соединений внутри самой скрытой сети (со скрытыми сайтами). Выход наружу скрытой сети в старый добрый Интернет это основное предназначение Tor, а для I2P — дополнительное применение. Да и мощности Tor на Exit-нодах во много раз превосходят мощность одного Exit-proxy узла, который есть в I2P. Скорость скачивания через Tor у меня находится в пределах 500-1000 килобайт в секунду.
  2. Доступ в Tor заблокировать нельзя благодаря meek (на картинке для привлечения внимания скриншот тор-браузера, подключающегося через azure). Meek основан на принципе подключения через сайты, слишком крупные, чтобы их заблокировать: google, azure, amazon. Если доступен google.com через https, то и тор доступен! О meek. UPD В Китае google всё-таки заблокировали.
  3. Tor поднять проще, чем I2P. Тор-браузер включает всё необходимое и его способен скачать и запустить даже ребенок, а в дебиане давно есть пакет tor. I2P в этом смысле сильно проигрывает.


Вы можете помочь сети Tor!


  1. Запустить сервер сети Tor
  2. Сделать пожертвование
  3. Другие способы помочь Tor

PS. Навеяно публикацией «Краткая инструкция: GitHub через I2P». Хотел написать развёрнутый комментарий, но материала накопилось на отдельный пост. Интересно, почему на хабре есть хаб I2P, но нет хаба Tor.