4

Есть активный и пассивный режим, когда мы говорим о торренте. Пассивный, это когда вы не можете подключиться к коллегам активно. Активен, когда ваши порты пересылаются, и другие могут подключаться к вам.

То, что я сделал до сих пор, это установление Debian на моем сервере. Затем я добавил GatewayPorts yes в мой файл sshd_config. После этого в PuTTY я настроил следующую конфигурацию:
- Удаленные порты делают то же самое
- Локальные порты принимают соединения от других хостов
Затем я добавил новый форвард, как:
4D8080 (IPv4, Dynamic, на моем компьютере, порт 8080).

После этого я настроил свой uTorrent на использование прокси-сервера SOCKS5 для каждого возможного соединения на localhost , порт 8080 . Но мой клиент покажет красный знак в нижней правой части.

Есть ли этому решение? (Что-то, конечно, не так, я тоже получаю 0 узлов DHT.)

3 ответа3

4

Ваши две проблемы (не соединяемые и не находящие узлы DHT) связаны, но у них разные причины и разные (частичные) решения.

связь

Чтобы принимать входящие соединения, вы должны выполнить три вещи:

  • Переадресация удаленного порта, который uTorrent слушает, на ваш клиентский компьютер.

    В разделе «Настройки» → «Соединение» → «Порт прослушивания» → «Порт», используемый для входящих соединений, uTorrent позволяет указать один порт для входящих соединений. Установите его на 40000 (например).

    Для пересылки этого порта введите Соединение → SSH → Туннели в PuTTY и добавьте следующий переадресованный порт:

    R40000 127.0.0.1:40000
    

    Проверка того, что локальные порты принимают соединения от других хостов, для этого не требуется и не требуется. Он используется для подключения других компьютеров к вашему компьютеру и использования перенаправленных локальных и динамических портов.

    Проверка того, что удаленные порты делают то же самое, требуется только в том случае, если для GatewayPorts заданы клиенты, clientspecified на вашем сервере. Если установлено значение yes или no , эта опция не имеет никакого эффекта.

  • Сделайте так, чтобы uTorrent сообщал о правильном IP трекеру.

    По умолчанию трекер дает наилучшую оценку при добавлении IP-адреса в список пиров. Перенаправление динамического порта может (это зависит от трекера) вызывает локальный IP - адрес 10.xxx.yyy.zzz , чтобы добавить в список сверстников. IP, который должен быть добавлен вместо этого, является вашим сервером.

    Вы можете указать его в Предпочтения → BitTorrent → IP/ Имя хоста, чтобы сообщить о нем трекеру. Не все трекеры уважают этот параметр, но он должен помочь.

  • Разрешить uTorrent принимать входящие соединения.

    В Предпочтения → Дополнительно вы можете изменить битовое поле bt.transp_disposition.

    При использовании туннеля SSH с удаленной переадресацией портов для соединений TCP и UDP (см. Ниже) я бы установил его на 13 . Это позволяет исходящим TCP и входящим одноранговым соединениям TCP и UDP.

DHT / UDP соединения

PuTTY и SSH не прослушивают ни один UDP-порт, поэтому ни динамический, ни удаленный порт, который вы перенаправили, не будут работать из коробки. Поскольку DHT использует UDP, он также не будет работать.

  • Входящие UDP-соединения

    Если вы устанавливаете socat на своем сервере (apt-get install socat) и на своем клиентском компьютере (используя Socat для Windows), вы можете преобразовывать входящие соединения UDP в соединения TCP, пересылать их через туннель и преобразовывать их обратно в соединения UDP на вашем клиентская машина.

    Для этого выполните

    socat udp4-listen:40000,reuseaddr,fork tcp:localhost:50000
    

    на вашем сервере и

    socat tcp4-listen:50000,reuseaddr,fork UDP:localhost:40000
    

    на вашем клиентском компьютере.

    Выбор номера порта 50000 является произвольным, но он должен отличаться от 40000 (чтобы можно было отличить один тип соединения от другого).

    Для фактической пересылки введите Соединение → SSH → Туннели в PuTTY и добавьте следующий перенаправленный порт:

    R50000 127.0.0.1:50000
    
  • Исходящие UDP-соединения

    Маршрутизация исходящих UDP-соединений через SSH-туннель не так проста и даже невозможна. Метод, описанный выше, не будет работать, так как socat прослушивает только определенный порт, в то время как порт назначения исходящего соединения может быть любым. Кроме того, как только TCP-пакет достигает динамически перенаправленного порта, вы не можете контролировать, что с ним происходит.

    Было бы возможно установить UDP-соединения на одноранговой основе, но это, вероятно, не стоит усилий. DHT должен нормально работать с входящими соединениями, как только вы подключились к первому узлу.

0

вам нужно сделать это наоборот ... Вы должны иметь удаленные порты, принимающие соединения от других хостов. И правило брандмауэра на вашем сервере, разрешающее входящий трафик на порт прослушивания, установленное в настройках utorrent. (хотя я не уверен, что это распространяется через носки - вам нужно попробовать и проверить netstat)

0

Динамический режим прокси-сервера SOCKS (опция "D") не может обрабатывать входящие соединения для вас, потому что в протоколе нет такого положения. Прокси-протокол должен обрабатывать только ваши исходящие соединения.

Вам нужно добавить удаленное перенаправление (опция "R"), чтобы ваш SSH-сервер прослушивал порт и перенаправлял вам пакеты. Смотрите следующую выдержку из справочной страницы:

 -R [bind_address:]port:host:hostport
     Specifies that the given port on the remote (server) host is to
     be forwarded to the given host and port on the local side.  This
     works by allocating a socket to listen to port on the remote
     side, and whenever a connection is made to this port, the connec-
     tion is forwarded over the secure channel, and a connection is
     made to host port hostport from the local machine.

     Port forwardings can also be specified in the configuration file.
     Privileged ports can be forwarded only when logging in as root on
     the remote machine.  IPv6 addresses can be specified by enclosing
     the address in square braces or using an alternative syntax:
     [bind_address/]host/port/hostport.

     By default, the listening socket on the server will be bound to
     the loopback interface only.  This may be overriden by specifying
     a bind_address.  An empty bind_address, or the address '*', indi-
     cates that the remote socket should listen on all interfaces.
     Specifying a remote bind_address will only succeed if the
     server's GatewayPorts option is enabled (see sshd_config(5)).

Обратите внимание, однако, что эта функция переадресации портов может изменить исходный IP-адрес удаленного узла, что может испортить протокол bittorrent. Если это так, вам нужно использовать VPN вместо SSH.

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