-1

** Я разместил трекер xbtit на сервере VPS.Я загрузил файл, и мой друг, который подключен к сети, скачал его.Но в то время как он загружал, он не получил скорость локальной сети, которую он должен был получить.В Peer вместо его IP-адреса локальной сети был обнаружен его публичный IP-адрес.И вот он скачал на медленной скорости.

Как заголовок TCP может объявить IP-адрес локальной сети через публичный IP-адрес в системе трекера? Есть ли маленький PHP-код?

Когда я использовал для размещения сервера в локальной сети, таких проблем не было.И все мои пользователи, которые будут использовать этот трекер, являются моими пользователями ISP LAN.Так что мне нужно что-то сделать так, чтобы в списке peer их IP-адрес локальной сети был обнаружен через публичный IP

Кто-нибудь, пожалуйста, помогите мне

3 ответа3

0

Это правда, что нет никакого практического решения вашей проблемы.

Однако я могу придумать только один альтернативный способ решения вашей проблемы.

Вы можете настроить bittorrent-трекер в своей локальной сети и сказать основному трекеру (который находится на www) автоматически добавлять URL объявления вашего локального торрент-трекера при загрузке торрента.

Это возможно с . Используемый вами скрипт xbtit использует торрентный метод кодирования и декодирования, называемый BEncode и BDecode . Вы можете добавлять или удалять URL трекера во время процесса BEncoding.

Вы можете разработать некоторый php-код для проверки URL-адреса запроса загрузчика, если он находится в пределах вашего диапазона IP-адресов. Если это совпадение, вы можете добавить URL-адрес вашего локального трекера в массиве "announce-list" . Настройте свой локальный торрент-трекер для отслеживания любого торрента любому пользователю. См. Документацию XBTT .

Теперь пользователи вашей локальной сети в вашей локальной сети могут скачать торрент и получать уведомления в вашей локальной сети, подключаться друг к другу и загружать.

0

К сожалению, то, что вы хотите, не совсем практично (и я могу понять, почему кто-то дал это -1, хотя это был не я).

Я постараюсь разгадать это немного для вас -

Когда (домашние) компьютеры находятся в локальной сети, они, как правило, совместно используют "недопустимый" диапазон адресов, который маршрутизатор затем переписывает как действительный IP-адрес - процесс, называемый NAT - это, похоже, относится к вашей локальной сети.

Веб-сервер использует TCP (обычно на порту 80). Большинство веб-серверов смогут предоставлять информацию о компьютере, подключающемся к нему, на основе 2 факторов - данных, которые он получает, - какой смысл получать от маршрутизатора, а не компьютера, - и заголовков, предоставляемых веб-клиентом. Ни один из этих факторов не включает адрес локальной сети клиента, на котором адрес локальной сети был NAT - на самом деле это было бы дырой в безопасности, которая (по большей части) не имеет значения. Это основная проблема, с которой вы столкнулись.

Таким образом, ответ на следующую часть вашего вопроса: «Нет, вы не можете написать кусок PHP для объявления локального IP, так как он никогда не получает локальный IP». Кроме того, это противоречило бы духу Bittorrent - извините, но совместное использование файла с использованием BT EXTERNALLY для локального использования выходит за рамки его параметров проектирования - такая проблема может быть решена с помощью совместного использования файлов.

Если вы хотите обойти проблему, вам нужно либо переместить Tracker в локальную сеть, либо подключить внешний VPS к локальной сети через VPN, чтобы "победить" NAT между расположениями. Тем не менее, если вы задаете эти вопросы, у вас, вероятно, есть ОЧЕНЬ много знаний, чтобы приступить к настройке VLAN, которая будет работать для вас.

0

В настройках вашего трекера

Tick Allow External Torrents

Снимите флажок Отключить DHT

убрать галочку

Отменить частное объявление

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .