Eve Torrent Download sunucusu inşaa edelim

transmissionÖnceki yazılarımda Atom anakart üzerine nasıl Ubuntu sunucu kurulacağını anlatmıştım. Bu gün sizlere bu sunucu üzerine Torrent Download sunucusu kuracağız. Bu sunucu için paket deposunda bulunan “tranmission” uygulamasının sunucu paketini kullanacağız.

Atom anakart tercih etmemin sebebi, daha önce de dile getirdiğim üzere düşük enerji tüketimi. Diyeceksiniz ki daha düşük enerji tüketimi için RaspberryPi gibi seçenekler varken neden atom kullanalım. Sebep basit, elde olanı değerlendirmek 🙂

Şimdi, daha önce kurulumunu tamamlamış olduğumuz Ubuntu sunucuya ister konsoldan, isterseniz SSH ile bağlantı kurarak işe başlıyoruz. Her şeyin yolunda gittiğini varsayarsak sunucumuzu artık “Headless” olarak (Monitörsüz, klavyesiz) uzaktan kullanabilmemiz lazım. O yüzden ben bu işlemleri yaparken SSH ile bağlantı kurarak yapacağım.

# ssh 192.168.1.10

(daha önceki yazılara istinaden sunucunun 192.168.1.10 IP’sinde olduğunu varsayıyorum)

Normal kullanıcı olarak sistem çağında değişiklik yapamayacağımız için “Super User” olmak gerek. Böylece paket kurulumu ve paket ayarlarının yapılmasında sorun yaşamayız.

#  sudo -s
[sudo] password for user:
root:~#

Paket kurulumlarından önce, eğer yaptığınız işlemler arasında uzun süre geçmişse (mesela bir gün) öncelikle paket depolarını güncelleyin ve eğer yeni güvenlik yamaları gelmişse onları uygulamak gerek.

root:~# apt-get update
…..
Fetched 2.606 kB in 14s (175 kB/s)
Reading package lists… Done

root:~# apt-get upgrade
Reading package lists… Done
Building dependency tree
Reading state information… Done
Calculating upgrade… Done
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
root:~#

Artık torrent sunucumuzu kurmaya hazırız. Torrent sunucusu kurmak için:

root:~# apt-get install transmission-daemon

Bu işlem sonucunda bağımlılıklardan dolayı ek olarak iki paket daha kurulacaktır: “transmission-cli, transmission-common”. Kurulum işlemi ile birlikte sisteme “debian-transmission” adında yeni kullanıcı ve grup eklenecektir. Bu bilginin neden gerekli olduğunu biraz sonra anlatacağım.

Kurulum biter bitmez sistem otomatik olarak transmission servisini çalıştıracaktır. Biz ise bu servisi durdurmak zorundayız. Çünkü servisi durdurmadan yapacağınız ayar değişiklikleri, servisi durdurmaya kalktığınızda programın yapısından dolayı mevcut ayarları üzerine yazarak önceki haline döndürecek şekilde ayarlanmıştır. Eğer servisi durdurmadan değişiklik yapıp servisi yeniden başlatırsanız ayar dosyasının eski haline döndüğünü görebilirsiniz.

root:~# service transmission-daemon stop

Servisi durdurduktan sonra, öncelikli olarak tranmission servisinin kullanmasını istediğimiz klasörleri ayarlamamız gerekli. Bu makinanın bir sunucu olduğunu göz önüne alırsak, Linux dizin hiyerarşisine göre “/srv” klasörünü kullanmamız doğru bir karar olacaktır. Ancak keyfinize göre bambaşka bir dizini kullanabilirsiniz de. Tabi ki bunlar ileride başınız iş açma potansiyeline sahip davranışlar olabilir.

root:~# cd /srv
root:/srv# mkdir -pv torrent/gelen torrent/indi

Oluşturmuş oduğumuz dizinler doğal olarak “root” kullanıcısına ve grubuna dahil olacaktır. Bu durumda transmission servisinin bu klasöre yazma ile ilgili problemleri olabilir. Sorunu aşmak için öncelikler “torrent” klasörü ve alt klasörlerinin erişim haklarını ayarlayarak doğru gruba dahil etmemiz gerekir;

root:/srv# chown root:debian-transmission torrent -R
root:/srv# chmod 775 torrent -R

Şimdi yapılandırma dosyasını ayarlamaya başlayabiliriz.

root:/srv# cd /etc/transmission-daemon

Öntanımlı yapılandırma dosyasını yedeklemek önemli. Herhangi bir aksilik durumunda yedekten geri dönmek gerekebilir.

root:/etc/transmission-daemon# cp settings.json settings.json.backup

Yapılandırma dosyasının yedeğini aldığımıza göre, metin tabanlı editör ile “settings.json” dosyasını düzenlemeye başlayalım:

root:/etc/transmission-daemon# nano settings.json

Yapılandırma dosyasındaki bazı satırların ayarlarını aşağıdaki yönergeleri takip ederek istediğiniz şekilde ayarlayabilirsiniz. Bu ayarlar şu an mevcut çalışan sistemden alınmıştır ve orjinal değerleri ile birlikte verilmektedir. Ayrıca ne işe yaradıklarına dair bilgi de eklenmiştir:

“alt-speed-down”: 1, (OD: 50, kB/s cinsinden alternatif Download hız ayarını belirtir)
“alt-speed-enabled”: true, (OD: false, alternatif hız ayarlarının kullanılıp kullanılmayacağını belirtir)
“alt-speed-time-begin”: 345,  (OD: 540, dakika cinsinden alternatif hız uygulamasının başlayacağı saati belirtir)
“alt-speed-time-enabled”: true, (OD: false, alternatif hız sürecinin başlatılıp başlatılmayacağını belirtir)
“alt-speed-time-end”: 5, (OD: 1020, dakika cinsinden alternatif hız sürecinin biteceği saati belirtir)
“alt-speed-up”: 1, (OD: 50, kB/s cinsinden Upload hızını belirtir)
“bind-address-ipv4”: “192.168.1.10”, (OD: 0.0.0.0, sunucunun dış IP adresini belirtir.)
“blocklist-enabled”: true, (OD: false, tercihen yalancı bağlantıları listesi kullanılıp kullanılmayacağını belirtir.
“blocklist-url”: “http://john.bitsurge.net/public/biglist.p2p.gz”, (OD: http://www.example.com/blocklist, yalancı bağlantı listesinin edinileceği adres)
“download-dir”: “/srv/torrent/indi”, (OD: /var/lib/transmission-daemon/downloads, tamamlanan dosyaların taşınacağı dizin)
“download-limit-enabled”: 1,  (OD: 0 (Sınırsız), Eş zamanlı kaç download yapılacağını belirtir.)
“download-queue-size”: 1, (OD: 5, En fazla kaç download sıraya sokulabileceğini belirtir)
“idle-seeding-limit”: 1, (OD: 30, Boştayken ne kadarlık bir süreçte dosyayı dağıtacağını belirtir)
“idle-seeding-limit-enabled”: true, (OD: false, Boştayken  dosya dağıtımı yapılıp yapılmayacağını belirtir)
“incomplete-dir”: “/srv/torrent/gelen”, (OD: /home/debian-transmission/Downloads, inmekte olan dosyaların barındırılacağı dizini belirtir)
“incomplete-dir-enabled”: true, (OD: false, Tamamlanmamış indirmelerin ayrı dizinde tutulmak istenip istenmediğini belirtir)
“lpd-enabled”: true, (OD: false, Yerel ağda dosya dağıtan eş taraması durumunu belirtir)
“ratio-limit-enabled”: true, (OD: false, Dosya dağıtımına oransal olarak sınırlandırma uygulanmasını belirler)
“rpc-authentication-required”: false, (OD: true, Web arayüzüne erişim için parola gerekip gerekmediğini belirtir)
“rpc-bind-address”: “192.168.1.10”, (OD: 0.0.0.0, Web arayüzüne sunucu dışından erişebilmek için sunucu adresi verilir)
“rpc-whitelist”: “127.0.0.1, 192.168.1.*”, (OD: 127.0.0.1, web arayüzüne hangi IP’lerden erişilebileceğini belirler=
“seed-queue-size”: 1, (OD: 10, Eş zamanlı dağıtım kuyruğu sınırını belirler)
“speed-limit-up”: 50, (OD: 100, kB/s cinsinden normal zamanlarda Upload hızın belirtir)
“speed-limit-up-enabled”: true, (OD: false, Normal zamanlarda Upload hız sınırı uygulanığ uygulanmayacağını belirtir)
“trash-original-torrent-files”: true, (OD: false, .torrent uzantılı dosyaların işi bitince silinip silinmemesi gerektiğini belirtir)

Yukarıdaki ayarlardan normal ve alternatif zaman hız limitlerini, kuyrukları ve block-list ayarını web arayüzünden de yapabilirsiniz. Bu hali ile torrent servisi çalışmaya hazır durumda, ancak bir eksiğimiz var o da loglama. Eğer siz de benim gibi loglama manyağıysanız, Transmission torrent servisinin loglaması ön tanımlı olarak kapalı gelmektedir, bunu belirtmekte fayda var. Loglamayı çalıştırmak için /etc/default/transmission-daemon dosyasına aşağıdaki kalın yazılı kısımları eklemeniz gerek:

root:/etc/transmission-daemon# cd /etc/default
root:/etc/default# nano transmission-daemon

# defaults for transmission-daemon
# sourced by /etc/init.d/transmission-daemon

# Change to 0 to disable daemon
ENABLE_DAEMON=1

# This directory stores some runtime information, like torrent files
# and links to the config file, which itself can be found in
# /etc/transmission-daemon/settings.json
CONFIG_DIR=”/var/lib/transmission-daemon/info”

# This directory stores transmission logs.
LOG_DIR=”/var/log/transmission.log”

# Default options for daemon, see transmission-daemon(1) for more options
OPTIONS=”–config-dir $CONFIG_DIR –logfile $LOG_DIR

# (optional) extra options to start-stop-daemon
#START_STOP_OPTIONS=”–iosched idle –nicelevel 10″

Bu dosyayı kaydettikten sonra servisi başlatmadan önce yapmamız gereken son şey “/var/log” dizini içerisinde “transmission.log” isimli bir dosya oluşturmak ve gerekli sahiplik/erişim izinlerini düzenlemek. Aksi takdirde servis kendisi dosya oluşturamayacak ve loglama yapamayacaktır.

root:/etc/default/# cd /var/log
root:/var/log/# touch transmission.log
root:/var/log/# chown debian-transmission:debian-transmission transmission.log
root:/var/log/# chmod 644 transmission.log

Log dosyamızı da hazırladığımıza göre artık servisimizi başlatabiliriz.

root:/var/log/# service transmission start

Servisimiz çalışmaya başladığına göre, ağdaki diğer bilgisayardaki browserdan transmission web arayüzüne erişip downloada başlayabiliriz. Transmission web arayüzüne erişmek için şu adrese gitmeniz yeterlidir:

http://192.168.1.10:9091

Not: Torrent downloadlarınızın daha hızlı çalışması için “settings.json” dosyasında bulunan “peer-port” satırındaki port numarasını, modeminizden sunucuya yönlendiriniz.