Форум русскоязычного сообщества Ubuntu


Следите за новостями русскоязычного сообщества Ubuntu в Twitter-ленте @ubuntu_ru_loco

Автор Тема: Подключиться к торрент-трекеру на локальном ПК  (Прочитано 1791 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн damix

  • Автор темы
  • Активист
  • *
  • Сообщений: 664
    • Просмотр профиля
Хочу быстро передавать большие файлы на большие расстояния по bitTorrent.
Собрал из исходников opentracker, как сказано здесь. Запустил ./opentracker & Открываю kTorrent, создаю раздачу, в качестве трекера указываю http://<внешний_ip>:6969/announce kTorrent пытается к нему подключиться, а потом выдает ошибку "Ошибка соединения с узлом localhost".
Если отправитель и получатель файла находятся в одной LAN (дело за NATом происходит), то они нормально находят друг друга, стоит только указать внутренний ip при создании раздачи. Но если такую раздачу отправить в другую сеть, то и там ipшник пира показывает серый. Порт, на котором висит трекер пробросился нормально, извне трекер виден.
Я нагуглил, что нельзя обратиться по белому ipшнику к компу, который с тобой в одной сети. Но, как известно, в линуксе с сетью можно сделать всё. Так вот как так завернуть трафик, чтобы эти две программы общались друг с другом и думали что общаются через белый ip?
« Последнее редактирование: 27 Января 2019, 12:09:13 от damix »

Оффлайн AnrDaemon

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 28366
    • Просмотр профиля
Сделать действительно можно всё. В разумных пределах.
Нельзя подключиться по адресу к компьютеру, которуму этот адрес не принадлежит.
Хотите получить помощь? Потрудитесь представить запрошенную информацию в полном объёме.

Прежде чем [Отправить], нажми [Просмотр] и прочти собственное сообщение. Сам-то понял, что написал?…

Оффлайн damix

  • Автор темы
  • Активист
  • *
  • Сообщений: 664
    • Просмотр профиля
Нельзя подключиться по адресу к компьютеру, которуму этот адрес не принадлежит.
Так я хочу подключиться по адресу, который ему принадлежит.
У меня есть такая идея. Что если на пакетах, идущих от клиента к трекеру менять ipшник назначения на 127.0.0.1, а ipшник отправителя - на внешний, и аналогично в другую сторону?
Ну или какой другой обход здесь есть?

Оффлайн ALiEN

  • Администратор
  • Старожил
  • *
  • Сообщений: 6755
  • 20% Cooler
    • Просмотр профиля
damix, а скажите-ка, вам именно торрент нужен? Или изначальная задача заключается просто в синхронизации больших файлов на большие расстояния?
🖥 AsRock B550M Pro4 :: AMD Ryzen 5 3600 :: 16 GB DDR4 :: AMD Radeon RX 6600 :: XFCE
💻 ACER 5750G :: Intel Core i5-2450M :: 6 GB DDR3 :: GeForce GT 630M :: XFCE

Оффлайн AnrDaemon

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 28366
    • Просмотр профиля
Хотите получить помощь? Потрудитесь представить запрошенную информацию в полном объёме.

Прежде чем [Отправить], нажми [Просмотр] и прочти собственное сообщение. Сам-то понял, что написал?…

Оффлайн obormot

  • Любитель
  • *
  • Сообщений: 82
    • Просмотр профиля
Я нагуглил, что нельзя обратиться по белому ipшнику к компу, который с тобой в одной сети.

Черезанусно можно всё. Примерно так, как это сделано в мокротиках и Windowsх - делаете "локальную проксю" и пускаете в неё.

Хелпов по мокротикам - море. А с виндой есть пример на рутрекере в разделе обхода блокировок трекера. (там вроде и ссылка есть в шапке темы)

Оффлайн damix

  • Автор темы
  • Активист
  • *
  • Сообщений: 664
    • Просмотр профиля
, вам именно торрент нужен? Или изначальная задача заключается просто в синхронизации больших файлов на большие расстояния?
Конечная цель - передавать файлы. А что может быть для этого лучше торрента? Только не экзотическое, а то чем все пользуются, что у всех установлено.
Показывайте `ip a`
$ ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000                                         
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00                                                                           
    inet 127.0.0.1/8 scope host lo                                                                                                   
       valid_lft forever preferred_lft forever                                                                                       
    inet6 ::1/128 scope host                                                                                                         
       valid_lft forever preferred_lft forever                                                                                       
2: enp30s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000                               
    link/ether <my_mac> brd ff:ff:ff:ff:ff:ff                                                                               
    inet 192.168.1.2/24 brd 192.168.1.255 scope global dynamic noprefixroute enp30s0                                                 
       valid_lft 74589sec preferred_lft 74589sec                                                                                     
    inet6 <...> scope link noprefixroute                                                                     
       valid_lft forever preferred_lft forever                                                                                       
3: virbr0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN group default qlen 1000                             
    link/ether <...> brd ff:ff:ff:ff:ff:ff                                                                               
    inet 192.168.122.1/24 brd 192.168.122.255 scope global virbr0                                                                   
       valid_lft forever preferred_lft forever
4: virbr0-nic: <BROADCAST,MULTICAST> mtu 1500 qdisc fq_codel master virbr0 state DOWN group default qlen 1000
    link/ether <...> brd ff:ff:ff:ff:ff:ff
Хелпов по мокротикам - море. А с виндой есть пример на рутрекере в разделе обхода блокировок трекера. (там вроде и ссылка есть в шапке темы)
Но ведь я спрашиваю, как это сделать в линуксе ...
Пробовал так
iptables -t nat -I OUTPUT -p tcp -m tcp --dport 6969 -d <белый_ip>/32 -j DNAT --to-destination 127.0.0.1:6969клиент находит трекер, но другие пиры видят мой ipшник как 192.168.1.2.

Оффлайн AnrDaemon

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 28366
    • Просмотр профиля
damix, ну и где там внешний адрес?
Хотите получить помощь? Потрудитесь представить запрошенную информацию в полном объёме.

Прежде чем [Отправить], нажми [Просмотр] и прочти собственное сообщение. Сам-то понял, что написал?…

Оффлайн damix

  • Автор темы
  • Активист
  • *
  • Сообщений: 664
    • Просмотр профиля
AnrDaemon, а почему вы спрашиваете?

Оффлайн AnrDaemon

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 28366
    • Просмотр профиля
Ясно, тему можно закрывать.
Хотите получить помощь? Потрудитесь представить запрошенную информацию в полном объёме.

Прежде чем [Отправить], нажми [Просмотр] и прочти собственное сообщение. Сам-то понял, что написал?…

Оффлайн damix

  • Автор темы
  • Активист
  • *
  • Сообщений: 664
    • Просмотр профиля
Попробовал сделать так
iptables -t nat -I OUTPUT -p tcp -m tcp --dport 6969 -d <белый_ip>/32 -j DNAT --to-destination 192.168.1.2
iptables -t nat -I OUTPUT -p tcp -m tcp --dport 6881 -d <белый_ip>/32 -j DNAT --to-destination 192.168.1.2
iptables -t nat -I POSTROUTING -p tcp -m tcp --sport 6881 -s 192.168.1.2/24 -d 192.168.1.2 -j SNAT --to-source <белый_ip>
iptables -t nat -I POSTROUTING -p tcp -m tcp --sport 6969 -s 192.168.1.2/24 -d 192.168.1.2 -j SNAT --to-source <белый_ip>
не пашет, результат тот же
другие пиры видят мой ipшник как 192.168.1.2
Черезанусно можно всё. Примерно так, как это сделано в мокротиках и Windowsх - делаете "локальную проксю" и пускаете в неё.
А можно подробнее насчет локальной прокси? Я так понял, нужно установить прокси-сервер, только непонятно, как это все будет работать, ведь ip у него все равно будет серый.

Оффлайн ALiEN

  • Администратор
  • Старожил
  • *
  • Сообщений: 6755
  • 20% Cooler
    • Просмотр профиля
damix, у вас роутер? Порт на нём пробрасывать надо.

А про локальную сеть можно и забыть, почти все торрент клиенты сами умеют "поиск пиров в локальной сети".
« Последнее редактирование: 11 Февраля 2019, 16:56:19 от ALiEN175 »
🖥 AsRock B550M Pro4 :: AMD Ryzen 5 3600 :: 16 GB DDR4 :: AMD Radeon RX 6600 :: XFCE
💻 ACER 5750G :: Intel Core i5-2450M :: 6 GB DDR3 :: GeForce GT 630M :: XFCE

Оффлайн damix

  • Автор темы
  • Активист
  • *
  • Сообщений: 664
    • Просмотр профиля
у вас роутер?
Да, ноунеймовский роутер от провайдера. На него ни openWrt не поставить, ничего ...
Порт на нём пробрасывать надо.
порт, который слушает трекер (6969), проброшен. Надо пробросить еще и тот, который слушает клиент?
В локальной сети и так все работает, но в ней и торрент не нужен, можно через общие папки расшаривать файлы.
« Последнее редактирование: 12 Февраля 2019, 12:06:51 от damix »

Оффлайн damix

  • Автор темы
  • Активист
  • *
  • Сообщений: 664
    • Просмотр профиля
Пробросил и тот и другой порт.

Пересобрал opentracker так
cvs -d :pserver:cvs@cvs.fefe.de:/cvs -z9 co libowfat
cd libowfat
make
cd ..
git clone git://erdgeist.org/opentracker
cd opentracker
в файле Makefile раскомментировал строчку FEATURES+=-DWANT_IP_FROM_QUERY_STRING затем
make
Запустил opentracker
./opentracker &
В kTorrent нажал Настройка -> Настроить kTorrent -> BitTorrent, и в рамке Трекер поставил галку Посылать трекеру указанный вручную IP-адрес или имя хоста и в поле Нестандартный IP адрес или имя хоста указал белый ip без порта и нажал ОК.
Теперь при создании раздачи указываю в .torrent-файле трекер как
http://<внешний_ip>:6969/announceно потом в клиенте (том же самом) перед тем как подключиться, добавляю вручную еще такой трекер
http://192.168.1.2:6969/announce
Тогда пир в другой сети видит мой ipшник как белый.

Пользователь добавил сообщение 08 Января 2020, 21:22:06:
В спецификации написано

Цитировать
Tracker GET requests have the following keys:

...

ip
    An optional parameter giving the IP (or dns name) which this peer is at. Generally used for the origin if it's on the same machine as the tracker.

...


(Нажмите, чтобы показать/скрыть)
« Последнее редактирование: 08 Января 2020, 21:22:06 от damix »

 

Страница сгенерирована за 0.06 секунд. Запросов: 25.