А в консольном окне rtorrent'а есть строчка про XMLRPC? Если нет, то проблема именно в этом.
Printable View
Доработал совместимость с разными браузерами, перевыложил архив. Если у кого и с предыдущей версией все хорошо, то перекачивать не надо.
Вообщем в нижней части рторрента пишет это:
Quote:
a
(19:38:35) Using 'select' based polling.
(19:38:35) XMLRPC initialized with 444 functions.
(19:38:35) The SCGI socket is bound to a specific network device yet may still pose a security risk, consider using 'scgi_local'.
Добавил графики скорости закачки/отдачи. Выглядит так: http://vif2ne.ru/nvk/stuff/novik/rtorrent/speed.jpg
На этом, видимо, все.
Перекачайте архив. Поправил.
Пожалуйста помогите.
При открытие страницы с http://ip:8008/rtorrent/ появляется надпись "Загрузка.." и тут же окошко сообщения:
"<head><title>501 Not Implemenented</title></head>
<body><H1>501 Not Implemenented</H1>
The requested method is not recognized by this server.
</body>"
Предполагаю, что ошибка связана с wl500gp c нуля до torrent (transmission) (тут все работает), потому что в lighttpd.conf прописан порт 8081, но по нему везде: "Попытка соединения не удалась", при использование порта 8008 (по нему доступ к transmission) можно увидеть " lighttpd server is running." и вот ошибку выше.
1. Как понять, что работает lighttpd (лог? команда?)
2. Нужно ли было вносить изменения для порта 8081 в фаервол роутера?
или хотя бы где я мог слажать?
Честно говоря, слабо понимаю, что у Вас происходит. Зачем Вам два разных torrent клиента одновременно - transmission и rtorrent?
Давайте по шагам. В lighttpd.conf прописан порт 8081. Этот файл действительно используется веб-сервером для конфигурации? Посмотрите опции запуска в /opt/etc/init.d/S80lighttpd. Если таки да, то именно на 8081 порт и нужно стучаться.
Нужно ли вносить изменения в iptable зависит от того, откуда Вы планируете на этот порт ходить. Если из внутренней сети - то не надо. Если извне - то нужно открыть порт. Но я бы рекомендовал сначала разобраться, а работает ли оно внутри.
Novik, скажите, а что должна делать кнопка "Пауза"?
У меня она что-то закачку не останавливает.
Вернее, не всегда, почему-то, останавливает.
В консоли появляется "[Could not parse bencoded data]"
Мне два не нужно. Для transmission есть детальное описание от начала и до конца на одной станице для чайников, поэтому именно его предпочел установить только купив роутер. Но веб морда к rtorrent это фантастика, поэтому пытаюсь начать использовать ее.
тут вообще не упомянут порт ( в lighttpd.conf указан "server.port = 8081")
у меня получается 2 веб сервера (S80busybox_httpd. и S80lighttpd.), это не влияет?Code:#!/bin/sh
prefix="/opt"
PATH=${prefix}/bin:${prefix}/sbin:/sbin:/bin:/usr/sbin:/usr/bin
NAME=lighttpd
DAEMON=${prefix}/sbin/${NAME}
DAEMON_OPTS="-f ${prefix}/etc/lighttpd/lighttpd.conf"
test -x $DAEMON || exit 0
if [ -z "$1" ] ; then
case `echo "$0" | sed 's:^.*/\(.*\):\1:g'` in
S??*) rc="start" ;;
K??*) rc="stop" ;;
*) rc="usage" ;;
esac
else
rc="$1"
fi
case "$rc" in
start)
echo "Starting web server: $NAME"
$DAEMON $DAEMON_OPTS
;;
stop)
if [ -n "`pidof $NAME`" ]; then
echo "Stopping web server: $NAME"
killall $NAME 2> /dev/null
fi
;;
restart)
"$0" stop
sleep 1
"$0" start
;;
*)
echo "Usage: $0 (start|stop|restart|usage)"
;;
esac
exit 0
Это эмуляция соотв. команды uTorrent - в rTorrent нет очередей, поэтому, строго говоря, команды "Пауза" там быть не может. В данной реализации она отличается от "Стоп" только одним - файлы данных не закрываются. Вообщем, это полный аналог Ctrl-S в консоли rTorrent.
Это значит, что трекеру чего то не понравилось в Вашей закачке. Т.к. диагностика трекера идет не в UTF-8, то rTorrent не может сказать - что.
Что до отработки команд, то смотрите не на иконку, а на поле статуса. Т.е. иконка может быть, например, красной (признак ошибки), а в статусе написано "Пауза" - это означает, что закачка запаузена, но трекеру, тем не менее, она чем-то не нравится. Например, превышен лимит соединений и т.п. К слову, красный значок у стартовавшей закачки вовсе не означает, что она не будет скачиваться/раздаваться.
Да нет, у меня их тоже два.Quote:
у меня получается 2 веб сервера (S80busybox_httpd. и S80lighttpd.), это не влияет?
Я имел ввиду, что S80lighttpd, строго говоря, может использовать вовсе не тот файл конфигурации, который Вы смотрите. Вообщем, нормально там все, /opt/etc/lighttpd/lighttpd.conf используется.Quote:
тут вообще не упомянут порт
Вообщем, пока пойду читать про transmission - надо же понять, чего оно там с веб сервером делает...
Теперь понятно, спасибо.
Смутило как раз несоответствие иконки со статусом :)
Novik,
1. вот здесь описывают установку lighttpd, они еще устанавливают php-fcgi и php, а вот здесьтолько php-fcgi. Я не ставил ни того, ни другого.
2. А может вебсервер не стартует просто "/opt/etc/init.d/S80lighttpd start "?, для трансмиссион писал в /usr/local/sbin/post-mount: "/opt/etc/init.d/S80busybox_httpd start"
3. А вот здесь еще создают файл "/opt/etc/init.d/S45php" :
Пожалуйста подскажите, что из перечисленного обязательно к выполнению? Без единой инструкции от начала и до конца чайникам тяжело, везде все по-разному описано.Code:#!/bin/sh
export PHP_FCGI_CHILDREN=1
PORT=1026
BIN=/opt/bin/php-fcgi
#/opt/etc/php.d
case $1 in
start)
$BIN -b $PORT &
;;
stop)
kill Pidof phpM ;;
*)
echo "usage: $0 (start|stop)"
exit 1
esac
Нужно и то, и другое.
Можно и так. Но по уму нужно писать скрипт, который запускает (и остановливает) все сервисы разом.
Это Вам не нужно.
Вообщем, как я понял, лекцию нужно начинать издалека. Сразу говорю, что
1) все ниженаписанное на форуме уже было, это не мой креатив.
2) я могу пользоваться неверной терминологией и вообще в чем-то ошибаться. Т.к. гуру в линуксе не являюсь.
Для начала немного о файлах запуска системы для данной прошивки.
Лежат они в директории /usr/tmp/local/sbin и бывают такими:
pre-boot - запускается сразу перед загрузкой. Один раз. На этот момент еще много чего нет, но это хорошее место для установки всяких переменных и загрузки модулей.
У меня выглядит так:
Выставляем таймзону.Code:
#!/bin/sh
tz="MSK-3MSD,M3.5.0,M10.5.0/3"
nvram set time_zone="$tz"
echo "$tz" > /etc/TZ
post-boot - запускается сразу после загрузки. Один раз.
Выглядит так:
Запускает ssh демон на нестандартном порту 51800. (Разумеется, порт у меня другой, здесь набрал от балды).Code:
#!/bin/sh
/usr/bin/logger "*** post-boot : started"
dropbear -p 51800 >/dev/null 2>&1
/usr/bin/logger "*** post-boot : finished"
pre-mount - запускается перед монтированием разделов.
Выглядит так:
Включает своп, и бегает по /proc/mounts с целью произвести проверку на монтируемых файловых системах. Замечу, чтобы сие работало номально, монтировать разделы нужно не явной командой mount, а через файл /etc/fstab. Последний у меня выглядит таким образом:Code:#!/bin/sh
swapon -a
for i in `/usr/bin/awk '/ext3/{print($1)}' /etc/fstab`
do
/bin/grep -q $i /proc/mounts || /sbin/e2fsck -p $i 2>&1 | /usr/bin/logger -t e2fsck
done
Т.е. первая партиция диска монтируется как своп, вторая - как ext3 на /mnt. Кроме того, в /opt монтируется директория /mnt/opt для корректной работы ipkg и прочего.Code:#device Mountpoint FStype Options Dump Pass#
/dev/discs/disc0/part1 none swap sw 0 0
/dev/discs/disc0/part2 /mnt ext3 rw,noatime 1 1
/mnt/opt /opt none bind,rw,noatime 1 1
post-mount - запускается после монтирования разделов
Выглядит так:
Первая и последняя строчки - вывод отладочных сообщений в лог.Code:
#!/bin/sh
/usr/bin/logger "*** post-mount : started"
/opt/etc/init.d/rc.unslung start
/usr/bin/logger "*** post-mount : finished"
Файл же /opt/etc/init.d/rc.unslung содержит следующее:
Т.е. он перебирает все файлы вида /opt/etc/init.d/S??* и запускает каждый из них с переданным ему параметром.Code:
#!/bin/sh
# Start/stop all init scripts in /opt/etc/init.d
# starting them in numerical order and
# stopping them in reverse numerical order
#
if [ $# -ne 1 ]; then
printf "Usage: $0 {start|stop}\n" >&2
exit 1
fi
daemons=`echo $(/usr/bin/dirname $0)/S??*`
[ $1 = "stop" ] && daemons=`echo $daemons | /usr/bin/tr " " "\n" | /usr/bin/sort -r`
for i in $daemons; do
# Ignore dangling symlinks (if any).
[ ! -f "$i" ] && continue
case "$i" in
*.sh)
# Source shell script for speed.
(
trap - INT QUIT TSTP
set $1
. $i
)
;;
*)
# No sh extension, so fork subprocess.
$i $1
;;
esac
done
Т.е. строчка
/opt/etc/init.d/rc.unslung start
означает - запустить все службы. Замечу, что для корректной работы файлы S??* должны быть оформлены таким образом, чтобы они корректно понимали параметр start (и, желательно stop). Это, как правило, всегда так, но бывают и досадные исключения.
Соответственно, стопорятся службы в файле
pre-shutdown, который запускается перед шатдауном системы.
Последовательно останавливаем службы, перемонтируем все разделы диска в readonly и отключаем своп. Дабы не случалось неприятностей с битьем файлов на диске.Code:#!/bin/sh
/usr/bin/logger "*** pre-shutdown : started"
/opt/etc/init.d/rc.unslung stop
for i in `awk '/ext3/{print($1)}' /proc/mounts`
do
mount -o remount,ro $i
done
swapoff -a
sleep 5s
/usr/bin/logger "*** pre-shutdown : finished"
Остался
post-firewall - запускается после внесения изменений в таблицы firewall. Может запускаться несколько раз.
Это хорошее место для добавлений правил к файрволу, например, для открытия портов. Может выглядеть так:
Открываем три порта. Для ssh - 51800, для rtorrent - 51801 и для http - 8081. Последнее делать так сходу не советую, по уму наружу только https высовывать можно. Да и отладиться можно без этого, из внутренней сети.Code:#!/bin/sh
iptables -I INPUT -p tcp --dport 51800:51801 -j ACCEPT
iptables -I INPUT -p tcp --dport 8081 -j ACCEPT
Всякие замечания по поводу редактирования этих файлов.
1) Они находятся отнюдь не на жестком диске, посему, чтобы не пропали после перезагрузки, после редактирования необходимо а) выдать команду flashfs save && flashfs commit && flashfs enable б) если файл лежит в /etc, то его нужно внести в файл /usr/tmp/local/.files. У меня его содержимое таково:
2) Файлы post- и pre- (и все прочие выполняемые скрипты) должны иметь атрибут "выполняемый" (т.е. если Вы их создали - нужно не забыть после выдать соотв. команду, в данном случае - chmod a+x /usr/tmp/local/sbin/*)Code:/etc/smb.conf
/etc/passwd
/etc/group
/etc/smbpasswd
/etc/profile
/etc/fstab
/etc/ld.so.conf
3) Файлы post- и pre- должны начинаться со строки #!/bin/sh
Это подсказывает системе, какой интерпретатор нужно запустить при их выполнении.
4) Файлы post- и pre- (и все прочие выполняемые скрипты) должны редактироваться средствами linux. Дабы строки отделялись друг от друга символом \n, а не парой \r\n как в dos/windows. Иначе система не найдет строку #!/bin/sh и ничего про интерпретатор не узнает.