Мы — долго запрягаем, быстро ездим, и сильно тормозим.



www.lissyara.su —> www.lissyara.su —> rtorrent+webui

Качаем и раздаём торренты с rtorrent через очень удобную вебморду от utorrent

Автор: opt1k.


Всё началось с того что мне надоело держать свой десктоп постоянно включеным,
в то время как на полке в коридоре уже работает круглосуточно шлюз. Вот я и
решил перекинуть задачку с торрентами на шлюз и прикрутить удобную веб рулилку
для соседей. Долго рылся в инете пока не определился что для меня подойдёт
rtorrent, потом долго не мог определиться с  веб мордой, остановился на
wtorrent и какое то время им пользовался. Но потом случайно забрёл сюда
и решил что тут более красивое и функциональное решение веб обвязки, поэтому
его и будем прикручивать.

Начинаем как всегда с обновления портов.
Ставим нужные порты:
cd /usr/ports/www/lighttpd

снимаем все галки, нам тут ничего не надо
cd /usr/ports/lang/php5

выбираем только cgi и fastcgi
cd /usr/ports/lang/php5-extensions

отмечаем xml, xmlrpc, pcre, curl
cd /usr/ports/net-p2p/rtorrent

ставим галку только напротив xmlrpc
cd /usr/ports/sysutils/screen

смело снимаем все галки.


Всё, порты поставили, теперь конфиги.
cat /usr/local/etc/lighttpd.conf
server.modules              = (
                               "mod_rewrite",
                               "mod_redirect",
                               "mod_alias",
                               "mod_access",
                               "mod_auth",
                               "mod_fastcgi",
                               "mod_scgi",
                               "mod_accesslog" )
server.document-root        = "/usr/local/www/"
server.errorlog             = "/var/log/lighttpd.error.log"
index-file.names            = ( "index.php", "index.html",
                                "index.htm", "default.htm" )
server.event-handler = "freebsd-kqueue" # needed on OS X
mimetype.assign             = (
  ".pdf"          =>      "application/pdf",
  ".sig"          =>      "application/pgp-signature",
  ".spl"          =>      "application/futuresplash",
  ".class"        =>      "application/octet-stream",
  ".ps"           =>      "application/postscript",
  ".torrent"      =>      "application/x-bittorrent",
  ".dvi"          =>      "application/x-dvi",
  ".gz"           =>      "application/x-gzip",
  ".pac"          =>      "application/x-ns-proxy-autoconfig",
  ".swf"          =>      "application/x-shockwave-flash",
  ".tar.gz"       =>      "application/x-tgz",
  ".tgz"          =>      "application/x-tgz",
  ".tar"          =>      "application/x-tar",
  ".zip"          =>      "application/zip",
  ".mp3"          =>      "audio/mpeg",
  ".m3u"          =>      "audio/x-mpegurl",
  ".wma"          =>      "audio/x-ms-wma",
  ".wax"          =>      "audio/x-ms-wax",
  ".ogg"          =>      "application/ogg",
  ".wav"          =>      "audio/x-wav",
  ".gif"          =>      "image/gif",
  ".jar"          =>      "application/x-java-archive",
  ".jpg"          =>      "image/jpeg",
  ".jpeg"         =>      "image/jpeg",
  ".png"          =>      "image/png",
  ".xbm"          =>      "image/x-xbitmap",
  ".xpm"          =>      "image/x-xpixmap",
  ".xwd"          =>      "image/x-xwindowdump",
  ".css"          =>      "text/css",
  ".html"         =>      "text/html",
  ".htm"          =>      "text/html",
  ".js"           =>      "text/javascript",
  ".asc"          =>      "text/plain",
  ".c"            =>      "text/plain",
  ".cpp"          =>      "text/plain",
  ".log"          =>      "text/plain",
  ".conf"         =>      "text/plain",
  ".text"         =>      "text/plain",
  ".txt"          =>      "text/plain",
  ".dtd"          =>      "text/xml",
  ".xml"          =>      "text/xml",
  ".mpeg"         =>      "video/mpeg",
  ".mpg"          =>      "video/mpeg",
  ".mov"          =>      "video/quicktime",
  ".qt"           =>      "video/quicktime",
  ".avi"          =>      "video/x-msvideo",
  ".asf"          =>      "video/x-ms-asf",
  ".asx"          =>      "video/x-ms-asf",
  ".wmv"          =>      "video/x-ms-wmv",
  ".bz2"          =>      "application/x-bzip",
  ".tbz"          =>      "application/x-bzip-compressed-tar",
  ".tar.bz2"      =>      "application/x-bzip-compressed-tar",
  ""              =>      "application/octet-stream",
 )
accesslog.filename          = "/var/log/lighttpd.access.log"
url.access-deny = ("~", ".inc", ".db", ".tpl.php", ".cls.php",)
$HTTP["url"] =~ "\.pdf$" {
  server.range-requests = "disable"
}
static-file.exclude-extensions = ( ".php", ".pl", ".fcgi" )
server.pid-file            = "/var/run/lighttpd.pid"
server.username            = "www"
server.groupname           = "www"

fastcgi.server             = ( ".php" =>
                               ( "localhost" =>
                                 (
                                   "socket" => "/tmp/fcgi.socket",
#                                   "bin-path" => "/usr/local/bin/php-cgi-cgi"
                                 )
                               )
                            )

scgi.server = (
                "/RPC2" =>
                  ( "127.0.0.1" =>
                    (
                      "socket" => "/tmp/rtorrent_rpc.socket",
                      "check-local" => "disable",
#                      "disable-time" => 0,  # don't disable scgi if connection fails
                    )
                  )
              )


auth.backend = "htdigest"
auth.backend.htdigest.userfile = "/usr/local/www/rtorrent/rtorrent_users"
auth.require = ( "/RPC2" =>
 (
  "method" => "basic",
  "realm" => "XML-RPC",
  "require" => "valid-user"
 )
)

cat /usr/local/etc/rc.d/php_fastcgi
#!/bin/sh
#
# PROVIDE: php_fastcgi
# REQUIRE: DAEMON
# BEFORE:  LOGIN
# KEYWORD: shutdown

. /etc/rc.subr

name="php_fastcgi"
rcvar=`set_rcvar`

load_rc_config $name

: ${php_fastcgi_enable="NO"}
: ${php_fastcgi_user="www"}
#: ${php_fastcgi_bindaddr="127.0.0.1"}
#: ${php_fastcgi_bindport="9000"}
: ${php_fastcgi_socketpath="/tmp/fcgi.socket"}
: ${php_fastcgi_children="0"}
: ${php_fastcgi_max_requests="1000"}
: ${php_fastcgi_allowed_env=""}

export PHP_FCGI_CHILDREN=${php_fastcgi_children};
export PHP_FCGI_MAX_REQUESTS=${php_fastcgi_max_requests};

command="/usr/local/bin/php-cgi";
#command_args="-q -b ${php_fastcgi_bindaddr}:${php_fastcgi_bindport} &";
command_args="-q -b ${php_fastcgi_socketpath} &";
pidfile="/var/run/${name}.pid";

_allowed_env="ORACLE_HOME PATH USER PHP_FCGI_CHILDREN\
             PHP_FCGI_MAX_REQUESTS FCGI_WEB_SERVER_ADDRS";
_allowed_env="${_allowed_env} ${php_fastcgi_allowed_env}";

start_precmd=start_precmd;
start_postcmd="sleep 1;ps -U ${php_fastcgi_user} -o 'pid,command'|grep \
${command}|head -1|awk '{print \$1}' > ${pidfile}";
stop_postcmd=stop_postcmd;

start_precmd()
{
  export USER=${php_fastcgi_user};
  E=
  for i in ${_allowed_env}; do
      eval _val="\$$i";
      if [ "${_val}_x" != "_x" ]; then
          eval _add="$i=$_val";
          E="${E} ${_add}";
      fi
  done
  command="env - ${E} ${command}";
}

stop_postcmd()
{
   rm -f $pidfile
}

load_rc_config $name;

run_rc_command "$1";

Создаём нового пользователя от которого будем пускать rtorrent:
adduser
Username: rtorrent
Full name:
Uid (Leave empty for default):
Login group [rtorrent]:
Login group is rtorrent. Invite rtorrent into other groups? []: n
Group n does not exist!
Login group is rtorrent. Invite rtorrent into other groups? []: ^C
web# adduser
Username: rtorrent
Full name:
Uid (Leave empty for default):
Login group [rtorrent]: www
Login group is www. Invite rtorrent into other groups? []:
Login class [default]: 
Shell (sh csh tcsh nologin) [sh]:
Home directory [/home/rtorrent]:
Home directory permissions (Leave empty for default):
Use password-based authentication? [yes]:
Use an empty password? (yes/no) [no]: no
Use a random password? (yes/no) [no]: no
Enter password:
Enter password again:
Lock out the account after creation? [no]:
Username   : rtorrent
Password   : *****
Full Name  :
Uid        : 1002
Class      : 
Groups     : rtorrent
Home       : /home/rtorrent
Home Mode  :
Shell      : /bin/sh
Locked     : no
OK? (yes/no): yes
adduser: INFO: Successfully added (rtorrent) to the user database.
Add another user? (yes/no): no
Goodbye!

в /etc/rc.conf добавляем следущее:
lighttpd_enable="YES"
php_fastcgi_enable="YES"
php_fastcgi_user="www"
php_fastcgi_children="0"
php_fastcgi_max_requests="1000"
php_fastcgi_allowed_env=""
rtorrent_enable="YES"
rtorrent_args="-n -d /mnt/hdd2/p2p/bittorrent/downloads \
               -s /mnt/hdd2/p2p/bittorrent/sessions"
rtorrent_user="rtorrent"

тут rtorrent это пользователь от котрого будем пускать rtorrent, /mnt/hdd2/p2p/bittorrent путь куда будут
лететь торренты по умлочанию(в веб морде можно назначать любой путь), /mnt/hdd2/p2p/bittorrent/sessions
честно скажу - не знаю что оно там хранит, но подозреваю что .torrent файлы. Ко всем путям пользователь rtorrent должен естественно иметь полный доступ.
Далее:

touch /var/log/lighttpd.error.log
touch /var/log/lighttpd.access.log
chown www:www /var/log/lighttpd.error.log
chown www:www /var/log/lighttpd.access.log

Сделаем стартовый скриптик для rtorrent:
cat /usr/local/etc/rc.d/rtorrent
#!/bin/sh
#
#

# PROVIDE: rtorrent
# REQUIRE: LOGIN
# KEYWORD: shutdown

. /etc/rc.subr

name="rtorrent"
rcvar=`set_rcvar`

load_rc_config $name

: ${rtorrent_enable="NO"}
: ${rtorrent_args=""}
: ${rtorrent_user="rtorrent"}

command="/usr/local/bin/rtorrent"
screen="/usr/local/bin/screen"

start_precmd="${name}_prestart"
start_cmd="echo \"Starting ${name}.\"; su \
${rtorrent_user} -c '${screen} -A -m -d -S rtorrent \
${command} ${rtorrent_args} \
-o scgi_local=/tmp/rtorrent_rpc.socket'"

start_postcmd="${name}_poststart"

rtorrent_prestart()
{
        if [ -e "/tmp/rtorrent_rpc.socket" ]; then
                rm -R /tmp/rtorrent_rpc.socket
        fi
        return 0
}

rtorrent_poststart()
{
        while [ ! -e "/tmp/rtorrent_rpc.socket" ];
        do
                sleep 0.1
                echo waiting for /tmp/rtorrent_rpc.socket creation...
        done
                echo done
                chown www /tmp/rtorrent_rpc.socket
                return 0
}

#stop_postcmd="rm -R /var/tmp/rtorrent_rpc.socket"

run_rc_command "$1"

Обратите внимание на символы "\" в конце строк, их не должно быть в реальном файле, это символ переноса строки.

Теперь вебморда, взять её нужно отсюда:
fetch http://rutorrent.googlecode.com/files/rtorrent-2.5.tar.gz

Распакуем содержимое архива в /usr/local/www/rtorrent:
tar xvf rtorrent-2.5.tar.gz -C /usr/local/www/

Подрихтуем конфиг:
cat /usr/local/www/rtorrent/config.php
<?php
    define('HTTP_USER_AGENT', 'Mozilla/5.0 (Windows; U;
 Windows NT 5.1; pl; rv:1.9) Gecko/2008052906 Firefox/3.0');
    define('HTTP_TIME_OUT', 30);
    define('HTTP_USE_GZIP', true);

    define('RPC_TIME_OUT', 15);         // in seconds
    define('DO_DIAGNOSTIC', true);
// temp directory for uploaded torrents, without tail slash
    $uploads = './torrents';
// settings directory, without tail slash
    $settings = './settings';

// Something like /bin/php. If empty, will be founded in PATH.
    $pathToPHP = '';
// Something like /bin/curl. If empty, will be founded in PATH.
    $pathToCurl = '';

     $scgi_port = 0;
     $scgi_host = "unix:///tmp/rtorrent_rpc.socket";
?>

Создадим файлик авторизации в веб морде:
echo rtorrent:XML-RPC:`echo -n rtorren:XML-RPC:my_pass | md5 | cut -b -32` >> \
/usr/local/www/rtorrent/rtorrent_users

Где rtorren - имя пользователя
и my_pass - пароль.
Скажу сразу - пароль по данной схеме никак не шифруется при передаче на сервер, значит его могут перехватить. Во избежание этого надо крутить https к lighttpd, что выходит за рамки этой статьи, но, если надо, то я это опишу.

Э, надо бы ещё права на стартовые скрипты дать:
chmod +x /usr/local/etc/rc.d/rtorrent
chmod +x /usr/local/etc/rc.d/php_fastcgi

Да и на веб морду:
chmod -R 755 /usr/local/www/rtorrent
chown -R www:www /usr/local/www/rtorrent

Всё, пробуем:
/usr/local/etc/rc.d/lighttpd start
/usr/local/etc/rc.d/php_fastcgi start
/usr/local/etc/rc.d/rtorrent start
http://host_ip/rtorrent

Добавление1.
По просьбам трудящихся даю перевод конфига rtorrent'a:

# This is an example resource file for rTorrent. Copy to
# ~/.rtorrent.rc and enable/modify the options as needed. Remember to
# uncomment the options you wish to enable.

# Maximum and minimum number of peers to connect to per torrent.
# максимальное и минимальное число пиров на каждый торрент
#min_peers = 40
#max_peers = 100

# Same as above but for seeding completed torrents (-1 = same as downloading)
# Тоже самое что и выше, только для сидируемых торрентов
# (-1 для тех значений что на скачках)
#min_peers_seed = 10
#max_peers_seed = 50

# Maximum number of simultanious uploads per torrent.
# Максимально число одновременных отдач на торрент
#max_uploads = 15

# Global upload and download rate in KiB. "0" for unlimited.
# глобальная скорость скачивания и отдачи. "0" без лимита
#download_rate = 0
#upload_rate = 0

# Default directory to save the downloaded torrents.
# Директория для сохранения торрентов
#directory = ./

# Default session directory. Make sure you don't run multiple instance
# of rtorrent using the same session directory. Perhaps using a
# relative path?
# Директория для хранения файлов сессий, не допускается запуск более
# одно rtorrent'а с заданием одной и той же диретории.
#session = ./session

# Watch a directory for new torrents, and stop those that have been
# deleted.
#Сиотрим директорию на наличие новых торрентов для скачки,
# и тормозим торрент если
# если .torrent файл удалён(можно по самбе накилывать и удалять, прим. автора)
#schedule = watch_directory,5,5,load_start=./watch/*.torrent
#schedule = untied_directory,5,5,stop_untied=

# Close torrents when diskspace is low.
# закрываем торренты если мало места на харде
#schedule = low_diskspace,5,60,close_low_diskspace=100M

#тормозим торренты если множитель отдачи достиг определённый процент
#или же если достигнут лимит в байтах
#или же достигнут финальный лимит сножителя отдачи в процентах
# Stop torrents when reaching upload ratio in percent,
# when also reaching total upload in bytes, or when
# reaching final upload ratio in percent.
# example: stop at ratio 2.0 with at least 200 MB uploaded, or else ratio 20.0
#schedule = ratio,60,60,"stop_on_ratio=200,200M,2000"

# The ip address reported to the tracker.
# айпишник сообщаемый трекеру
#ip = 127.0.0.1
#ip = rakshasa.no

# The ip address the listening socket and outgoing connections is
# bound to.
# биндим слушающий сокет и исходящии соединения на этот адрес
#bind = 127.0.0.1
#bind = rakshasa.no

# Port range to use for listening.
# диапазон портов для прослушки
#port_range = 6890-6999

# Start opening ports at a random position within the port range.
#лькрываем порты внутри диапазоа со случайных значений
#port_random = no

# Check hash for finished torrents. Might be usefull until the bug is
# fixed that causes lack of diskspace not to be properly reported.
#проверяем хеш скаченного торента. Может быть полезно до фикса бага,
#из-за которого свободное место отображается неверно.
#check_hash = no

# Set whetever the client should try to connect to UDP trackers.
#разрешает клиенту испольование UDP трекеров
#use_udp_trackers = yes

# Alternative calls to bind and ip that should handle dynamic ip's.
#альтернативны вызовы бинда и IP для управления динамическим адресом
#schedule = ip_tick,0,1800,ip=rakshasa
#schedule = bind_tick,0,1800,bind=rakshasa

# Encryption options, set to none (default) or any combination of
# the following:
# allow_incoming, try_outgoing, require, require_RC4,
# enable_retry, prefer_plaintext
#
# The example value allows incoming encrypted connections, starts unencrypted
# outgoing connections but retries with encryption if they fail, preferring
# plaintext to RC4 encryption after the encrypted handshake
# опции шифрования, поумолчанию не шифрует.
#пример разрешает входящие зашифрованние соединения, начинать нешифрованные
#имохдящие соединения, но повторять шированными если не получилось.
#Предпочтение отдаётся откытому текст вместо RC4, после неудачного шифрования
# encryption = allow_incoming,enable_retry,prefer_plaintext

# Enable DHT support for trackerless torrents or when all trackers are down.
# May be set to "disable" (completely disable DHT), "off" (do not start DHT),
# "auto" (start and stop DHT as needed), or "on" (start DHT immediately).
# The default is "off". For DHT to work, a session directory must be defined.
# разрешаем dht, подробнее читаем тут:http://ru.wikipedia.org/wiki/DHT
# dht = auto

# UDP port to use for DHT.
# порт для ипсользования DHT.
# dht_port = 6881

# Enable peer exchange (for torrents not marked private)
#разрешить обмен пирами(если торренты не отмечены как частные)
# peer_exchange = yes

#
# Do not modify the following parameters unless you know what you're doing.
#не трогайте эти параметры если не знаете что делаете =)

# Hash read-ahead controls how many MB to request the kernel to read
# ahead. If the value is too low the disk may not be fully utilized,
# while if too high the kernel might not be able to keep the read
# pages in memory thus end up trashing.
# кол-во памяти запрашиваемого у ядра, малое значение может вызвать
#простой дисковой подсистемы, большое к сбросу страниц памяти.
#hash_read_ahead = 10

# Interval between attempts to check the hash, in milliseconds.
#интервал между попытками хеширования
#hash_interval = 100

# Number of attempts to check the hash while using the mincore status,
# before forcing. Overworked systems might need lower values to get a
# decent hash checking rate.
#кол-во попыток проверки хеша во время mincore(хер знает что это) статуса,
#перед принуждением. Нагруженные системы должны использовать меньшие
#значени для получения нормальной скорости проверки хеша.
#hash_max_tries = 10

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


статья в вики
офсайт webui, кстати, называется теперь "rutorrent" :)



Ссылка на обсуждение: http://forum.lissyara.su/viewtopic.php?t=14779.

размещено: 2009-01-27,
последнее обновление: 2009-10-01,
автор: opt1k

оценить статью:

adre, 2009-04-18 в 12:13:57

хмм...  а говорили телепатов нету =)))
вчера крутил transmission - читать было лень, оказывается ему иксы нужны =((

Garick, 2009-04-19 в 0:40:24

Плохо крутили.
Трансмишену не нужны иксы веб морда там встроена нет необходимости устанавливать кучу ненужного есть проги клиенты

sool, 2009-05-29 в 8:21:30

Под apache20 и 22 (13 не пробывал)
httpd.conf
-----------------------------------------------------------
LoadModule scgi_module        libexec/apache22/mod_scgi.so
SCGIMount /RPC2   127.0.0.1:5000
-----------------------------------------------------------
соответственно собрать с подержкой SCGI

gloom, 2009-06-20 в 17:58:34

если php уже установлен то
cd /usr/ports/net/php5-xmlrpc
make install clean
проверяем
cat /usr/local/etc/php/extensions.ini |grep extension=xmlrpc.so
ll /usr/local/libexec/apache22/mod_scgi.so

adre, 2009-07-01 в 10:19:03

cd /usr/ports/www/py_scgi && make install

adre, 2009-07-02 в 9:22:37

да и чтобы корректно работало с данной мордой надо либо ставить rtorrent-devel, либа с сайта собрать самому последнюю версию, а то глюки различные могут ловиться

opt1k, 2009-07-04 в 16:12:48

/usr/ports/www/py_scgi - такого порта я не нашёл, зачем его ставить?
у вас глюки ловились?

Виталий, 2009-07-15 в 16:36:43

Подскажите, а как быть если уже установлен и работает Apache на сервере и его вырубать нельзя?

uHk, 2009-07-24 в 18:45:58

\"Настройки rTorrent, изменяемые пользователем через соответствующий диалог ruTorrent валидны только на время текущей сессии rTorrent. После рестарта последнего они будут утеряны.\" - цитата с офф сайта

lissyara, 2009-07-24 в 19:32:52

"
'
`
test

IRON, 2009-08-13 в 0:18:36

Есть у меня два сервака. Один с большим винтом и Апачем. Другой с PHP и Апачем. На первом запущен rtorrent, на втором пытаюсь поднять rutorrent (так как ему PHP нужен). К сожалению ничего не получилось, так как rutorrent-у почему-то нужно иметь доступ в папку sessions, которую он ищет почему-то локально на втором сервере. Не понятно чем разработчики думали :(.

opt1k, 2009-08-29 в 5:37:09

uHk:
будь добр, дай на это линк, почитаю
IRON: Вас спасёт НФС или самба.

cat_ua, 2009-09-15 в 16:06:01

я так понял что правильно должно быть так?:

cd /usr/ports/lang/php5-extensions
отмечаем xml, xmlrpc, pcre, curl

cd /usr/ports/net-p2p/rtorrent
ставим галку только напротив xmlrpc

а то не мог понять где в rtorrent-е pcre и curl выставить...

opt1k, 2009-10-01 в 23:18:58

cat_ua: спасибо, поправил.

Zilbi, 2009-10-17 в 17:24:08

Поправьте заодно и в wiki

Olax, 2010-01-06 в 9:41:44

Сделал все по статье.
запускается, соединяется, но статус торента постоянно в паузе.
скачивание не идет
в чем проблема может быть?

frosty, 2010-06-03 в 15:20:52

!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

АФТАР добавь в ман

1.
mkdir -p /var/run/lighttpd
chown www:www /var/run/lighttpd

2. раскаменитруй в конфиге lighttpd
#                                   \"bin-path\" => \"/usr/local/bin/php-cgi-cgi\"


Оставьте свой комментарий:
Ваше имя:   *
e-mail:  
жирный
наклонный
подчёркнутый
ссылка
цвет
Нынешний год:   *
 


Хостинг HOST-FOOD

2014-07-27, lissyara
gmirror

Удалённое создание софтверного зеркала средствами gmirror, на диске разбитом с использованием gpart. Использование меток дисков для монтирования разделов.
2013-08-20, zentarim
Scan+Print server FreeBSD 9

Настройка сервера печати и сервера сканирования под управлением операционной системы FreebSD 9 для МФУ Canon PIXMA MP540
2011-11-20, BlackCat
Разъём на WiFi-карту

Делаем съёмной несъёмную антену на WiFi-карте путём установки ВЧ-разъёма
2011-09-14, manefesto
Настройка git+gitosis

Настройка системы контроля версия исходного кода в связке git+gitosis+ssh
2011-08-14, zentarim
Wi-FI роутер + DHCP + DNS

Настройка Wi-Fi роутера на Freebsd 8 + DNS сервер + DHCP сервер: чтобы Wi-Fi клиенты были в одной подсети с проводными, проводные и беспроводные клиенты получали адреса автоматически по DHCP, кэширующ
2011-06-15, -ZG-
Охранная система на FreeBSD+LPT

В этой статье описана попытка реализации простой охранной системы на базе FreeBSD с подключением к ней охранных устройтсв на LPT порт и видеорегистрацией.
2011-03-13, terminus
ng_nat

Описание работы ng_nat, практическое использование, достоинства и недостатки в сравнении с ipfw nat
2011-02-20, Капитан
Nagios+Digitemp

Статья описывает создание системы оповещения о превышении температуры в специальных помещениях на основе Nagios с использованием программы Digitemp.
2011-02-17, Le1
Zyxel Configuration

Скрипт для массового изменения конфига свичей Zyxel. Берет из файла iplist список ip-шек, заходит последовательно на каждый и выполняет комманды из файла commands, записывая происходящее в лог файл.
2011-02-16, fox
hast carp zfs ucarp cluster

HAST (Highly Available Storage), CARP, UCARP, ZFS, Cluster настройка и одаптация плюс личные размышления…
2011-02-04, BlackCat
Восстановление ZFS

История о том, как был восстановлен развалившийся RAIDZ ZFS-пул (перешедший в FAULTED) с помощью скотча и подручных средств. Или о том, какие приключения ожидают тех, кто не делает резервных копий.
2011-02-03, Капитан
1-Wire

Статья описывает самостоятельное изготовление контроллера DS9097 для съёма показаний с датчиков температуры DS1820 с помощью программы Digitemp.
2011-01-28, Капитан
Температура в серверной

Статья описывает построение системы наблюдения за температурой в помещении серверной с использованием программы Digitemp и выводом графиков в MRTG
2011-01-21, m4rkell
Syslog server

Как то буквально на днях, у нас завалилось, что то в еве) или не в еве не суть. Суть в том, что когда захотели снять логи с хостов esx обнаружили, что хранят эти негодяи логии только за последнии сутк
2011-01-07, lissyara
Canon/gphotofs

Монтирование цифровых фотоаппаратов Canon (PTP) как файловой системы, автоматизация этого процесса через события devd и внешние скрипты.
2010-12-13, Al
IPSec

Описание принципов работы IPSEC и способов аутентификации.
2010-12-07, manefesto
FreeBSD on flash

Было принято решении переехать на USB Flash и установить минимальный джентельменский набор для работы своего роутера. Делаем =)
2010-12-05, Fomalhaut
root ZFS, GPT

Инструкция по установке FreeBSD с использованием в качестве таблицы разделов GPT и в качестве основной файловой системы - ZFS
2010-09-05, Cancer
Настройка аудиоплеера на ximp3

Цели: Простенький аудиоплеер, для того что бы тетя продавец в магазине утром пришла нажала на кнопку Power и заиграла в зале музыка, так же был доступ по сети, общая шара куда можно заливать музыку, к
2010-08-31, Cancer
Установка и настройка OpenVPN

На днях появилась задача - объединить головной офис и 3 филиала в одну сеть через интернет посредством OpenVPN, чтобы люди могли подключаться через RDP к базам 1С на серверах.
2010-08-25, manefesto
freebsd lvm

Использование linux_lvm для работы с LVM разделами из-под FreeBSD. Проблемы которые возники при монтирование lvm раздела
2010-04-30, gonzo111
proftpd file auth&quota

Proftpd - квоты и авторизация из файлов, без использования базы данных и/или системных пользователей
2010-04-22, lissyara
tw_cli

Пошаговая инструкция по восстановлению RAID на контроллере 3ware, из которого выпал один диск. Настройка мониторинга состояния рейда и отчётов о его состоянии на email.
2010-04-14, fox
MySQL Master+Master

MySQL (Master Master) and (Master Slave) Как настроить репликацию…
2010-03-22, Mufanu
named 9.7.0

Система доменных имен (Domain Name Service, DNS) - одна из тех незаметных, закулисных программ, которым не уделяется и половины того внимания, которого они заслуживают.
2010-03-09, terminus
DNS zones

Краткий ликбез про управление DNS зонами. Примеры проведения делегирования прямых и обратных DNS зон.
2010-03-09, aspera
Squid+AD (group access)

Настройка прокси сервера SQUID с автроризацией пользователей в AD. Разделение пользователей на группы
2010-03-02, BlackCat
Шлюз: Часть 4

Настройка дополнительных сервисов: синхронизация времени (OpenNTPD), клиент DynDNS.org.
2010-03-01, BlackCat
Шлюз: Часть 3

Настройка DHCP и DNS серверов для работы внутри частной сети, c поддержкой внутренних (частных зон) DNS, а так же интеграция DHCP и DNS сервисов.
2010-03-01, BlackCat
Шлюз: Часть 2

Конфигурация МСЭ pf для проброса портов с изменением порта назначения и без, а так же поддержки активного режима FTP и ограничения максимального размера сегмента
2010-03-01, BlackCat
Шлюз: Часть 1

Быстрая настройка шлюза/маршрутизатора с установлением PPPoE-соединения, поддержкой NAT и DNS-forwarding.
2010-02-23, Morty
darkstat

Простая считалка траффика, со встроенным веб-сервером. Очень маленькая, может делать отчеты трафика по хостам, портам, протоколам, а также строить графики
2010-01-23, gonzo111
squid+sams+sqstat

Пилим squid и sams - примеры конфигов с объяснениями. Установка SqStat.
2009-12-19, schizoid
mpd5 + radius + ng_car + Abills

Настройка pppoe-сервера с биллинговой системой Abills и шейпером ng_car
2009-11-16, lissyara
UFS->ZFS

Удалённая миграция с UFS на ZFS. Загрузка с раздела zfs. Настройка для работы с малым количеством памяти под архитектурой i386.
2009-11-13, gx_ua
fusefs-ntfs

Установка, настройка и использование fusefs-ntfs, драйвер NTFS, предназанченного для монтирования NTFS разделов под FreeBSD
2009-11-12, Morty
LiveCD

Создание собственного LiveCD с необходимыми вам изменениями, автоматизирование данного процесса, а так же вариант скоростной сборки СД.
2009-09-27, lissyara
Samba как PDC

Контроллер домена - аналог M$ NT4 домена под самбой, без использования LDAP и прочей хиромантии. Просто и быстро =)
2009-08-30, terminus
ipfw nat

Подробное руководство по ipfw nat, сложные случаи конфигурации.
2009-08-24, levantuev
HotSpot

Установка Hotspot системы в общественное заведение.
2009-08-18, lissyara
diskless

Создание бездисковых терминалов под управлением FreeBSD - с загрузкой по сети. Используются для старта rdesktop и подключения к виндовому серверу терминалов.
2009-07-29, BAV_Lug
Видеонаблюдение

Настройка бюджетного варианта видеонаблюдения на удаленном объекте
подписка

    вверх      
Статистика сайта
Сейчас на сайте находится: 13 чел.
За последние 30 мин было: 66 человек
За сегодня было
7931 показов,
1033 уникальных IP
 

  Этот информационный блок появился по той простой причине, что многие считают нормальным, брать чужую информацию не уведомляя автора (что не так страшно), и не оставляя линк на оригинал и автора — что более существенно. Я не против распространения информации — только за. Только условие простое — извольте подписывать автора, и оставлять линк на оригинальную страницу в виде прямой, активной, нескриптовой, незакрытой от индексирования, и не запрещенной для следования роботов ссылки.
  Если соизволите поставить автора в известность — то вообще почёт вам и уважение.

© lissyara 2006-10-24 08:47 MSK

Время генерации страницы 0.1836 секунд
Из них PHP: 76%; SQL: 24%; Число SQL-запросов: 30 шт.
Исходный размер: 99415; Сжатая: 23378