Обзор источников, программного обеспечения и концепция системы.
Торрент-клиентом у нас будет выступать rtorrent
Обычно когда говорят об удаленном управлении rtorrent, речь идет о связке:
на_удаленной_машине:{rtorrent+web-сервер+PHP}<-->на_локальной_машине:{веб-браузер}
Мы откажемся от использования web-сервера и PHP, а на клиентской машине вместо веб-браузера поставим специализированную программу nTorrent.
Также будут установлены программы:
- сетевые утилиты: ping, whois, traceroute, ifconfig, iptables, etc
- демоны: inetd, telnetd, sshd, vsftpd
- программы: консольный веб-браузер lynx, торрент-клиент rTorrent, wget
Компьютер будет оснащен двумя сетевыми интерфейсами, один из которых будет подключен к интернет, а другой к локальной сети и будет выполнять роль шлюза и файрвола для локальной сети.
В качестве тестового компьютера мне служит:
Celeron 850 (Pentium III based)
M/B: CT-6BJM (i440BX chipset based)
RAM: 192Mb
Ethernet: rt8139 2шт.
Основным материалом для построения системы послужила статья:
Установка rTorrent в Slackware.
Для настройки ftp-сервера неоценимую помощь оказал материал:
Установка и настройка vsftpd
При составлении ~/.rtorrent.rc помог перевод официального HOWTO в википедии:
http://ru.wikibooks.org/wiki/RTorrent
Установка необходимого программного обеспечения.
Предполагаем что мы успешно собрали базовую систему, имеем рутовые права, находимся в директории /tmp/livecd и наш rootfs.cgz распакован.
Формируем список пакетов для закачки:
cat > /tmp/livecd/pklist << EOF
ftp://ftp.chg.ru/pub/Linux/Slackware/slackware-13.0/slackware/n/inetd-1.79s-i486-8.txz
ftp://ftp.chg.ru/pub/Linux/Slackware/slackware-13.0/slackware/n/iptables-1.4.3.2-i486-1.txz
ftp://ftp.chg.ru/pub/Linux/Slackware/slackware-13.0/slackware/n/iputils-s20070202-i486-2.txz
ftp://ftp.chg.ru/pub/Linux/Slackware/slackware-13.0/slackware/n/lynx-2.8.6rel.5-i486-1.txz
ftp://ftp.chg.ru/pub/Linux/Slackware/slackware-13.0/slackware/n/net-tools-1.60-i486-2.txz
ftp://ftp.chg.ru/pub/Linux/Slackware/slackware-13.0/slackware/n/network-scripts-13.0-noarch-2.txz
ftp://ftp.chg.ru/pub/Linux/Slackware/slackware-13.0/slackware/n/openssh-5.2p1-i486-1.txz
ftp://ftp.chg.ru/pub/Linux/Slackware/slackware-13.0/slackware/n/tcp_wrappers-7.6-i486-1.txz
ftp://ftp.chg.ru/pub/Linux/Slackware/slackware-13.0/slackware/n/telnet-0.17-i486-1.txz
ftp://ftp.chg.ru/pub/Linux/Slackware/slackware-13.0/slackware/n/traceroute-1.4a12-i386-2.txz
ftp://ftp.chg.ru/pub/Linux/Slackware/slackware-13.0/slackware/n/vsftpd-2.1.2-i486-1.txz
ftp://ftp.chg.ru/pub/Linux/Slackware/slackware-13.0/slackware/n/wget-1.11.4-i486-1.txz
ftp://ftp.chg.ru/pub/Linux/Slackware/slackware-13.0/slackware/n/whois-4.7.26-i486-1.txz
ftp://ftp.chg.ru/pub/Linux/Slackware/slackware-13.0/slackware/n/cyrus-sasl-2.1.23-i486-1.txz
ftp://ftp.chg.ru/pub/Linux/Slackware/slackware-13.0/slackware/ap/screen-4.0.3-i486-1.txz
ftp://ftp.chg.ru/pub/Linux/Slackware/slackware-13.0/slackware/a/utempter-1.1.4-i486-1.txz
Для выхода из режима редактирования нажмите Ctrl+D или напечатайте EOF и нажмите Enterftp://ftp.chg.ru/pub/Linux/Slackware/slackware-13.0/slackware/n/inetd-1.79s-i486-8.txz
ftp://ftp.chg.ru/pub/Linux/Slackware/slackware-13.0/slackware/n/iptables-1.4.3.2-i486-1.txz
ftp://ftp.chg.ru/pub/Linux/Slackware/slackware-13.0/slackware/n/iputils-s20070202-i486-2.txz
ftp://ftp.chg.ru/pub/Linux/Slackware/slackware-13.0/slackware/n/lynx-2.8.6rel.5-i486-1.txz
ftp://ftp.chg.ru/pub/Linux/Slackware/slackware-13.0/slackware/n/net-tools-1.60-i486-2.txz
ftp://ftp.chg.ru/pub/Linux/Slackware/slackware-13.0/slackware/n/network-scripts-13.0-noarch-2.txz
ftp://ftp.chg.ru/pub/Linux/Slackware/slackware-13.0/slackware/n/openssh-5.2p1-i486-1.txz
ftp://ftp.chg.ru/pub/Linux/Slackware/slackware-13.0/slackware/n/tcp_wrappers-7.6-i486-1.txz
ftp://ftp.chg.ru/pub/Linux/Slackware/slackware-13.0/slackware/n/telnet-0.17-i486-1.txz
ftp://ftp.chg.ru/pub/Linux/Slackware/slackware-13.0/slackware/n/traceroute-1.4a12-i386-2.txz
ftp://ftp.chg.ru/pub/Linux/Slackware/slackware-13.0/slackware/n/vsftpd-2.1.2-i486-1.txz
ftp://ftp.chg.ru/pub/Linux/Slackware/slackware-13.0/slackware/n/wget-1.11.4-i486-1.txz
ftp://ftp.chg.ru/pub/Linux/Slackware/slackware-13.0/slackware/n/whois-4.7.26-i486-1.txz
ftp://ftp.chg.ru/pub/Linux/Slackware/slackware-13.0/slackware/n/cyrus-sasl-2.1.23-i486-1.txz
ftp://ftp.chg.ru/pub/Linux/Slackware/slackware-13.0/slackware/ap/screen-4.0.3-i486-1.txz
ftp://ftp.chg.ru/pub/Linux/Slackware/slackware-13.0/slackware/a/utempter-1.1.4-i486-1.txz
выкачиваем их:
wget -i /tmp/livecd/pklist
Устанавливаем:
installpkg -root /tmp/livecd/1 /tmp/livecd/*.txz
rm /tmp/livecd/*txz
Кроме этого, понадобятся дополнительные пакеты:rm /tmp/livecd/*txz
libsigc++
wget http://slackbuilds.org/slackbuilds/13.0/libraries/libsigc++.tar.gz
tar xvfz libsigc++.tar.gz
cd /tmp/livecd/libsigc++
wget http://ftp.gnome.org/pub/GNOME/sources/libsigc++/2.2/libsigc++-2.2.3.tar.bz2
sh ./libsigc++.SlackBuild && installpkg -root /tmp/livecd/1 /tmp/libsigc++-2.2.3-i486-1_SBo.tgz
cd -
rm -r /tmp/livecd/libsigc++
rm /tmp/livecd/libsigc++.tar.gz
rm /tmp/libsigc++-2.2.3-i486-1_SBo.tgz
tar xvfz libsigc++.tar.gz
cd /tmp/livecd/libsigc++
wget http://ftp.gnome.org/pub/GNOME/sources/libsigc++/2.2/libsigc++-2.2.3.tar.bz2
sh ./libsigc++.SlackBuild && installpkg -root /tmp/livecd/1 /tmp/libsigc++-2.2.3-i486-1_SBo.tgz
cd -
rm -r /tmp/livecd/libsigc++
rm /tmp/livecd/libsigc++.tar.gz
rm /tmp/libsigc++-2.2.3-i486-1_SBo.tgz
libtorrent
wget http://slackbuilds.org/slackbuilds/13.0/libraries/libtorrent.tar.gz
tar xvfz /tmp/livecd/libtorrent.tar.gz
cd /tmp/livecd/libtorrent
wget http://libtorrent.rakshasa.no/downloads/libtorrent-0.12.5.tar.gz
sh ./libtorrent.SlackBuild && installpkg -root /tmp/livecd/1 /tmp/libtorrent-0.12.5-i486-2_SBo.tgz
cd -
rm -r /tmp/livecd/libtorrent
rm /tmp/livecd/libtorrent.tar.gz
rm /tmp/libtorrent-0.12.5-i486-2_SBo.tgz
tar xvfz /tmp/livecd/libtorrent.tar.gz
cd /tmp/livecd/libtorrent
wget http://libtorrent.rakshasa.no/downloads/libtorrent-0.12.5.tar.gz
sh ./libtorrent.SlackBuild && installpkg -root /tmp/livecd/1 /tmp/libtorrent-0.12.5-i486-2_SBo.tgz
cd -
rm -r /tmp/livecd/libtorrent
rm /tmp/livecd/libtorrent.tar.gz
rm /tmp/libtorrent-0.12.5-i486-2_SBo.tgz
xmlrpc-c
mkdir /tmp/livecd/xmlrpc-c
cd /tmp/livecd/xmlrpc-c
svn checkout https://xmlrpc-c.svn.sourceforge.net/svnroot/xmlrpc-c/advanced xmlrpc-c
cd ./xmlrpc-c
sh ./configure --prefix=/usr
make
mkdir /tmp/xmlrpc-c
make install DESTDIR=/tmp/xmlrpc-c
cd /tmp/xmlrpc-c
find . | xargs file | grep -e "executable" -e "shared object" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null || true
/sbin/makepkg -l y -c n /tmp/xmlrpc-c_svn_my.tgz
cd /tmp/livecd
installpkg -root /tmp/livecd/1 /tmp/xmlrpc-c_svn_my.tgz
rm -r /tmp/xmlrpc-c
rm /tmp/xmlrpc-c_svn_my.tgz
rm -r /tmp/livecd/xmlrpc-c
cd /tmp/livecd/xmlrpc-c
svn checkout https://xmlrpc-c.svn.sourceforge.net/svnroot/xmlrpc-c/advanced xmlrpc-c
cd ./xmlrpc-c
sh ./configure --prefix=/usr
make
mkdir /tmp/xmlrpc-c
make install DESTDIR=/tmp/xmlrpc-c
cd /tmp/xmlrpc-c
find . | xargs file | grep -e "executable" -e "shared object" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null || true
/sbin/makepkg -l y -c n /tmp/xmlrpc-c_svn_my.tgz
cd /tmp/livecd
installpkg -root /tmp/livecd/1 /tmp/xmlrpc-c_svn_my.tgz
rm -r /tmp/xmlrpc-c
rm /tmp/xmlrpc-c_svn_my.tgz
rm -r /tmp/livecd/xmlrpc-c
rtorrent
wget http://slackbuilds.org/slackbuilds/13.0/network/rtorrent.tar.gz
tar xvfz ./rtorrent.tar.gz
cd /tmp/livecd/rtorrent
wget http://libtorrent.rakshasa.no/downloads/rtorrent-0.8.5.tar.gz
sed -i "/--mandir=/ a --with-xmlrpc-c" ./rtorrent.SlackBuild
sed -i 's/--with-xmlrpc-c/ --with-xmlrpc-c \\/' ./rtorrent.SlackBuild
sh ./rtorrent.SlackBuild && installpkg -root /tmp/livecd/1 /tmp/rtorrent-0.8.5-i486-2_SBo.tgz
cd -
rm /tmp/rtorrent-0.8.5-i486-2_SBo.tgz
rm /tmp/livecd/rtorrent.tar.gz
rm -r /tmp/livecd/rtorrent
rm /tmp/livecd/pklist
tar xvfz ./rtorrent.tar.gz
cd /tmp/livecd/rtorrent
wget http://libtorrent.rakshasa.no/downloads/rtorrent-0.8.5.tar.gz
sed -i "/--mandir=/ a --with-xmlrpc-c" ./rtorrent.SlackBuild
sed -i 's/--with-xmlrpc-c/ --with-xmlrpc-c \\/' ./rtorrent.SlackBuild
sh ./rtorrent.SlackBuild && installpkg -root /tmp/livecd/1 /tmp/rtorrent-0.8.5-i486-2_SBo.tgz
cd -
rm /tmp/rtorrent-0.8.5-i486-2_SBo.tgz
rm /tmp/livecd/rtorrent.tar.gz
rm -r /tmp/livecd/rtorrent
rm /tmp/livecd/pklist
С инсталяцией закончили.
Настройка.
Конфигурация сети.
На машине два ethernet интерфейса. Первый подключен к одно-портовому ADSL-роутеру с ip=192.168.1.1. С него идет интернет. Второй интерфейс смотрит в локальную сеть. Локальной сети необходим форвардинг до модема, файрвол тоже не будет лишним.
Поднимаем наши интерфейсы и назначаем шлюз:
rm -f /tmp/livecd/1/etc/rc.d/rc.inet1
rm -f /tmp/livecd/1/etc/rc.d/rc.inet1.conf
cat > /tmp/livecd/1/etc/rc.d/rc.inet1 << EOF
#!/usr/bin/bash
/sbin/ifconfig lo 127.0.0.1
/sbin/ifconfig eth0 192.168.1.2
/sbin/ifconfig eth1 10.0.35.1
/sbin/route add -net 127.0.0.0/8 lo
/sbin/route add default gw 192.168.1.1
rm -f /tmp/livecd/1/etc/rc.d/rc.inet1.conf
cat > /tmp/livecd/1/etc/rc.d/rc.inet1 << EOF
#!/usr/bin/bash
/sbin/ifconfig lo 127.0.0.1
/sbin/ifconfig eth0 192.168.1.2
/sbin/ifconfig eth1 10.0.35.1
/sbin/route add -net 127.0.0.0/8 lo
/sbin/route add default gw 192.168.1.1
Ставим резолв:
echo "nameserver 192.168.1.1" > /tmp/livecd/1/etc/resolv.conf
Разрешаем форвардинг
chmod +x /tmp/livecd/1/etc/rc.d/rc.ip_forward
Пишем правила для файрвола:
cat > /tmp/livecd/1/etc/rc.d/rc.firewall << EOF
#!/usr/bin/bash
/usr/sbin/iptables -A POSTROUTING -o eth0 -t nat -j MASQUERADE
/usr/sbin/iptables -A INPUT -i eth0 -p icmp -j DROP
/usr/sbin/iptables -A INPUT -i eth0 -p tcp --dport 6900 -j ACCEPT
/usr/sbin/iptables -A INPUT -i eth0 -p tcp -m tcp --tcp-flags FIN,SYN,ACK SYN -j REJECT --reject-with icmp-port-unreachable
У нас маленькая частная локальна сеть. Поэтому при любом запросе притворяемся кирпичом не имеющим подключения к интернет.#!/usr/bin/bash
/usr/sbin/iptables -A POSTROUTING -o eth0 -t nat -j MASQUERADE
/usr/sbin/iptables -A INPUT -i eth0 -p icmp -j DROP
/usr/sbin/iptables -A INPUT -i eth0 -p tcp --dport 6900 -j ACCEPT
/usr/sbin/iptables -A INPUT -i eth0 -p tcp -m tcp --tcp-flags FIN,SYN,ACK SYN -j REJECT --reject-with icmp-port-unreachable
Права на выполнение:
chmod +x /tmp/livecd/1/etc/rc.d/rc.firewall
Устанавливаем имя хоста:
echo "dark.warrior.net" > /tmp/livecd/1/etc/HOSTNAME
Итак, сеть мы подняли, приступаем к настройке демонов.
Нам нужен ftp-сервер. По правде говоря, у нас он уже есть - это sftp входящий в состав sshd. Но. ftp нам нужен в защищенном участке сети, а sftp шифрует весь трафик сводя и так невысокую скорость 100Mbit на нет. Также из-за возможных траблов с ключами мы поставили telnetd в систему, хотя пользоваться им не собираемся. Пусть будет.
Существует два основных ftp-демона: vsftpd и proftpd. Мы будем пользоваться первым.
Раскомментируем нужную строку в inetd.conf
sed -i 's/#ftp stream tcp nowait root \/usr\/sbin\/tcpd vsftpd/ftp stream tcp nowait root \/usr\/sbin\/tcpd vsftpd/' /tmp/livecd/1/etc/inetd.conf
Правим конфиг.
Запрещаем доступ анонимусам на наш сервер:
sed -i "s/anonymous_enable=YES/anonymous_enable=NO/" /tmp/livecd/1/etc/vsftpd.conf
Разрешаем локальным пользователям заходить на сервер:
sed -i "s/^#local_enable=YES/local_enable=YES/" /tmp/livecd/1/etc/vsftpd.conf
Даем им право на запись:
sed -i "s/^#write_enable=YES/write_enable=YES/" /tmp/livecd/1/etc/vsftpd.conf
Теперь внешний носитель. Давайте договоримся, что наш диск будет с etx3 файловой системой и носить метку раздела "rtorrent". При старте система будет узнавать его и монтировать в /mnt/hd:
echo "LABEL=rtorrent /mnt/hd auto defaults 0 0" >> /tmp/livecd/1/etc/fstab
На случай если мы все же в будущем добавим поддержку других файловых систем, тип ФС выставляем auto вместо ext3У меня есть манера использовать флешку в качестве диска, а подключать мне ее приходится в usb1.1 порт, который не отличается быстродействием. Поэтому мне необходимо установить дополнительную задержку 10 секунд, что бы ядро успело ее распознать:
sed -i "/Check all the non-root filesystems/ a sleep 10" /tmp/livecd/1/etc/rc.d/rc.S
У меня динамический внешний IP. Возможно, мне захочется удаленно зайти на сервер, что при постоянно меняющимся ip не очень удобно. Для решения этой проблемы существуют сервисы типа www.dyndns.com, которые предоставляют постоянный адрес в сети таким машинам. Необходимо зарегистрироваться и выбрать себе подходящее доменное имя. Итак у меня имеется: login, password, domain name. Осталось поставить программу-клиент. Делаем:
wget http://cdn.dyndns.com/inadyn.zip
unzip /tmp/livecd/inadyn.zip
cd /tmp/livecd/inadyn
make CFLAGS="-O2 -march=i486 -mtune=i686"
cp -v ./bin/linux/inadyn /tmp/livecd/1/sbin/
cd -
rm -r /tmp/livecd/inadyn
echo '#/sbin/inadyn --username логин --password пароль --update_period 60000 --alias ваш_домен &' >> /tmp/livecd/1/etc/rc.d/rc.local
Если я решу воспользоваться сервисом, то просто раскомментирую строку в rc.localunzip /tmp/livecd/inadyn.zip
cd /tmp/livecd/inadyn
make CFLAGS="-O2 -march=i486 -mtune=i686"
cp -v ./bin/linux/inadyn /tmp/livecd/1/sbin/
cd -
rm -r /tmp/livecd/inadyn
echo '#/sbin/inadyn --username логин --password пароль --update_period 60000 --alias ваш_домен &' >> /tmp/livecd/1/etc/rc.d/rc.local
Закончив с настройкой системы, приступаем к настройке пользовательских программ.
Конфиг rtorrent
touch /tmp/livecd/1/home/flanker/.rtorrent.rc
chown --reference=/tmp/livecd/1/home/flanker /tmp/livecd/1/home/flanker/.rtorrent.rc
cat >> /tmp/livecd/1/home/flanker/.rtorrent.rc << EOF
min_peers = 1
max_peers = 20
download_rate = 0
upload_rate = 0
directory = /mnt/hd
session = /mnt/hd/session
schedule = watch_directory,5,5,load_start=/home/flanker/*.torrent
schedule = low_diskspace,5,300,close_low_diskspace=0M
port_range = 6900-6900
port_random = no
check_hash = yes
use_udp_trackers = yes
session_save = yes
dht = auto
scgi_port = 127.0.0.1:5000
encoding_list = UTF-8
Здесь нужно пояснить. Конфиг не отличается от приведенного в викиучебнике кроме одной маленькой строчки:chown --reference=/tmp/livecd/1/home/flanker /tmp/livecd/1/home/flanker/.rtorrent.rc
cat >> /tmp/livecd/1/home/flanker/.rtorrent.rc << EOF
min_peers = 1
max_peers = 20
download_rate = 0
upload_rate = 0
directory = /mnt/hd
session = /mnt/hd/session
schedule = watch_directory,5,5,load_start=/home/flanker/*.torrent
schedule = low_diskspace,5,300,close_low_diskspace=0M
port_range = 6900-6900
port_random = no
check_hash = yes
use_udp_trackers = yes
session_save = yes
dht = auto
scgi_port = 127.0.0.1:5000
encoding_list = UTF-8
schedule = low_diskspace,5,300,close_low_diskspace=0M
в rtorrent нет способа выбрать файл из раздачи, вместо этого открывается вся раздача и уже после этого отключают закачку ненужных файлов. Что же делать если размер полной раздачи превышает размер носителя? Ничего страшного. Создавая файлы входящие в раздачу, rtorrent создает "разряженные" (анг. sparse) файлы, т.е. их логический размер превышает физический. если выполнить ls -l имя_файла то покажет одно, а если du имя_файла, то покажет другое. Все дело в том, что rtorrent при определении свободного пространства берет именно логический размер, кроме того он отключает закачку при оставшимся размере, если не ошибаюсь, 500Мб. Если мы используем флешку как носитель размер которой ограничен, то нам проще отключить подобное поведение.
Теперь Lynx, который при первом старте по-русски конечно не бум-бум
touch /tmp/livecd/1/home/flanker/.lynxrc
chown --reference=/tmp/livecd/1/home/flanker /tmp/livecd/1/home/flanker/.lynxrc
cat >> /tmp/livecd/1/home/flanker/.lynxrc << EOF
accept_all_cookies=off
anonftp_password=
bookmark_file=lynx_bookmarks.html
case_sensitive_searching=off
character_set=UNICODE (UTF-8)
cookie_accept_domains=
cookie_file=
cookie_loose_invalid_domains=
cookie_query_invalid_domains=
cookie_reject_domains=
cookie_strict_invalid_domains=
dir_list_order=ORDER_BY_NAME
dir_list_style=MIXED_STYLE
emacs_keys=off
file_editor=
file_sorting_method=BY_FILENAME
keypad_mode=LINKS_ARE_NOT_NUMBERED
lineedit_mode=Default Binding
multi_bookmarkB=
multi_bookmarkC=
multi_bookmarkD=
multi_bookmarkE=
multi_bookmarkF=
multi_bookmarkG=
multi_bookmarkH=
multi_bookmarkI=
multi_bookmarkJ=
multi_bookmarkK=
multi_bookmarkL=
multi_bookmarkM=
multi_bookmarkN=
multi_bookmarkO=
multi_bookmarkP=
multi_bookmarkQ=
multi_bookmarkR=
multi_bookmarkS=
multi_bookmarkT=
multi_bookmarkU=
multi_bookmarkV=
multi_bookmarkW=
multi_bookmarkX=
multi_bookmarkY=
multi_bookmarkZ=
personal_mail_address=
preferred_charset=
preferred_language=ru
run_all_execution_links=off
run_execution_links_on_local_files=off
select_popups=on
show_color=default
show_cursor=off
show_dotfiles=off
sub_bookmarks=OFF
user_mode=NOVICE
verbose_images=on
vi_keys=off
visited_links=LAST_REVERSED
chown --reference=/tmp/livecd/1/home/flanker /tmp/livecd/1/home/flanker/.lynxrc
cat >> /tmp/livecd/1/home/flanker/.lynxrc << EOF
accept_all_cookies=off
anonftp_password=
bookmark_file=lynx_bookmarks.html
case_sensitive_searching=off
character_set=UNICODE (UTF-8)
cookie_accept_domains=
cookie_file=
cookie_loose_invalid_domains=
cookie_query_invalid_domains=
cookie_reject_domains=
cookie_strict_invalid_domains=
dir_list_order=ORDER_BY_NAME
dir_list_style=MIXED_STYLE
emacs_keys=off
file_editor=
file_sorting_method=BY_FILENAME
keypad_mode=LINKS_ARE_NOT_NUMBERED
lineedit_mode=Default Binding
multi_bookmarkB=
multi_bookmarkC=
multi_bookmarkD=
multi_bookmarkE=
multi_bookmarkF=
multi_bookmarkG=
multi_bookmarkH=
multi_bookmarkI=
multi_bookmarkJ=
multi_bookmarkK=
multi_bookmarkL=
multi_bookmarkM=
multi_bookmarkN=
multi_bookmarkO=
multi_bookmarkP=
multi_bookmarkQ=
multi_bookmarkR=
multi_bookmarkS=
multi_bookmarkT=
multi_bookmarkU=
multi_bookmarkV=
multi_bookmarkW=
multi_bookmarkX=
multi_bookmarkY=
multi_bookmarkZ=
personal_mail_address=
preferred_charset=
preferred_language=ru
run_all_execution_links=off
run_execution_links_on_local_files=off
select_popups=on
show_color=default
show_cursor=off
show_dotfiles=off
sub_bookmarks=OFF
user_mode=NOVICE
verbose_images=on
vi_keys=off
visited_links=LAST_REVERSED
Автостарт. При старте, система нас выкидывает на первую консоль под пользователем. Нам нужно обеспечить автостарт пользовательских программ, в частности торрент-клиента:
echo '#!/usr/bin/bash' > /tmp/livecd/1/home/flanker/.bash_profile
echo 'PATH=/sbin:/usr/sbin:$PATH' >> /tmp/livecd/1/home/flanker/.bash_profile
echo 'if [ -z "$DISPLAY" ] && [ $(tty) == /dev/tty1 ]; then' >> /tmp/livecd/1/home/flanker/.bash_profile
echo ' [ ! -d /mnt/hd/session ] && mkdir /mnt/hd/session' >> /tmp/livecd/1/home/flanker/.bash_profile
echo ' [ -e /mnt/hd/session/rtorrent.lock ] && rm -f /mnt/hd/session/rtorrent.lock' >> /tmp/livecd/1/home/flanker/.bash_profile
echo ' screen -d -m rtorrent' >> /tmp/livecd/1/home/flanker/.bash_profile
echo 'fi' >> /tmp/livecd/1/home/flanker/.bash_profile
chown --reference=/tmp/livecd/1/home/flanker /tmp/livecd/1/home/flanker/.bash_profile
echo 'PATH=/sbin:/usr/sbin:$PATH' >> /tmp/livecd/1/home/flanker/.bash_profile
echo 'if [ -z "$DISPLAY" ] && [ $(tty) == /dev/tty1 ]; then' >> /tmp/livecd/1/home/flanker/.bash_profile
echo ' [ ! -d /mnt/hd/session ] && mkdir /mnt/hd/session' >> /tmp/livecd/1/home/flanker/.bash_profile
echo ' [ -e /mnt/hd/session/rtorrent.lock ] && rm -f /mnt/hd/session/rtorrent.lock' >> /tmp/livecd/1/home/flanker/.bash_profile
echo ' screen -d -m rtorrent' >> /tmp/livecd/1/home/flanker/.bash_profile
echo 'fi' >> /tmp/livecd/1/home/flanker/.bash_profile
chown --reference=/tmp/livecd/1/home/flanker /tmp/livecd/1/home/flanker/.bash_profile
Итак сервер мы настроили, осталось вставить болванку в /dev/cdrom и набрать:
sh ./cl
sh ./mk
sh ./mk
Настраиваем Desktop
машине в локальной сети задаем: статический IP 10.0.35.2
шлюз 10.0.35.1
далее идем на домашнюю страницу nTorrent, выкачиваем nTorrent-bin-0.5.1.tar.bz2, распаковываем, даем права на выполнение скрипту nTorrent.sh, запускаем в окошке Connect указываем:
SSH
host 10.0.35.1
port 22
Socket port 5000
username flanker
password ваш_пароль
Remember password да
Connect on startup да
Proxy DIRECT
далее, cохраняем профиль как nas
выбираем его, жмем Connect, подключаемся и пользуемся.
UPD 11.04.10 добавлен комментарий к конфигу rtorrent.rc, добавлен strip к сборке xmlrpc-c, добавлен конфиг lynxrc, конфиг vsftpd по прежнему нерабочий, увы.
Комментариев нет:
Отправить комментарий