Ответы на наиболее частые вопросы.
- Зачем городить огород со своим VPN сервером? За те же деньги можно арендовать платный VPN-сервис.
- Как через VPN сервер качать торенты?
1. Зачем городить огород со своим VPN сервером? За те же деньги можно арендовать платный VPN-сервис.
Ответ на первую половину вопроса содержится в этой статье. Не стоит доверять сторонним сервисам. Анонимности вы не добьётесь, и конфиденциальность под вопросом. Личный сервер — это тоже про анонимность. Это возможность скрыть от товарища майора метаданные своей активности (по каким адресам ходили, когда и т.д.). Всё, что останется в логах российских операторов связи — шифрованный шум.
Что касается стоимости: в своём Telegram-канале я постоянно публикую информацию о скидках на хостинги VPS. Вполне реально платить за аренду от $6 в год.
2. Как через VPN сервер качать торенты?
Через VPN качать торенты не нужно. Это медленно и за это вас могут забанить на хостинге VPS. Вы можете заходить на заблокированный в РФ трекер через VPN и скчивать .torrent файл. А вот загрузку контента нужно делать без VPN (на отдельном компьютере-качалке или на своём компьютере с выключенным VPN). Торент-клиенту нужно только получить список пиров/сидов от ананосера, дальше он качает сам. Но вот анонсеры, как правило, находятся в спсике запрещенных сайтов на территории РФ.
Можно сделать на своём VPS socks5 прокси, прописать его в настройки торрент-клиента и запретить клиенту использовать прокси для P2P-соединений.
Тогда клиент будет ходить через прокси только к анонсерам.
А ещё можно применить реверс-прокси. Как установить и настроить — описано в этой статье. Есть два сценария.
Первый: сделать полное зеркало трекера на своём доменном имени. В настройках трекера указать, что в .torrent-файле прописывать альтернативное доменное имя. Например, на сайте RuTracker опция называется «Доменное имя для трекера:» и находится в разделе редактирования профиля. У большинства других трекеров есть аналогичная настройка:
Второй сценарий: сделать зеркало только для анонсеров. Можно заглянуть внутрь .torrent файла или посмотреть, откуда пытается тянуть анонсы торент-клиент. Опять же на примере RuTracker: используются адреса
bt.t-ru.org
bt2.t-ru.org
bt3.t-ru.org
bt4.t-ru.org
Делаем финт ушами. Для реверс прокси добавляем конфиг с таким содержимым:
server { listen 80; server_name bt.t-ru.org; access_log null; error_log null; client_max_body_size 0; underscores_in_headers on; location / { proxy_headers_hash_max_size 512; proxy_headers_hash_bucket_size 64; proxy_set_header Host $host; proxy_set_header X-Forwarded-Proto $scheme; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; add_header Front-End-Https on; # whatever the IP of your cloud server is proxy_pass http://bt.t-ru.org; } } server { listen 80; server_name bt2.t-ru.org; access_log null; error_log null; client_max_body_size 0; underscores_in_headers on; location / { proxy_headers_hash_max_size 512; proxy_headers_hash_bucket_size 64; proxy_set_header Host $host; proxy_set_header X-Forwarded-Proto $scheme; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; add_header Front-End-Https on; # whatever the IP of your cloud server is proxy_pass http://bt2.t-ru.org; } } server { listen 80; server_name bt3.t-ru.org; access_log null; error_log null; client_max_body_size 0; underscores_in_headers on; location / { proxy_headers_hash_max_size 512; proxy_headers_hash_bucket_size 64; proxy_set_header Host $host; proxy_set_header X-Forwarded-Proto $scheme; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; add_header Front-End-Https on; # whatever the IP of your cloud server is proxy_pass http://bt3.t-ru.org; } } server { listen 80; server_name bt4.t-ru.org; access_log null; error_log null; client_max_body_size 0; underscores_in_headers on; location / { proxy_headers_hash_max_size 512; proxy_headers_hash_bucket_size 64; proxy_set_header Host $host; proxy_set_header X-Forwarded-Proto $scheme; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; add_header Front-End-Https on; # whatever the IP of your cloud server is proxy_pass http://bt4.t-ru.org; } }
А на компьютере с торент-клиентом в файле hosts (в Windows-системах по пути c:\windows\system32\drivers\etc\, в Linux в папке /etc/) прописать
111.111.111.111 bt.t-ru.org 111.111.111.111 bt2.t-ru.org 111.111.111.111 bt3.t-ru.org 111.111.111.111 bt4.t-ru.org
где 111.111.111.111 — это IP-адрес вашего VPS.
И вот, что получается в итоге: торент-клиент читает .torrent файл и обнаруживает там адрес анонсера (в случае RuTracker это будет один из: bt*.t-ru.org). Он пытается соединится с ним, но для этого нужно узнать его ip-адрес через системный DNS. Так как файл hosts имеет высший приоритет над любым DNS, то торент-клиенту возвращается ip-адрес вашего VPS. Он идёт туда с http-запросом. На VPS стоит реверс-прокси, который знает, что http-запросы на адреса bt*.t-ru.org нужно отправлять, как ни странно, на адеса bt*.t-ru.org (смотрим в опцию proxy_pass в приведённом выше конфиге). Вот только в файле hosts у реверс-прокси ничего не прописано и он обращается к DNS за настоящим ip-адресом, получает его (VPS же не в РФ, там Роскомнадзора нет) и далее пересылает запросы торент-клиента и возвращает ответы. Наш торент-клиент получает аноаны (т.е. адеса пиров/сидов) и дальше уже соединятеся с ними и качает.
Обязательно включите принудительное шифрование трафика в торент-клиенте.