Настройка DC++ в Активном режиме через роутер. Вопросы по работе и решение проблем DC++


plague

Рекомендуемые сообщения

Обновлено от 29/08/2009

 

Внимание! Пассивный режим ограничивает кол-во людей с которыми вы можете соединяться. Нельзя соединиться с такими же пассивными.

 

Пример настройки роутеров D-link можно подсмотреть тут http://sswlink.spb.ru/DC_router/index.html

 

Zyxel - http://zyxel.ru/content/support/knowledgebase/KB-1595

По разным моделям, но на Английском языке - http://www.dslreports.com/faq/dc/3.2_Hardw...walls___Routers

 

Для ASUS WL5xx c Олеговской прошивкой.

Взято отсюда http://ru.wikibooks.org/wiki

 

НАСТРОЙКА РАБОТЫ DC++ В АКТИВНОМ РЕЖИМЕ

 

Действие первое: настраиваем DC++ без роутера! Чтобы быть уверенным что все вообще работает.

 

Действие второе: подключаем роутер, настраиваем DC++ снова Для примера привожу настройки клиента StrongDC++ (в других программах аналогично)

(X) Firewall With manual Port Forwarding

Ports TCP 16002 (для 192.168.1.2, чтобы потом не запутаться, для 192.168.1.123 будет 16123 и т.д.)

Ports UDP 16002

External\WAN IP : Внешний IP моего роутера

(X) Don't Allow HUB\UPNP to override

(_)Auto update IP on startup

 

Действие третье: настраиваем роутер. Router:

NAT Settings -> Virtual Server

Enable Virtual Server: (X) Yes

PortRange 16002

Local IP 192.168.1.2

Protocol BOTH ИМЕННО BOTH!

LocalPort 16002

Protocol No. (Пусто)

 

Теперь сохраняемся, перегружаемся и проверяем ДЦ.

 

Должно работать все кроме поиска. Если не работает, дальше не переходим, а смотрим где ошибка в предыдущих действиях.

 

Для Активных работает. К сожалению, не имею возможности проверить на пассивных, ибо локалка и все активы. Но вроде должно.

 

В принципе если пользователей мало, то на этом можно закончить. Если пользователей в ДЦ много, больше 100, едем дальше!

 

Данные о найденных файлах в ДЦ приходят в виде UPD-пакетов. По умолчанию роутер принимает только 5 UDP-пакетов в секунду, остальные - отшибает навсегда. о есть если вам придет 100 результатов поиска за 1 секунду(что реально для локальных сетей), вы увидите только 5 из них. Чтобы это победить надо сделать:

 

Записать в автозапуск строку iptables -I SECURITY -p udp --dport 16002:16254 -j RETURN .

Как это сделать, если сами не знаете, описывается далее. Если знаете то дальше читать не надо

 

Шарящих просьба вдумываться в написанное и делать поправку на свою ситуацию.

 

Для прошивки Олега (в асусовской у вас будет глючить поиск, будет мало результатов):

Зайдите на роутер, на вкладку System Setup / Services

Запомните значение параметра Enable telnet access:. Теперь меняем:

Enable telnet access: YES - включили доступ на роутер через telnet.

Нажимаем Finish, потом Save and Restart.

Ждем полной загрузки роутера + еще 30 секунд.

 

Пуск-Выполнить-"telnet 192.168.1.1"-ОК - 192.168.1.1 - IP роутера

Видим filimonic.local.zelan login:

Вводим логин роутера (поумолчанию admin) и жмем

Видим Password:

Вводим пароль роутера (по умолчанию admin) и жмем

Видим приглашение командной строки роутера

[ххх@filimonic root]$

Пишем следующие команды

Код:

cd /usr/local

mkdir -p /usr/local/sbin/

cd sbin

ls Далее следуют два варианта: файл post-firewall есть, либо его нет

 

Вариант когда есть, роутер выдаст (среди строк присутствует post-firewall, могут быть и другие файлы):

 

[ххх@filimonic sbin]$ ls

post-firewall

Вариант когда нет, роутер выдаст (среди строк НЕТ post-firewall, но могут быть другие файлы, КОТОРЫЕ НАС НЕ ИНТЕРЕСУЮТ: [ххх@filimonic sbin]$ ls [ххх@filimonic sbin]$

 

Если нет, делаем это: Цитата: touch ./post-firewall

chmod +x ./post-firewall

echo '#!/bin/sh' > ./post-firewall ( знак > перезаписывает файл и добавляет туда строку)

echo iptables -I SECURITY -p udp --dport 16002:16254 -j RETURN >> ./post-firewall (знак >> НЕ ПЕРЕЗАПИСЫВАЕТ ФАЙЛ, а добавляет строку в конец)

Если есть, делаем так:

cat post-firewall

 

Если первая строка выглядит так: #!/bin/sh, делаем

 

chmod +x ./post-firewall

echo iptables -I SECURITY -p udp --dport 16002:16254 -j RETURN >> ./post-firewall

Если первая строка выглядит НЕ так: #!/bin/sh, делаем

 

chmod +x ./post-firewall

echo '#!/bin/sh' > ./post-firewall ( знак > перезаписывает файл и добавляет туда строку)

echo iptables -I SECURITY -p udp --dport 16002:16254 -j RETURN >> ./post-firewall

 

Теперь пишем (в любом случае, независимо от предыдущих "если")

flashfs save

flashfs commit

flashfs enable

reboot

Заходим на роутер, в System Setup -> Services и ставим Enable Telnet Access в прежнее значение Finish , Save and restart.

 

 

 

 

"Про Актив и Пассив"

 

© автор NoNick

 

"Для начала опишу как это работает, чтобы было понятней:

Активный режим:

Ваш клиент говорит другому: слей-ка мне такой-то файл на такой-то адрес, такой-то порт

Пассивный режим:

Ваш клиент говорит другому: мне нужен такой-то файл, скажи с какого адреса и какого порта можно забрать.

 

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

 

А вот для работы активного режима надо больше: другие клиенты должны иметь возможность открывать соединения на указанные вашим клиентом адрес и порт. Что для этого нужно сделать:

 

1) В классическом случае вы находитесь в одной сети с другими пользователями. В этом случае (настройка «прямое соединение» клиента) главное – прописать в настройках правильный адрес вашей машины в сети. При прямом соединении ваш клиент выбирает порты, которые он указывает в запросе на соединение, случайным образом, поэтому для работы активного режима необходимо, чтобы все соединения по протоколам TCP и UDP клиенту были разрешены (в случае использования персонального файрвола).

 

2) На вашем пути в общую сеть файрвол или NAT, который поддерживает технологию UPnP. Включаем режим «фаер с UPnP». По идее, в этом случае клиент с файрволом сами «договариваются», что и как должно работать, клиент получает с NAT внешний адрес и порты, после чего работает по ним в активном режиме. http://www.dslreports.com/faq/dc

 

3) вы находитесь во внутренней сети за NAT без поддержки UpnP (или у вас не получилось его задействовать). В этом случае выбирается опция «firewall с внутренним перенаправлением портов», в настройках клиента прописывается внешний ip адрес NAT и два номера портов (в этом случае клиент использует только их). При этом на самом NAT необходимо вручную настроить перенаправление всех входящих соединений, приходящих на эти порты, на внутренний адрес машины.

То есть, если есть сеть, в которую вы ходите через роутер с внешним адресом А, и ваша машина во внутренней сети имеет адрес B, то нужно в настройках клиента прописать адрес А, номера портов X и Y, а на самом роутере задать перенаправление соединений, приходящих на A:X и A:Y, на B:X и B:Y соответственно.

 

4) Нет возможности управлять NATом или файрволом, которые стоят на пути в сеть. В этом случае работа возможна только в пассивном режиме."

 

 

Основные фичи sDC и полезная информация

 

"Эмуляция"

На многих интернетовских хабах не разрешены какие либо клиенты кроме стандартного DC++.

Это связанно с тем, что навороченные клиенты имеют такие функции как "ограничение скорости отдачи" и "мульти-сегментная скачка".

Первая обрезает скорость, вторая - ворует(занимает) у других свободные слоты.

Поэтому в большинстве клиентов есть эмуляция оригинального DC++, т.е они маскируются.

В sDC эмуляцию можно ставить в свойствах любимых хабов. Она так же вклчюена по умолчанию при быстром соединении через "Public hubs".

Режим эмуляции sDC не скрывает использование ограничения скорости (В тэге L:1000). Так же, в режиме эмуляции мульти-сегментная скачка работает по другому. Вы теряете слот при скачивании каждого куска файла.

Т.е sDC старается быть честным.

 

 

"Мультисегментная скачка (Segmented downloading)"

sDC позволяет скачивать один и тот же файл из нескольких источников.

Максимальное кол-во источников устанавливается автоматически в зависимости от размера файла.

Более большой файл можно тянуть с большего кол-ва источников, чем более маленький.

Сначала sDC пытается получить слоты ото всех возможных юзеров. Как только достигается максимальное кол-во слотов, sDC больше не пытается соединяться с другими. Если какой-то слот потерян, sdc снова делает попытки со всеми соединиться.

 

"Отдача качающихся файлов (Partial File Sharing)"

sDC начинает раздачу файла другим людям пока вы его ещё качаете.

Эта фича работает только вместе с мульти-сегментной скачкой.

(и отключить её можно только вместе с мульти-сегментной скачкой)

"Ограничение скорости и сброс медленных источников"

В "Настройки"\"Ограничение скорости" можно регулировать скорость, если она слишком большая.

Так же очень полезна фича "обрыв медленных скачек", позволяющая сбрасывать ненужные сегменты и качать только с самых быстрых (ведь всего сегментов не может быть более 10)

 

"Честная очередь отдачи (Real upload queue)"

В стандарнтом клиенте слот на скачку выдается случайно "кому повезло - тот и качает".

Начиная с 2.05 sDC следит какой юзер ожидал дольше и выдает освободившийся слот именно ему.

 

"Умная" временная папка (Targetdrive)

В sDC в качестве пути к временной папке можно установить %[targetdrive]\temp\

Это значит, что при начале скачки sDC посмотрит на какой диск вы качаете и там же создаст временную папку. В обычном DC++ временная папка задается жёстко. Если она и папка для скачек находятся на разных дисках, то после завершения скачки хард "потупит" перенося файл. Targetdrive позволяет этого избежать.

 

 

"StrongDC.pdb и зачем он нужен"

sDC прекрасно работает и без него, но его присутствие позволяет сделать баг-репорт полезным.

В случае падения программы, нужная для устранения бага информация сохраняется в exceptioninfo.txt в папке с sDC.

Передайте её мне или разработчику sDC пожалуйста.

Да, каждый StrongDC.pdb подходит только к "своей" версии sDC, т.е обновлять нужно каждый раз.

Раз уж речь зашла о багах..Если sDC просто зависнет, не сформировав баг-отчета, пригодится программа http://proc.ru/soft/utilites/MiniDumpTool.zip которая создаст "копию оперативной памяти" в момент зависания, что поможет устранению бага. Файл-копию присылайте мне. С описанием что произошло.

 

"Режимы соединения"

В настройках\настройки соединения можно выбрать какой режим будет использоваться глобально.

Так же, в настройках каждого любимого хаба можно выбрать свой режим и ip, отличный от глобального. Это например используется в сборке sDC_Adrium. Глобально стоит пассив и при входе на интернет хабы можно сразу качать. (т.к в сети много анлимщиков с серым ip) А в настройках внутренних локальных хабов выбран актив.

Подробнее о режимах соединения в следующем посте.

 

"Автоприоритет"

Настройки\Очередь\Использовать автоприоритет по умолчанию.

В обычном DC++ приоритеты ставяться в зависимости от размера файла и не меняются.

В sDC автоприоритет действут по другому. Приоритет обновляется в зависимости от оставшегося времени скачки.

Т.е для маленькой фотографии, которую нужно качать ещё 2 секунды, sDC выставляет высшый приоритет.

Для большого фильма, только что начавшего качаться - низший. Но по мере скачивания он увеличивается, и когда остается несколько процентов - приоритет наивысший.

"Резервирование места на диске.."

..происходит, если включена опция "использовать атнифрагментационный метод".

Да, если используется мультисегментная скачка и начал качаться какой-то последний кусок файла, то соответственно резервирование тоже произойдёт.

 

 

Проблемы и поиск их решения

 

Проблемы со Скачкой и поиском!

 

Если не работает поиск и скачка

 

а) Ваш файерволл блокирует sDC++, настройте его или отключите если не умеете. (Встроенный в Windows, Касперский, Нортон и т.д)

б) При работе с роутером (маршрутизатором) Ваш роутер должен быть настроен на Port Forwarding (тыкнуть сюда)

Настройки роутеров - читайте выше.

в) Скачивает, но не ищет. Это возможно из-за того, что не прописан в настройках соединения ваш локальный IP в окошке "Внешний / WAN IP"

г) Крайний вариант, включить пассивный режим в "Настройки"\"Настройки соединения" и проверить в "Любимые Хабы"\"Свойства" персональные настройки каждого хаба.

 

..."Файл бьется при передаче", "Скаченный файл не совпадает с оригинальным TTH" ("Downloaded tree does not match TTH root")

 

а) Удалите файлы HashData.dat, Hashindex.xml(они повредились) в папке DC++\Settings\

это приведет к перехешированию вашей шары, но и избавит от проблемы.

Впредь, перед выключением компьютера, выключайте DC++ правильно.

б) Файервол/антивирус проверяя скачиваемые файлы, изменяет их. Попробуйте качать без файервола. (Особенно часто проблема бывает с Касперским и Нортоном)

в) проблема с сетью.

 

Папка для временных файлов недоступна или Невозможно открыть файл: Системе не удается найти указанный путь ...Could Not Open Tagert File:

 

Проверьте правильность указанного пути в "Настройках"\"Скачка"

 

 

Кстати такой( %[targetdrive]\temp\ ) вариант написания позволит создавать временную папку на том же диске на который качается сам файл

 

..Не скачивает файлы больше 4 ГБ! останавливается на 99% и пишет что нет места на диске, хотя оно там есть!

 

На вашем жестком диске используется файловая система FAT32, которая в принципе не поддерживает файлы более 4 гб (потому что старая и древняя). Вам нужно преобразовать жесткий диск или часть жесткого диска в файловую систему NTFS. (Программы Partition Magic могут это делать без стирания файлов)

 

...no slots avaible (Нет слотов)

 

Обратитесь к источнику и попросите дополнительный слот или ждите своей очереди на скачивание.

 

...File not avaible (Файл не доступен)

 

Возможно пользователь удалил файл, но он всё ещё виден в файл-листе. Обратитесь к нему и выясните вопрос.

 

Кол-во скачек максимально

"Настройки"\"Скачка" -> максимум одновременных скачек

 

DC-клиенты и Windows Vista

 

Поскольку в Windows Vista был введен механизм защиты файлов ( UAC ) в директориях 'Program Files', клиенты DC++ не могут изменить свой конфиг для корректной работы. Это вызывает зависание и глюки.

Особенно не нужно устанавливать DC++ в директорию 'Program Files', если Вы не можете воспользоваться правами администратора компьютера. В этом случае, перенесите клиента в другое место и всё будет ОК.

 

 

Если у Вас есть возможность воспользоваться правами администратора компьютера и Вы устанавили DC++ в директорию 'Program Files', то чтобы программа могла работать необходимо в свойствах программы поставить галочку чтобы программа выполнялась с правами администратора.

 

 

Уменьшилась скорость скачивания. (XP)

 

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

Дело в том, что Microsoft заложил ограничение в файле tcpip.sys до 10 полуоткрытых соединений, что отражается на скорости именно в сетях р2р (DC++, Torrent, eMule и т.п.).

 

Проверяется все очень просто. Заходим в "Администрирование" - "Просмотр событий" - "Система" ищем там ошибку 4226, если она там есть и когда их очень много, то нужно патчить файл tcpip.sys и выставлять значение от 50 до 500.

Патчить можно:

1. прогой xp-AntiSpy

(рекомендую именно ее, все на русском, легко изменить, легко откатить и дополнительно можно еще другие настройки windows поправить.)

Скачать: http://www.xp-antispy.org/index.php/lang-e...lang&iso=ru

2. Windows Half-open limit fix (patch)

Скачать: http://half-open.com/Half-open_limit_fix_2.5.zip

Сайт патча: http://half-open.com/home_ru.htm

 

Примечание:

Пропатчить Вы сможете только под учетной записью администратора.

Некоторые материалы взяты с degunino ©

Ссылка на комментарий
Поделиться на другие сайты
  • 3 weeks later...

Помогите ! все делал как написано в этой статье до пункта "если ДС не запустился проверьте все заново". Проверил кучу раз но ничего не получается . Все дело в том что у меня ДС выходт на хаб копрево и я вижу всех его участников но я немогу ничего скачать потаму что немогу открыть "СПИСОК фаилов" ни у одного из участинков !!! и поиск неработает соответственно !

Ссылка на комментарий
Поделиться на другие сайты
  • 2 months later...
  • 1 month later...
  • 4 months later...
  • 2 months later...

Вопросик такой: Можно настроить дс++ исключительно только для локальных адресов....Короче говоря разрешить доступ только 10.*.*.*

или в прописать это надо где то, типо браднмауера....подскажите плз.-)

Ссылка на комментарий
Поделиться на другие сайты
Вопросик такой: Можно настроить дс++ исключительно только для локальных адресов....Короче говоря разрешить доступ только 10.*.*.*

или в прописать это надо где то, типо браднмауера....подскажите плз.-)

Сложный вопрос. Не заморачивался такой проблемой.. Подумаю.

Ссылка на комментарий
Поделиться на другие сайты
  • 1 year later...

перестал подключаться к dc.koptevo.net

"запрос на подключение отвергнут"

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

 

Что бы это могло быть? Может меня как то "забанили" или еще что?

 

Ссылка на комментарий
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

Загрузка...