<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Блог Александра Руденко aka ras. &#187; centos</title>
	<atom:link href="http://ras.pl.ua/tag/centos/feed/" rel="self" type="application/rss+xml" />
	<link>http://ras.pl.ua</link>
	<description>Заметки о себе, семье, городе, профессиональной деятельности...</description>
	<lastBuildDate>Sun, 02 Oct 2011 06:04:01 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Установка и настройка transmission-daemon в CentOS 6</title>
		<link>http://ras.pl.ua/install_and_configure_transmission-daemon_in_centos_6/</link>
		<comments>http://ras.pl.ua/install_and_configure_transmission-daemon_in_centos_6/#comments</comments>
		<pubDate>Tue, 16 Aug 2011 14:30:35 +0000</pubDate>
		<dc:creator>ras</dc:creator>
				<category><![CDATA[Администрирование]]></category>
		<category><![CDATA[centos]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[torrent]]></category>
		<category><![CDATA[transmission]]></category>
		<category><![CDATA[transmission-daemon]]></category>

		<guid isPermaLink="false">http://ras.pl.ua/?p=272</guid>
		<description><![CDATA[По мотивам прошлой статьи &#171;Установка и настройка transmission-daemon в CentOS 5&#187;, решил написать ещё одну статью. CentOS хоть и с большим опозданием от RedHat Enterprise Linux и Scientific Linux, но всё-таки появился, пришлось переустановить дистрибутив, и адаптировать уже работавший софт к новой версии дистрибутива. Transmission, как и раньше, в CentOS с дистрибутива не поставишь&#8230; Сборка [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;">По мотивам прошлой статьи &laquo;<a href="/install_and_configure_transmission-daemon_in_centos">Установка и настройка transmission-daemon в CentOS 5</a>&raquo;, решил написать ещё одну статью. CentOS хоть и с большим опозданием от RedHat Enterprise Linux и Scientific Linux, но всё-таки появился, пришлось переустановить дистрибутив, и адаптировать уже работавший софт к новой версии дистрибутива. Transmission, как и раньше, в CentOS с дистрибутива не поставишь&#8230;<span id="more-272"></span></p>
<p><strong>Сборка</strong></p>
<p style="text-align: justify;">Собирать я решил в данном случае rpm-ки из srpm-ки Fedora 14. Процесс описывать не буду, приведу ссылки на оригинал и собранные пакеты для архитектуры x86_64:</p>
<ul>
<li><a href="/pub/linux/centos/6/x86_64/transmission/transmission-2.11-2.fc14.src.rpm">transmission-2.11-2.fc14.src.rpm</a></li>
<li><a href="/pub/linux/centos/6/x86_64/transmission/transmission-2.11-2.el6.x86_64.rpm">transmission-2.11-2.el6.x86_64.rpm</a></li>
<li><a href="/pub/linux/centos/6/x86_64/transmission/transmission-cli-2.11-2.el6.x86_64.rpm">transmission-cli-2.11-2.el6.x86_64.rpm</a></li>
<li><a href="/pub/linux/centos/6/x86_64/transmission/transmission-common-2.11-2.el6.x86_64.rpm">transmission-common-2.11-2.el6.x86_64.rpm</a></li>
<li><a href="/pub/linux/centos/6/x86_64/transmission/transmission-daemon-2.11-2.el6.x86_64.rpm">transmission-daemon-2.11-2.el6.x86_64.rpm</a></li>
<li><a href="/pub/linux/centos/6/x86_64/transmission/transmission-gtk-2.11-2.el6.x86_64.rpm">transmission-gtk-2.11-2.el6.x86_64.rpm</a></li>
<li><a href="/pub/linux/centos/6/x86_64/transmission/transmission-qt-2.11-2.el6.x86_64.rpm">transmission-qt-2.11-2.el6.x86_64.rpm</a></li>
</ul>
<p><strong>Установка</strong></p>
<div class="codecolorer-container bash default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="bash codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">rpm <span style="color: #660033;">-i</span> http:<span style="color: #000000; font-weight: bold;">//</span>ras.pl.ua<span style="color: #000000; font-weight: bold;">/</span>pub<span style="color: #000000; font-weight: bold;">/</span>linux<span style="color: #000000; font-weight: bold;">/</span>centos<span style="color: #000000; font-weight: bold;">/</span><span style="color: #000000;">6</span><span style="color: #000000; font-weight: bold;">/</span>x86_64<span style="color: #000000; font-weight: bold;">/</span>transmission<span style="color: #000000; font-weight: bold;">/</span>transmission-common-<span style="color: #000000;">2.11</span>-<span style="color: #000000;">2</span>.el6.x86_64.rpm http:<span style="color: #000000; font-weight: bold;">//</span>ras.pl.ua<span style="color: #000000; font-weight: bold;">/</span>pub<span style="color: #000000; font-weight: bold;">/</span>linux<span style="color: #000000; font-weight: bold;">/</span>centos<span style="color: #000000; font-weight: bold;">/</span><span style="color: #000000;">6</span><span style="color: #000000; font-weight: bold;">/</span>x86_64<span style="color: #000000; font-weight: bold;">/</span>transmission<span style="color: #000000; font-weight: bold;">/</span>transmission-daemon-<span style="color: #000000;">2.11</span>-<span style="color: #000000;">2</span>.el6.x86_64.rpm</div></div>
<p>Настройка web-интерфейса для httpd, файл <u>/etc/httpd/conf/httpd.conf</u>:</p>
<div class="codecolorer-container text default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">Alias /transmission/web /usr/share/transmission/web<br />
RewriteEngine on<br />
RewriteRule /transmission[/]?$ /transmission/web [R=permanent]<br />
ProxyPass /transmission http://127.0.0.1:9091/transmission<br />
ProxyPassReverse /transmission http://127.0.0.1:9091/transmission<br />
&lt;Location /transmission&gt;<br />
&nbsp; Options None<br />
&nbsp; Order allow,deny<br />
&nbsp; Allow from 127.0.0.1<br />
&nbsp; &lt;IfModule expires_module&gt;<br />
&nbsp; &nbsp; ExpiresActive On<br />
&nbsp; &nbsp; ExpiresByType image/gif A43200<br />
&nbsp; &nbsp; ExpiresByType image/png A43200<br />
&nbsp; &nbsp; ExpiresByType application/javascript A43200<br />
&nbsp; &nbsp; ExpiresByType text/css A43200<br />
&nbsp; &lt;/IfModule&gt;<br />
&lt;/Location&gt;</div></div>
<p style="text-align: justify;">В &#171;Allow from&#187; укажите IP, с которого вы хотите получить доступ, в своём случае, я использовал &#171;Authtype Basic&#187;, т. е. захожу по паролю. Перезапуск httpd (если возникли ошибки, смотрим каких модулей не хватает, подправляем файл конфигурации):</p>
<div class="codecolorer-container bash default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="bash codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">service httpd restart</div></div>
<p>Настройка параметров запуска, файл <u>/etc/sysconfig/transmission-daemon</u>:</p>
<div class="codecolorer-container text default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">TRANSMISSION_HOME=&quot;/var/lib/transmission&quot; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<br />
DAEMON_USER=&quot;root&quot; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br />
DAEMON_ARGS=&quot;--no-auth --allowed 127.0.0.1 --config-dir $TRANSMISSION_HOME/.config/transmission-daemon&quot;</div></div>
<p>Добавление в автозапуск:</p>
<div class="codecolorer-container bash default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="bash codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">chkconfig transmission-daemon on</div></div>
<p>Запуск:</p>
<div class="codecolorer-container bash default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="bash codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">service transmission-daemon start</div></div>
<p>Если всё выполнено правильно, демон запущен и работает.</p>
<p><strong>Настройка</strong></p>
<p style="text-align: justify;">Теперь нужно настроить демон, основные настройки доступны с web-интерфейса. Нужно открыть в браузере <u>http://ваш-web-сервер/transmission</u>, слева внизу есть кнопка настроек, выбрать Preferences. Указать путь куда будут сохраняться файлы, номер порта и не забыть открыть его в фаерволле для входящих соединений. На второй вкладке указать ограничение скорости. Всё, можно работать, добавлять torrent-файлы, наблюдать процесс скачивания.</p>
<p style="text-align: justify;">Все настройки сохраняются в каталоге <u>/var/lib/transmission/.config/transmission-daemon</u>. Там же хранятся torrent-файлы и информация о текущих загрузках.</p>
<p><strong>Ссылки</strong></p>
<ul>
<li><a href="http://www.transmissionbt.com/" target="_blank">www.transmissionbt.com</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://ras.pl.ua/install_and_configure_transmission-daemon_in_centos_6/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Настройка шейпера HTB на офисном маршрутизаторе на базе Linux при помощи htb.init</title>
		<link>http://ras.pl.ua/howto_configure_htb_init_on_office_router/</link>
		<comments>http://ras.pl.ua/howto_configure_htb_init_on_office_router/#comments</comments>
		<pubDate>Thu, 07 Jul 2011 10:01:51 +0000</pubDate>
		<dc:creator>ras</dc:creator>
				<category><![CDATA[Администрирование]]></category>
		<category><![CDATA[centos]]></category>
		<category><![CDATA[Debian]]></category>
		<category><![CDATA[HTB]]></category>
		<category><![CDATA[htb.init]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[tc]]></category>
		<category><![CDATA[шейпер]]></category>

		<guid isPermaLink="false">http://ras.pl.ua/?p=253</guid>
		<description><![CDATA[Решил написать небольшое HOWTO по настройке шейпера HTB на маршрутизаторе (роутере) на базе Linux при помощи скрипта htb.init. Задача следующая: есть офисная сеть, есть подключение к сети Интернет на определённой скорости, в рассмотренном случае это 20 мегабит вход и 5 мегабит исход, скорость нужно поделить равнозначно между офисными компьютерами, но в случае когда канал не [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;">Решил написать небольшое HOWTO по настройке шейпера <b>HTB</b> на маршрутизаторе (роутере) на базе <b>Linux</b> при помощи скрипта <b>htb.init</b>. Задача следующая: есть офисная сеть, есть подключение к сети Интернет на определённой скорости, в рассмотренном случае это 20 мегабит вход и 5 мегабит исход, скорость нужно поделить равнозначно между офисными компьютерами, но в случае когда канал не загружен &#8212; дать возможность работать на максимальной скорости. В данном HOWTO шейпиться будет не только входящий, но и исходящий трафик, причём подключение к Интернет производится по PPP, что накладывает некоторые нюансы на настройку.</p>
<p><span id="more-253"></span></p>
<p style="text-align: justify;">Настройка приведена на примере дистрибутива <b>CentOS</b> (RHEL, Fedora), для <b>Debian</b> (Ubuntu) будут тоже приведены пояснения, так как некоторые системные утилиты отличаются.</p>
<p style="text-align: justify;">Для начала нужно загрузить и настроить сам скрипт построения правил шейпера, даю пример не на оригинальный скрипт, а на модифицированный мной (исправлено несколько ошибок, добавлено удаление кэша при перезапуске шейпера, т. к. бывает в кэше остаются записи, которых уже нет в конфигурационных файлах, версия 0.8.4):</p>
<div class="codecolorer-container bash default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="bash codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #7a0874; font-weight: bold;">cd</span> <span style="color: #000000; font-weight: bold;">/</span>usr<span style="color: #000000; font-weight: bold;">/</span>local<span style="color: #000000; font-weight: bold;">/</span>sbin<br />
<span style="color: #c20cb9; font-weight: bold;">wget</span> http:<span style="color: #000000; font-weight: bold;">//</span>ras.pl.ua<span style="color: #000000; font-weight: bold;">/</span>pub<span style="color: #000000; font-weight: bold;">/</span>linux<span style="color: #000000; font-weight: bold;">/</span>htb.init<br />
<span style="color: #c20cb9; font-weight: bold;">mv</span> <span style="color: #660033;">-f</span> .<span style="color: #000000; font-weight: bold;">/</span>htb.init .<span style="color: #000000; font-weight: bold;">/</span>htb<br />
<span style="color: #c20cb9; font-weight: bold;">chmod</span> <span style="color: #000000;">755</span> .<span style="color: #000000; font-weight: bold;">/</span>htb<br />
<span style="color: #c20cb9; font-weight: bold;">ln</span> <span style="color: #660033;">-sf</span> <span style="color: #000000; font-weight: bold;">/</span>usr<span style="color: #000000; font-weight: bold;">/</span>local<span style="color: #000000; font-weight: bold;">/</span>sbin<span style="color: #000000; font-weight: bold;">/</span>htb <span style="color: #000000; font-weight: bold;">/</span>etc<span style="color: #000000; font-weight: bold;">/</span>init.d<span style="color: #000000; font-weight: bold;">/</span>htb</div></div>
<p style="text-align: justify;">Скрипт загружен, сделан запускаемым, симлинк помещён куда нужно, теперь нужно включить его в автозагрузку, для CentOS (RHEL, Fedora):</p>
<div class="codecolorer-container bash default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="bash codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">chkconfig htb on</div></div>
<p style="text-align: justify;">То же для Debian (Ubuntu):</p>
<div class="codecolorer-container bash default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="bash codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">update-rc.d htb start <span style="color: #000000;">20</span> <span style="color: #000000;">0</span> <span style="color: #000000;">1</span> <span style="color: #000000;">2</span> <span style="color: #000000;">3</span> <span style="color: #000000;">4</span> <span style="color: #000000;">5</span> .</div></div>
<p style="text-align: justify;">Далее нужно создать каталоги для файлов конфигурации шейпера:</p>
<div class="codecolorer-container bash default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="bash codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #c20cb9; font-weight: bold;">mkdir</span> <span style="color: #000000; font-weight: bold;">/</span>etc<span style="color: #000000; font-weight: bold;">/</span>sysconfig<br />
<span style="color: #c20cb9; font-weight: bold;">mkdir</span> <span style="color: #000000; font-weight: bold;">/</span>etc<span style="color: #000000; font-weight: bold;">/</span>sysconfig<span style="color: #000000; font-weight: bold;">/</span>htb</div></div>
<p style="text-align: justify;">Теперь можно приступить непосредственно к настройке. Правила шейпера строятся на основе файлов, которые нужно создавать в каталоге <u>/etc/sysconfig/htb</u>, отсюда их будет читать htb.init и строить правила для утилиты <b>tc</b>. Напомню, что канал у нас 20/5 мегабит, примерно 10 компьютеров в сети, исходя из этого ниже будут приведены файлы конфигурации с пояснением что они описывают.</p>
<p style="text-align: justify;">Файл описания интерфейса, eth0 &#8212; интерфейс смотрящий в локальную сеть офиса. Адресация 192.168.0.1/24, маршрутизатор имеет IP 192.168.0.1, следующие за ним &#8212; компьютеры офиса. Указывается класс, которым будет шейпиться трафик, не попавший ни под одно правило шейпера.</p>
<p><u>/etc/sysconfig/htb/eth0</u></p>
<div class="codecolorer-container text default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">DEFAULT=9</div></div>
<p style="text-align: justify;">Далее файл описания корневого класса интерфейса, указывается физическая скорость интерфейса, в данном случае это 100 мегабит.</p>
<p><u>/etc/sysconfig/htb/eth0-2.root</u></p>
<div class="codecolorer-container text default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">RATE=100Mbit</div></div>
<p style="text-align: justify;">Вначале необходимо нарезать скорость для трафика, исходящего с самого роутера, например если на нём установлен файл-сервер, можно дать скорость большую чем в Интернет, причём эта скорость не повлияет на скорость работы в сети Интернет. 100 &#8212; 20 мегабит, ну и 10 можно оставить на служебные пакеты и т. п., чтобы не образовалась планка (полная загрузка интерфейса), и работа оставалась комфортной, получается 70 мегабит. Скорость с файл-сервера можно тоже равномерно поделить между участниками сети, но в данном примере это опускается.</p>
<p><u>/etc/sysconfig/htb/eth0-2:4.from_router_to_network</u></p>
<div class="codecolorer-container text default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">RATE=70Mbit<br />
PRIO=4<br />
LEAF=sfq<br />
RULE=192.168.0.0/24,</div></div>
<p style="text-align: justify;">Теперь очередь описания класса трафика из сети Интернет. Один мегабит останется для трафика не попавшего в правила, 19 мегабит остаётся описывается. Тут приоритет указан больше чем в локальном трафике с роутера, чем он больше, тем обрабатывается позже.</p>
<p><u>/etc/sysconfig/htb/eth0-2:5.to_network</u></p>
<div class="codecolorer-container text default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">RATE=19Mbit<br />
PRIO=5</div></div>
<p style="text-align: justify;">Теперь непосредственно сами правила для компьютеров сети. Максимальная скорость на один компьютер 19 мегабит, гарантированная &#8212; один мегабит. Таких файлов нужно создать по кличеству компьютеров в сети, последнее число &#8212; это 1000 + последний октет IP-адреса. И в самом файле в RULE указан IP-адрес компьютера. Входящий трафик на сам роутер не шейпится, это можно сделать, но метод в данном примере не рассматривается.</p>
<p><u>/etc/sysconfig/htb/eth0-2:5:1002</u></p>
<div class="codecolorer-container text default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">CEIL=19Mbit<br />
RATE=1Mbit<br />
PRIO=5<br />
LEAF=sfq<br />
RULE=192.168.0.2</div></div>
<p style="text-align: justify;">Тот трафик, который не попал в предыдущие правила &#8212; шейпится на скорости 1 мегабит.</p>
<p><u>/etc/sysconfig/htb/eth0-2:9.default</u></p>
<div class="codecolorer-container text default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">RATE=1Mbit<br />
PRIO=5<br />
LEAF=sfq</div></div>
<p style="text-align: justify;">Теперь исходящий трафик. В принципе то же самое, интерфейс ppp0, скорость 5 мегабит, трафику не попавшему под правила даётся 128 килобит (последний файл), остальным от 512 килобит до 5 мегабит. Трафик с роутера также будет шейпиться.</p>
<p><u>/etc/sysconfig/htb/ppp0</u></p>
<div class="codecolorer-container text default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">DEFAULT=9</div></div>
<p><u>/etc/sysconfig/htb/ppp0-2.root</u></p>
<div class="codecolorer-container text default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">RATE=100Mbit</div></div>
<p><u>/etc/sysconfig/htb/ppp0-2:5.from_network</u></p>
<div class="codecolorer-container text default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">RATE=5Mbit<br />
PRIO=5</div></div>
<p style="text-align: justify;">Так как исходящий трафик у нас натится (SNAT, MASQUERADE) в один внешний IP-адрес, не получится строить правила на основе IP-адресов. Поэтому будут использованы метки, которые будут ставиться фаерволом (iptables), об этом ниже. Таких правил нужно создать по количеству компьютеров в сети, опять же последняя цифра это 1000 + последний октет IP-адреса, метка (MARK) имеет такое же значение.</p>
<p><u>/etc/sysconfig/htb/ppp0-2:5:1001</u></p>
<div class="codecolorer-container text default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">CEIL=5Mbit<br />
RATE=512Kbit<br />
PRIO=5<br />
LEAF=sfq<br />
MARK=1001</div></div>
<p><u>/etc/sysconfig/htb/ppp0-2:9.default</u></p>
<div class="codecolorer-container text default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">RATE=128Kbit<br />
PRIO=5<br />
LEAF=sfq</div></div>
<p style="text-align: justify;">Теперь о метках. В iptables нужно пометить исходящий трафик, делается это следующим правилом в таблице mangle:</p>
<div class="codecolorer-container text default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">-A PREROUTING -s 192.168.0.1 -j MARK --set-mark 1001</div></div>
<p style="text-align: justify;">Для каждого компьютера &#8212; своё правило. В CentOS (RHEL, Fedora) правила фаерволла обычно находятся в файле <u>/etc/sysconfig/iptables</u>, после правки нужно применить изменения командой:</p>
<div class="codecolorer-container bash default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="bash codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #000000; font-weight: bold;">/</span>etc<span style="color: #000000; font-weight: bold;">/</span>init.d<span style="color: #000000; font-weight: bold;">/</span>iptables restart</div></div>
<p style="text-align: justify;">В Debian (Ubuntu) можно сделать так. Снять текущую конфигурацию в файл:</p>
<div class="codecolorer-container text default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">iptables-save &gt; /etc/sysconfig/iptables</div></div>
<p style="text-align: justify;">Поправить и применить:</p>
<div class="codecolorer-container text default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">iptables-restore &lt; /etc/sysconfig/iptables</div></div>
<p style="text-align: justify;">Данные команды работают и в CentOS (RHEL, Fedora), если нужны. Далее. Настройка окончена, теперь нужно проверить правильность нашей конфигурации:</p>
<div class="codecolorer-container bash default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="bash codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #000000; font-weight: bold;">/</span>etc<span style="color: #000000; font-weight: bold;">/</span>init.d<span style="color: #000000; font-weight: bold;">/</span>htb compile</div></div>
<p style="text-align: justify;">Если ошибок нет &#8212; будет видно что же построил скрипт htb.init для системы на основе файлов конфигурации. Теперь можно запустить шейпер:</p>
<div class="codecolorer-container bash default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="bash codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #000000; font-weight: bold;">/</span>etc<span style="color: #000000; font-weight: bold;">/</span>init.d<span style="color: #000000; font-weight: bold;">/</span>htb start</div></div>
<p style="text-align: justify;">Остался один нюанс. Соединение с Интернет в данном примере производится по PPP, в случае если используется непосредственное подключение &#8212; дальше можно не читать. Но интерфейс PPP (ppp0) может падать (переподключение, пропадание связи), при падении интерфейса, все правила шейпера на нём будут сброшены. Следующий скрипт будет проверять наличие PPP-интерфейса и наличие на нём правил, если правил не будет, он перезапустит htb.init.</p>
<p><u>/usr/local/sbin/htb_check</u></p>
<div class="codecolorer-container bash default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;height:300px;"><div class="bash codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #666666; font-style: italic;">#!/bin/bash</span><br />
<br />
<span style="color: #666666; font-style: italic;">#################################################################################</span><br />
<span style="color: #666666; font-style: italic;">#</span><br />
<span style="color: #666666; font-style: italic;"># Проверка наличия правил шейпера на интерфейсе, перезапуск htb.init при</span><br />
<span style="color: #666666; font-style: italic;"># необходимости</span><br />
<span style="color: #666666; font-style: italic;">#</span><br />
<span style="color: #666666; font-style: italic;">#################################################################################</span><br />
<br />
<span style="color: #666666; font-style: italic;"># Проверяемый интерфейс</span><br />
<span style="color: #007800;">DEVICE</span>=<span style="color: #ff0000;">'ppp0'</span><br />
<br />
<span style="color: #666666; font-style: italic;"># Проверка наличия интерфейса</span><br />
<span style="color: #007800;">TEST_PPP</span>=<span style="color: #000000; font-weight: bold;">`/</span>sbin<span style="color: #000000; font-weight: bold;">/</span><span style="color: #c20cb9; font-weight: bold;">ip link</span> show dev <span style="color: #007800;">$DEVICE</span> <span style="color: #000000;">2</span><span style="color: #000000; font-weight: bold;">&gt;</span> <span style="color: #000000; font-weight: bold;">/</span>dev<span style="color: #000000; font-weight: bold;">/</span>null<span style="color: #000000; font-weight: bold;">`</span><br />
<span style="color: #000000; font-weight: bold;">if</span> <span style="color: #7a0874; font-weight: bold;">&#91;</span> <span style="color: #ff0000;">&quot;<span style="color: #007800;">$TEST_PPP</span>&quot;</span> <span style="color: #000000; font-weight: bold;">!</span>= <span style="color: #ff0000;">&quot;&quot;</span> <span style="color: #7a0874; font-weight: bold;">&#93;</span> ; <span style="color: #000000; font-weight: bold;">then</span><br />
&nbsp; <span style="color: #666666; font-style: italic;"># Проверка наличия правил шейпера на интерфейсе</span><br />
&nbsp; <span style="color: #007800;">TEST_HTB</span>=<span style="color: #000000; font-weight: bold;">`/</span>sbin<span style="color: #000000; font-weight: bold;">/</span>tc class show dev <span style="color: #007800;">$DEVICE</span><span style="color: #000000; font-weight: bold;">`</span><br />
&nbsp; <span style="color: #000000; font-weight: bold;">if</span> <span style="color: #7a0874; font-weight: bold;">&#91;</span> <span style="color: #ff0000;">&quot;<span style="color: #007800;">$TEST_HTB</span>&quot;</span> == <span style="color: #ff0000;">&quot;&quot;</span> <span style="color: #7a0874; font-weight: bold;">&#93;</span> ; <span style="color: #000000; font-weight: bold;">then</span><br />
&nbsp; &nbsp; <span style="color: #666666; font-style: italic;"># Если правил шейпера на интерфейсе нет - перезапуск htb.init</span><br />
&nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">/</span>etc<span style="color: #000000; font-weight: bold;">/</span>init.d<span style="color: #000000; font-weight: bold;">/</span>htb restart<br />
&nbsp; <span style="color: #000000; font-weight: bold;">fi</span><br />
<span style="color: #000000; font-weight: bold;">fi</span></div></div>
<p style="text-align: justify;">Файл нужно сделать запускаемым:</p>
<div class="codecolorer-container bash default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="bash codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #c20cb9; font-weight: bold;">chmod</span> <span style="color: #000000;">755</span> <span style="color: #000000; font-weight: bold;">/</span>usr<span style="color: #000000; font-weight: bold;">/</span>local<span style="color: #000000; font-weight: bold;">/</span>sbin<span style="color: #000000; font-weight: bold;">/</span>htb_check</div></div>
<p style="text-align: justify;">Запускаться он будет по cron, каждую минуту, для этого в файле /etc/crontab добавляются следующие строки:</p>
<div class="codecolorer-container bash default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="bash codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #666666; font-style: italic;"># Проверка наличия правил шейпера на интерфейсе, перезапуск htb.init при</span><br />
<span style="color: #666666; font-style: italic;"># необходимости</span><br />
<span style="color: #000000; font-weight: bold;">*</span> <span style="color: #000000; font-weight: bold;">*</span> <span style="color: #000000; font-weight: bold;">*</span> <span style="color: #000000; font-weight: bold;">*</span> <span style="color: #000000; font-weight: bold;">*</span> root <span style="color: #000000; font-weight: bold;">/</span>usr<span style="color: #000000; font-weight: bold;">/</span>local<span style="color: #000000; font-weight: bold;">/</span>sbin<span style="color: #000000; font-weight: bold;">/</span>htb_check <span style="color: #000000; font-weight: bold;">&gt;</span> <span style="color: #000000; font-weight: bold;">/</span>dev<span style="color: #000000; font-weight: bold;">/</span>null</div></div>
<p style="text-align: justify;">На этом всё, надеюсь кому-то данное HOWTO пригодится, предложения, пожелания и замечания готов обсудить в комментариях к статье.</p>
]]></content:encoded>
			<wfw:commentRss>http://ras.pl.ua/howto_configure_htb_init_on_office_router/feed/</wfw:commentRss>
		<slash:comments>13</slash:comments>
		</item>
		<item>
		<title>Установка и настройка transmission-daemon в CentOS 5</title>
		<link>http://ras.pl.ua/install_and_configure_transmission-daemon_in_centos/</link>
		<comments>http://ras.pl.ua/install_and_configure_transmission-daemon_in_centos/#comments</comments>
		<pubDate>Wed, 27 Jan 2010 11:57:59 +0000</pubDate>
		<dc:creator>ras</dc:creator>
				<category><![CDATA[Программное обеспечение]]></category>
		<category><![CDATA[centos]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[torrent]]></category>
		<category><![CDATA[transmission]]></category>
		<category><![CDATA[transmission-daemon]]></category>

		<guid isPermaLink="false">http://ras.pl.ua/?p=150</guid>
		<description><![CDATA[Есть у меня домашний Linux-сервер под CentOS, выполняющий роль шлюза в сеть Интернет, файлового хранилища с FTP и Samba, и другие функции, необходимые системному администратору, которые проблематично реализовать на базе аппаратного маршрутизатора. Вот появилась идея установить и демон torrent-клиент на данный сервер, чтобы качал себе и раздавал необходимые мне файлы. Раньше у меня был опыт [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;">Есть у меня домашний Linux-сервер под CentOS, выполняющий роль шлюза в сеть Интернет, файлового хранилища с FTP и Samba, и другие функции, необходимые системному администратору, которые проблематично реализовать на базе аппаратного маршрутизатора. Вот появилась идея установить и демон torrent-клиент на данный сервер, чтобы качал себе и раздавал необходимые мне файлы.<span id="more-150"></span></p>
<p style="text-align: justify;">Раньше у меня был опыт работы с <a href="http://mldonkey.sourceforge.net/" target="_blank">MLDonkey</a>, но вспоминая его ужасный web-интерфейс и монстроидальность &#8212; отказался сразу. Далее взгляд пал на <a href="http://libtorrent.rakshasa.no/" target="_blank">rTorrent</a>, знакомый его использовал на маршрутизаторе D-Link DIR-320 с модифицированной прошивкой от Олега. Очень порадовал красивый web-интерфейс, похожий на <a href="http://www.utorrent.com/" target="_blank">µTorrent</a>. Но, т. к. это всё-таки не демон, а консольное приложение, глянув на метод его запуска и связывания с web-интерфейсом &#8212; решено было отказаться и от него.</p>
<p style="text-align: justify;">В итоге выбор пал на <a href="http://www.transmissionbt.com/" target="_blank">Transmission</a>, опять же, тот же знакомый уже его успешно использовал, так же выяснилось, что данный клиент имеет демон для запуска без GUI. Сначала была установлена и настроена старая версия из репозитария EPEL transmission-1.34-1.el5.x86_64, но работать с данной версией было крайне неприятно, многое не поддерживалось, GUI-клиент не совсем корректно работал с данной версией, не была доступна часть функций. Собрать новую версию обычным способом не получалось из-за того, что в CentOS используются более старые версии нужных для сборки transmission библиотек. Ещё одним фактором использования новой версии является поддержка ей списка трекеров. На этом заканчивается лирическое отступление, опишу сборку и настройку.</p>
<p><strong>Сборка</strong></p>
<p>Установка необходимых для сборки пакетов:</p>
<div class="codecolorer-container bash default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="bash codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #c20cb9; font-weight: bold;">yum install</span> <span style="color: #c20cb9; font-weight: bold;">gcc</span> gcc-c++ <span style="color: #c20cb9; font-weight: bold;">m4</span> <span style="color: #c20cb9; font-weight: bold;">make</span> <span style="color: #c20cb9; font-weight: bold;">automake</span> libtool <span style="color: #c20cb9; font-weight: bold;">gettext</span> openssl-devel</div></div>
<p>Подготовка каталога, получение исходного кода:</p>
<div class="codecolorer-container bash default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="bash codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #7a0874; font-weight: bold;">cd</span> <span style="color: #000000; font-weight: bold;">/</span>usr<span style="color: #000000; font-weight: bold;">/</span>local<span style="color: #000000; font-weight: bold;">/</span>src<br />
<span style="color: #c20cb9; font-weight: bold;">mkdir</span> transmission<br />
<span style="color: #7a0874; font-weight: bold;">cd</span> transmission<br />
<br />
<span style="color: #c20cb9; font-weight: bold;">wget</span> http:<span style="color: #000000; font-weight: bold;">//</span>pkgconfig.freedesktop.org<span style="color: #000000; font-weight: bold;">/</span>releases<span style="color: #000000; font-weight: bold;">/</span>pkg-config-<span style="color: #000000;">0.23</span>.tar.gz<br />
<span style="color: #c20cb9; font-weight: bold;">wget</span> http:<span style="color: #000000; font-weight: bold;">//</span>ftp.gnome.org<span style="color: #000000; font-weight: bold;">/</span>pub<span style="color: #000000; font-weight: bold;">/</span>gnome<span style="color: #000000; font-weight: bold;">/</span>sources<span style="color: #000000; font-weight: bold;">/</span>intltool<span style="color: #000000; font-weight: bold;">/</span><span style="color: #000000;">0.40</span><span style="color: #000000; font-weight: bold;">/</span>intltool-0.40.6.tar.gz<br />
<span style="color: #c20cb9; font-weight: bold;">wget</span> http:<span style="color: #000000; font-weight: bold;">//</span>curl.haxx.se<span style="color: #000000; font-weight: bold;">/</span>download<span style="color: #000000; font-weight: bold;">/</span>curl-7.19.7.tar.gz<br />
<span style="color: #c20cb9; font-weight: bold;">wget</span> http:<span style="color: #000000; font-weight: bold;">//</span>mirrors.m0k.org<span style="color: #000000; font-weight: bold;">/</span>transmission<span style="color: #000000; font-weight: bold;">/</span>files<span style="color: #000000; font-weight: bold;">/</span>transmission-<span style="color: #000000;">1.80</span>.tar.bz2<br />
<br />
<span style="color: #c20cb9; font-weight: bold;">tar</span> <span style="color: #660033;">-xzfv</span> pkg-config-<span style="color: #000000;">0.23</span>.tar.gz<br />
<span style="color: #c20cb9; font-weight: bold;">tar</span> <span style="color: #660033;">-xzfv</span> intltool-0.40.6.tar.gz<br />
<span style="color: #c20cb9; font-weight: bold;">tar</span> <span style="color: #660033;">-xzfv</span> curl-7.19.7.tar.gz<br />
<span style="color: #c20cb9; font-weight: bold;">tar</span> <span style="color: #660033;">-xjfv</span> transmission-<span style="color: #000000;">1.80</span>.tar.bz2</div></div>
<p>Сборка:</p>
<div class="codecolorer-container bash default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="bash codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #7a0874; font-weight: bold;">cd</span> pkg-config-<span style="color: #000000;">0.23</span><br />
.<span style="color: #000000; font-weight: bold;">/</span>configure<br />
<span style="color: #c20cb9; font-weight: bold;">make</span><br />
<span style="color: #c20cb9; font-weight: bold;">make</span> <span style="color: #c20cb9; font-weight: bold;">install</span><br />
<br />
<span style="color: #7a0874; font-weight: bold;">cd</span> ..<span style="color: #000000; font-weight: bold;">/</span>intltool-0.40.6<br />
.<span style="color: #000000; font-weight: bold;">/</span>configure<br />
<span style="color: #c20cb9; font-weight: bold;">make</span><br />
<span style="color: #c20cb9; font-weight: bold;">make</span> <span style="color: #c20cb9; font-weight: bold;">install</span><br />
<br />
<span style="color: #7a0874; font-weight: bold;">cd</span> ..<span style="color: #000000; font-weight: bold;">/</span>curl-7.19.7<br />
.<span style="color: #000000; font-weight: bold;">/</span>configure<br />
<span style="color: #c20cb9; font-weight: bold;">make</span><br />
<span style="color: #c20cb9; font-weight: bold;">make</span> <span style="color: #c20cb9; font-weight: bold;">install</span><br />
<br />
<span style="color: #7a0874; font-weight: bold;">export</span> <span style="color: #007800;">PKG_CONFIG_PATH</span>=<span style="color: #000000; font-weight: bold;">/</span>usr<span style="color: #000000; font-weight: bold;">/</span>local<span style="color: #000000; font-weight: bold;">/</span>lib<span style="color: #000000; font-weight: bold;">/</span>pkgconfig<br />
<span style="color: #7a0874; font-weight: bold;">cd</span> ..<span style="color: #000000; font-weight: bold;">/</span>transmission-<span style="color: #000000;">1.80</span><br />
.<span style="color: #000000; font-weight: bold;">/</span>configure <span style="color: #660033;">--enable-daemon</span><br />
<span style="color: #c20cb9; font-weight: bold;">make</span><br />
<span style="color: #c20cb9; font-weight: bold;">make</span> <span style="color: #c20cb9; font-weight: bold;">install</span></div></div>
<p>Настройка web-интерфейса для httpd, файл <u>/etc/httpd/conf/httpd.conf</u>:</p>
<div class="codecolorer-container text default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">Alias /transmission/web /usr/local/share/transmission/web<br />
RewriteEngine on<br />
RewriteRule /transmission[/]?$ /transmission/web [R=permanent]<br />
ProxyPass /transmission http://127.0.0.1:9091/transmission<br />
ProxyPassReverse /transmission http://127.0.0.1:9091/transmission<br />
&lt;Location /transmission&gt;<br />
&nbsp; Options None<br />
&nbsp; Order allow,deny<br />
&nbsp; Allow from 127.0.0.1<br />
&nbsp; &lt;IfModule expires_module&gt;<br />
&nbsp; &nbsp; ExpiresActive On<br />
&nbsp; &nbsp; ExpiresByType image/gif A43200<br />
&nbsp; &nbsp; ExpiresByType image/png A43200<br />
&nbsp; &nbsp; ExpiresByType application/javascript A43200<br />
&nbsp; &nbsp; ExpiresByType text/css A43200<br />
&nbsp; &lt;/IfModule&gt;<br />
&lt;/Location&gt;</div></div>
<p>В &#171;Allow from&#187; укажите IP, с которого вы хотите получить доступ, в своём случае, я использовал &#171;Authtype Basic&#187;, т. е. захожу по паролю. Перезапуск httpd (если возникли ошибки, смотрим каких модулей не хватает, подправляем файл конфигурации):</p>
<div class="codecolorer-container bash default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="bash codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">service httpd restart</div></div>
<p>Далее я столкнулся с тем, что не нашёл нормального init-скрипта, написал свой. Он ещё находится в стадии тестирования, но как показала практика работает нормально, запуск демона будет от пользователя root. Да, знаю что это не правильно, но пока так <u>/etc/rc.d/init.d/transmission</u>:</p>
<div class="codecolorer-container bash default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;height:300px;"><div class="bash codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #666666; font-style: italic;">#!/bin/sh</span><br />
<span style="color: #666666; font-style: italic;">#</span><br />
<span style="color: #666666; font-style: italic;"># transmission Start/Stop the transmission-daemon daemon.</span><br />
<span style="color: #666666; font-style: italic;">#</span><br />
<span style="color: #666666; font-style: italic;"># chkconfig: 2345 99 01</span><br />
<span style="color: #666666; font-style: italic;"># description: transmission-daemon is a daemon-based Transmission session</span><br />
<span style="color: #666666; font-style: italic;">#              that can be controlled via RPC commands from</span><br />
<span style="color: #666666; font-style: italic;">#              transmission’s web interface or transmission-remote</span><br />
<span style="color: #666666; font-style: italic;"># processname: transmission-daemon</span><br />
<span style="color: #666666; font-style: italic;"># pidfile: /var/run/transmission.pid</span><br />
<br />
<span style="color: #666666; font-style: italic;"># Source function library.</span><br />
. <span style="color: #000000; font-weight: bold;">/</span>etc<span style="color: #000000; font-weight: bold;">/</span>init.d<span style="color: #000000; font-weight: bold;">/</span>functions<br />
<br />
<span style="color: #007800;">options</span>=<span style="color: #ff0000;">'--allowed 127.0.0.1 --no-auth'</span><br />
<br />
<span style="color: #007800;">processname</span>=<span style="color: #ff0000;">'/usr/local/bin/transmission-daemon'</span><br />
<span style="color: #007800;">lockfile</span>=<span style="color: #ff0000;">'/var/lock/subsys/transmission'</span><br />
<span style="color: #007800;">pidfile</span>=<span style="color: #ff0000;">'/var/run/transmission.pid'</span><br />
<span style="color: #007800;">user</span>=<span style="color: #ff0000;">'root'</span><br />
<span style="color: #007800;">home</span>=<span style="color: #000000; font-weight: bold;">`/</span>bin<span style="color: #000000; font-weight: bold;">/</span><span style="color: #c20cb9; font-weight: bold;">grep</span> <span style="color: #660033;">-E</span> <span style="color: #ff0000;">&quot;^<span style="color: #007800;">$user</span>:&quot;</span> <span style="color: #000000; font-weight: bold;">/</span>etc<span style="color: #000000; font-weight: bold;">/</span><span style="color: #c20cb9; font-weight: bold;">passwd</span> <span style="color: #000000; font-weight: bold;">|</span> <span style="color: #000000; font-weight: bold;">/</span>bin<span style="color: #000000; font-weight: bold;">/</span><span style="color: #c20cb9; font-weight: bold;">cut</span> <span style="color: #660033;">-d</span> : <span style="color: #660033;">-f</span> <span style="color: #000000;">6</span><span style="color: #000000; font-weight: bold;">`</span><br />
<br />
start<span style="color: #7a0874; font-weight: bold;">&#40;</span><span style="color: #7a0874; font-weight: bold;">&#41;</span> <span style="color: #7a0874; font-weight: bold;">&#123;</span><br />
&nbsp; <span style="color: #7a0874; font-weight: bold;">export</span> <span style="color: #007800;">HOME</span>=<span style="color: #007800;">$home</span><br />
&nbsp; <span style="color: #7a0874; font-weight: bold;">echo</span> <span style="color: #660033;">-n</span> $<span style="color: #ff0000;">&quot;Starting <span style="color: #007800;">$processname</span>: &quot;</span><br />
&nbsp; <span style="color: #000000; font-weight: bold;">if</span> <span style="color: #7a0874; font-weight: bold;">&#91;</span> <span style="color: #660033;">-e</span> <span style="color: #007800;">$lockfile</span> <span style="color: #7a0874; font-weight: bold;">&#93;</span>; <span style="color: #000000; font-weight: bold;">then</span><br />
&nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">if</span> <span style="color: #7a0874; font-weight: bold;">&#91;</span> <span style="color: #660033;">-e</span> <span style="color: #007800;">$pidfile</span> <span style="color: #7a0874; font-weight: bold;">&#93;</span> <span style="color: #000000; font-weight: bold;">&amp;&amp;</span> <span style="color: #7a0874; font-weight: bold;">&#91;</span> <span style="color: #660033;">-e</span> <span style="color: #000000; font-weight: bold;">/</span>proc<span style="color: #000000; font-weight: bold;">/`</span><span style="color: #c20cb9; font-weight: bold;">cat</span> <span style="color: #007800;">$pidfile</span><span style="color: #000000; font-weight: bold;">`</span> <span style="color: #7a0874; font-weight: bold;">&#93;</span>; <span style="color: #000000; font-weight: bold;">then</span><br />
&nbsp; &nbsp; &nbsp; <span style="color: #7a0874; font-weight: bold;">echo</span> <span style="color: #660033;">-n</span> $<span style="color: #ff0000;">&quot;cannot start <span style="color: #007800;">$processname</span>: <span style="color: #007800;">$processname</span> is already running.&quot;</span><br />
&nbsp; &nbsp; &nbsp; failure $<span style="color: #ff0000;">&quot;cannot start <span style="color: #007800;">$processname</span>: <span style="color: #007800;">$processname</span> already running.&quot;</span><br />
&nbsp; &nbsp; &nbsp; <span style="color: #7a0874; font-weight: bold;">echo</span><br />
&nbsp; &nbsp; &nbsp; <span style="color: #7a0874; font-weight: bold;">return</span> <span style="color: #000000;">1</span><br />
&nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">fi</span><br />
&nbsp; <span style="color: #000000; font-weight: bold;">fi</span><br />
&nbsp; daemon <span style="color: #007800;">$processname</span> <span style="color: #007800;">$options</span><br />
&nbsp; <span style="color: #007800;">RETVAL</span>=<span style="color: #007800;">$?</span><br />
&nbsp; <span style="color: #7a0874; font-weight: bold;">echo</span><br />
&nbsp; <span style="color: #7a0874; font-weight: bold;">&#91;</span> <span style="color: #007800;">$RETVAL</span> <span style="color: #660033;">-eq</span> <span style="color: #000000;">0</span> <span style="color: #7a0874; font-weight: bold;">&#93;</span> <span style="color: #000000; font-weight: bold;">&amp;&amp;</span> <span style="color: #c20cb9; font-weight: bold;">touch</span> <span style="color: #007800;">$lockfile</span><br />
&nbsp; <span style="color: #7a0874; font-weight: bold;">&#91;</span> <span style="color: #007800;">$RETVAL</span> <span style="color: #660033;">-eq</span> <span style="color: #000000;">0</span> <span style="color: #7a0874; font-weight: bold;">&#93;</span> <span style="color: #000000; font-weight: bold;">&amp;&amp;</span> <span style="color: #c20cb9; font-weight: bold;">ps</span> ax <span style="color: #000000; font-weight: bold;">|</span> <span style="color: #c20cb9; font-weight: bold;">grep</span> <span style="color: #660033;">-w</span> <span style="color: #007800;">$processname</span> <span style="color: #000000; font-weight: bold;">|</span> <span style="color: #c20cb9; font-weight: bold;">grep</span> <span style="color: #660033;">-v</span> <span style="color: #c20cb9; font-weight: bold;">grep</span> <span style="color: #000000; font-weight: bold;">|</span> <span style="color: #c20cb9; font-weight: bold;">awk</span> <span style="color: #ff0000;">'{print($1)}'</span> <span style="color: #000000; font-weight: bold;">&gt;</span> <span style="color: #007800;">$pidfile</span><br />
&nbsp; <span style="color: #7a0874; font-weight: bold;">return</span> <span style="color: #007800;">$RETVAL</span><br />
<span style="color: #7a0874; font-weight: bold;">&#125;</span><br />
<br />
stop<span style="color: #7a0874; font-weight: bold;">&#40;</span><span style="color: #7a0874; font-weight: bold;">&#41;</span> <span style="color: #7a0874; font-weight: bold;">&#123;</span><br />
&nbsp; <span style="color: #7a0874; font-weight: bold;">export</span> <span style="color: #007800;">HOME</span>=<span style="color: #007800;">$home</span><br />
&nbsp; <span style="color: #7a0874; font-weight: bold;">echo</span> <span style="color: #660033;">-n</span> $<span style="color: #ff0000;">&quot;Stopping <span style="color: #007800;">$processname</span>: &quot;</span><br />
&nbsp; <span style="color: #000000; font-weight: bold;">if</span> <span style="color: #7a0874; font-weight: bold;">&#91;</span> <span style="color: #000000; font-weight: bold;">!</span> <span style="color: #660033;">-e</span> <span style="color: #007800;">$lockfile</span> <span style="color: #7a0874; font-weight: bold;">&#93;</span>; <span style="color: #000000; font-weight: bold;">then</span><br />
&nbsp; &nbsp; <span style="color: #7a0874; font-weight: bold;">echo</span> <span style="color: #660033;">-n</span> $<span style="color: #ff0000;">&quot;cannot stop <span style="color: #007800;">$processname</span>: <span style="color: #007800;">$processname</span> is not running.&quot;</span><br />
&nbsp; &nbsp; failure $<span style="color: #ff0000;">&quot;cannot stop <span style="color: #007800;">$processname</span>: <span style="color: #007800;">$processname</span> is not running.&quot;</span><br />
&nbsp; &nbsp; <span style="color: #7a0874; font-weight: bold;">echo</span><br />
&nbsp; &nbsp; <span style="color: #7a0874; font-weight: bold;">return</span> <span style="color: #000000;">1</span>;<br />
&nbsp; <span style="color: #000000; font-weight: bold;">fi</span><br />
&nbsp; killproc <span style="color: #007800;">$processname</span><br />
&nbsp; <span style="color: #007800;">RETVAL</span>=<span style="color: #007800;">$?</span><br />
&nbsp; <span style="color: #7a0874; font-weight: bold;">echo</span><br />
&nbsp; <span style="color: #7a0874; font-weight: bold;">&#91;</span> <span style="color: #007800;">$RETVAL</span> <span style="color: #660033;">-eq</span> <span style="color: #000000;">0</span> <span style="color: #7a0874; font-weight: bold;">&#93;</span> <span style="color: #000000; font-weight: bold;">&amp;&amp;</span> <span style="color: #c20cb9; font-weight: bold;">rm</span> <span style="color: #660033;">-f</span> <span style="color: #007800;">$lockfile</span><br />
&nbsp; <span style="color: #7a0874; font-weight: bold;">&#91;</span> <span style="color: #007800;">$RETVAL</span> <span style="color: #660033;">-eq</span> <span style="color: #000000;">0</span> <span style="color: #7a0874; font-weight: bold;">&#93;</span> <span style="color: #000000; font-weight: bold;">&amp;&amp;</span> <span style="color: #c20cb9; font-weight: bold;">rm</span> <span style="color: #660033;">-f</span> <span style="color: #007800;">$pidfile</span><br />
&nbsp; <span style="color: #7a0874; font-weight: bold;">return</span> <span style="color: #007800;">$RETVAL</span><br />
<span style="color: #7a0874; font-weight: bold;">&#125;</span><br />
<br />
<span style="color: #000000; font-weight: bold;">case</span> <span style="color: #007800;">$1</span> <span style="color: #000000; font-weight: bold;">in</span><br />
&nbsp; start<span style="color: #7a0874; font-weight: bold;">&#41;</span><br />
&nbsp; &nbsp; start<br />
&nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">;;</span><br />
&nbsp; stop<span style="color: #7a0874; font-weight: bold;">&#41;</span><br />
&nbsp; &nbsp; stop<br />
&nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">;;</span><br />
&nbsp; restart<span style="color: #7a0874; font-weight: bold;">&#41;</span><br />
&nbsp; &nbsp; stop<br />
&nbsp; &nbsp; start<br />
&nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">;;</span><br />
&nbsp; status<span style="color: #7a0874; font-weight: bold;">&#41;</span><br />
&nbsp; &nbsp; status <span style="color: #007800;">$processname</span><br />
&nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">;;</span><br />
&nbsp; <span style="color: #000000; font-weight: bold;">*</span><span style="color: #7a0874; font-weight: bold;">&#41;</span><br />
&nbsp; &nbsp; <span style="color: #7a0874; font-weight: bold;">echo</span> <span style="color: #ff0000;">&quot;Usage: $0 start|stop|restart|status&quot;</span><br />
&nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">;;</span><br />
<span style="color: #000000; font-weight: bold;">esac</span></div></div>
<p>Установка прав на запуск:</p>
<div class="codecolorer-container bash default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="bash codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #c20cb9; font-weight: bold;">chmod</span> <span style="color: #000000;">755</span> <span style="color: #000000; font-weight: bold;">/</span>etc<span style="color: #000000; font-weight: bold;">/</span>rc.d<span style="color: #000000; font-weight: bold;">/</span>init.d<span style="color: #000000; font-weight: bold;">/</span>transmission</div></div>
<p>Добавление в автозапуск:</p>
<div class="codecolorer-container bash default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="bash codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">chkconfig transmission on</div></div>
<p>Запуск:</p>
<div class="codecolorer-container bash default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="bash codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">service transmission start</div></div>
<p>Если всё выполнено правильно, демон запущен и работает.</p>
<p><strong>Настройка</strong></p>
<p style="text-align: justify;">Теперь нужно настроить демон, основные настройки доступны с web-интерфейса. Нужно открыть в браузере <u>http://ваш-web-сервер/transmission</u>, слева внизу есть кнопка настроек, выбрать Preferences. Указать путь куда будут сохраняться файлы, номер порта и не забыть открыть его в фаерволле для входящих соединений. На второй вкладке указать ограничение скорости. Всё, можно работать, добавлять torrent-файлы, наблюдать процесс скачивания.</p>
<p style="text-align: justify;">Все настройки сохраняются в каталоге <u>/root/.config/transmission-daemon</u>. Там же хранятся torrent-файлы и информация о текущих загрузках.</p>
<p style="text-align: justify;">Ещё я столкнулся с тем, что со временем демон начинает отъедать много ресурсов процессора, ест память, перезапуск помогает. Поэтому небольшой костыль в <u>/etc/crontab</u>:</p>
<div class="codecolorer-container text default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">05 3 * * * root /etc/rc.d/init.d/transmission restart &gt;/dev/null 2&gt;&amp;1</div></div>
<p><strong>GUI</strong></p>
<p style="text-align: justify;">Есть неплохой GUI-интерфейс для transmission-daemon кроме родного &#8212; <a href="http://code.google.com/p/transmisson-remote-gui/" target="_blank">Transmission Remote GUI</a>. Данный клиент является кроссплатформенным, есть сборки как под Linux, так и под Windows, написан на <a href="http://www.lazarus.freepascal.org/" target="_blank">Lazarus</a>. Для того, чтобы данный клиент мог подключиться к демону &#8212; я добавил в скрипт запуска, строку параметров после 127.0.0.1, через запятую &#8212; IP-адрес домашнего компьютера.</p>
<p><strong>Итог</strong></p>
<p style="text-align: justify;">В результате проделанной работы я получил довольно удобную систему: демон качает, по самбе получаю доступ к скачанным файлам. При работе с загрузками используется довольно удобный GUI.</p>
<p style="text-align: justify;">Готов выслушать замечания, ваши рекомендации по улучшению скрипта запуска, дополнения, уточнения материала данной статьи.</p>
<p><strong>Ссылки</strong></p>
<ul>
<li><a href="http://www.transmissionbt.com/" target="_blank">www.transmissionbt.com</a></li>
<li><a href="http://trac.transmissionbt.com/wiki/Building" target="_blank">trac.transmissionbt.com/wiki/Building</a></li>
<li><a href="http://code.google.com/p/transmisson-remote-gui/" target="_blank">code.google.com/p/transmisson-remote-gui</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://ras.pl.ua/install_and_configure_transmission-daemon_in_centos/feed/</wfw:commentRss>
		<slash:comments>31</slash:comments>
		</item>
	</channel>
</rss>

