Ubuntu: de perfecte server – BitTorrent server



Een BitTorrent server is server waarin een BitTorrent client draait om gegevens uit te wisselen, waarbij gebruik gemaakt wordt van een centrale locatie (de tracker) die de downloads coördineert maar zelf geen bestanden levert. Via een webbrowser of een remote grafische interface kan toegang verkregen worden tot de BitTorrent client . Het downloaden gebeurt decentraal en bestaat uit het uitwisselen van stukken van bestanden tussen alle gebruikers die op dat moment meedoen aan het up- en downloaden.

Zo zou bijvoorbeeld de Ubuntu Live CD (het iso-bestand) via BitTorrent kunnen worden gedownload. Op de server. Dan is de desktop vrij om andere zaken te doen.

Deze BitTorrent server installeren we ook weer als een virtuele server in de minimale server. Als BitTorrent client gebruiken we Transmission.

Transmission installeren

Downloads folder aanmaken in de gastheer

Voordat de client geïnstalleerd wordt moet eerst de datapartitie /data van de gastheer (het besturingssysteem van de fysieke computer) via NFS beschikbaar gemaakt worden in de virtuele machine. Op deze datapartitie maken we een downloads folder aan om de gedownloade data te bewaren. Zie hiervoor het artikel Ubuntu: de perfecte server – Virtuele machine en NFSv4 datapartitie en maak dus in plaats van een ‘documenten’ folder een ‘downloads’ folder aan. Doe dit als volgt:

mkdir /data/downloads
mkdir /data/downloads/complete
mkdir /data/downloads/incomplete

Als de downloads folder is aangemaakt, kan Transmission geïnstalleerd worden.

Transmission installeren in de virtuele machine

Ga naar de virtuele machine en installeer Transmission:

sudo apt-get install transmission-daemon

Het mappen van het account debian-transmission in de gastheer en de virtuele machine

Tijdens de installatie (in de virtuele machine) wordt de daemon gestart onder het debian-transmission account. Dit is vervelend omdat de datapartitie aangekoppeld wordt onder het administratoraccount  (de gebruiker die aangemaakt wordt tijdens de installatie van de Ubuntu server). Het debian-transmission account schrijft de gedownloade bestanden weg op de datapartitie in de virtuele machine. Omdat de datapartitie een NFS-mount is op de /data-partitie van de gastheer moet in de gastheer een account bestaan dat hetzelfde userid heeft. Deze kan dat dan daadwerkelijk wegschijven op de /data-partitie. Het schrijven gebeurt dus op basis van het userid (UID) en niet op naam. Het gemakkelijkste is nu om het debian-transmission account op te nemen in de groep van de administrator. Doe dit als volgt:

sudo usermod -a -G <gebruiker> debian-transmission, waarbij <gebruiker> de inlognaam van de administrator is. Zowel de administrator als debian-transmission zitten nu in dezelfde groep. Het debian-transmission account kan nu op de datapartitie schrijven.

We zijn er nog niet, want in de gastheer moet het debian-transmission account ook aangemaakt worden met hetzelfde UID en dit account ook opnemen in de groep van administrator.

OPTIONEEL: Deze laatste  kan het beste dezelfde naam en userid als de administrator van de virtuele machine hebben. Als tijdens de installatie van de gastheer dezelfde naam gebruikt is, dan is dit automatisch zo. Als dit niet zo is dan kan dit het beste gewijzigd worden. Het hoeft niet, dan zijn er voor dezelfde uid’s verschillende gebruikers. Gebruiker Jan kan op de gastheer UID 1000 hebben en gebruiker Piet kan op de virtuele machine ook UID 1000 hebben. Deze twee worden dan gemapped. Het wijzigen van de administratornaam is lastig omdat dit niet kan gedaan kan worden als deze actief is. Normaal gesproken wordt daar het commando usermod -l <nieuwe naam> <oude naam> voor gebruikt. Maar er is een alternatief om dit te doen en wel door wat usermod onderwater doet. Pas daarvoor de naam en alleen de naam aan in de volgende bestanden:

  • /etc/passwd
  • /etc/shadow
  • /etc/group

en als laatste de <naam> in /home/<naam> aanpassen. Om de wijzigingen te effectueren moet de server herstart worden.

Terug naar naar het het aanmaken van het debian-transmission account op de gastheer. Ga naar de gastheer en voer de volgende commando’s uit:

sudo adduser --no-create-home debian-transmission om het debian-transmission account aan te maken zonder een home-folder.
sudo usermod -a -G <gebruiker> debian-transmission om dit account op te nemen in groep van de gebruiker.

Nu komt het lastigste gedeelte van dit artikel. Als laatste moeten we zorgen dat de userid (UID) en groepid (GID) van beide debian-transmission accounts gelijk zijn. Voer om dit te controleren zowel in de gastheer als in de virtuele machine het commando id debian-transmission uit. Als beide uid’s en gid’s gelijk zijn dan kunnen de volgende stappen worden overgeslagen en kan je verder lezen bij het hoofdstuk ‘Het herstarten van de server’.

Voer het commando /etc/passwd | less uit in zowel de gastheer als de virtuele machine als deze id’s niet gelijk zijn. Neem een nog niet gebruikt UID (kolom 3) boven de 1000 wat  niet voorkomt op beide servers. Vervolgens gaan we het UID van beide debian-transmission accounts aanpassen, maar hiervoor mag deze niet actief zijn. Beëindig daarom het Transmission programma in de virtuele machine:

sudo service transmission-debian stop

Voer de volgende commando’s in de gastheer uit:

sudo usermod -u <UID> debian-transmission, waarbij <UID> het zelfgekozen UID-nummer is.

sudo addgroup --gid <GID> debian-transmission, waarbij <GID> overeenkomt met het zelfgekozen UID-nummer is.

sudo usermod -a -G debian-transmission debian-transmission

Voer de volgende commando’s in de virtuele machine uit:

sudo usermod -u <UID> debian-transmission, waarbij <UID> het zelfgekozen UID-nummer is.

sudo groupmod -g <GID> debian-transmission, waarbij <GID> overeenkomt met het zelfgekozen UID-nummer is.

Daarna moet in de virtuele machine de bestanden worden aangepast die nog gebruik maken van het oude UID en/of GID. Ter informatie: deze kunnen gevonden worden via het commando sudo find / -uid <oude uid>, maar dat hoeft nu niet te worden uitgevoerd. Dat heb ik al voor jou gedaan.

sudo chown root:debian-transmission /etc/transmission-daemon
sudo chown debian-transmission:debian-transmission /etc/transmission-daemon/settings.json
sudo chown -R debian-transmission:debian-transmission /var/lib/transmission-daemon

Even een overzicht wat we gedaan hebben (id’s zijn voorbeelden):

Stap Gastheer (host)
Gast (vm)
  • Uitgangssituatie na installatie Transmission
admin(uid=1000,gid=1000) admin(uid=1000,gid=1000)
debian-transmission(uid=112)
  • debian-transmission toevoegen aan groep admin in vm
debian-transmission(uid=112, gid=1000)
  • debian-transmission
    aanmaken in host
debian-transmission(uid=1001, gid=nobody)
  • debian-transmission groep aanmaken in host
debian-transmission(uid=1001, gid=1002)
  • UID en GID gelijk maken
debian-transmission(uid=1002, gid=1002) debian-transmission(uid=1002, gid=1002)

Het herstarten van de server

Sluit de virtuele machine af: sudo shutdown -h now

Hertstart de server door sudo shutdown -r now uit te voeren in de gastheer. De virtuele machines worden automatisch gestart als de beschrijving in het artikel Ubuntu: de perfecte server – VirtualBox installeren gevolgd is.

Transmission configureren

Pas voor het configureren van Transmission het configuratiebestand /etc/transmission-daemon/settings.json aan:

sudo vi /etc/transmission-daemon/settings.json

Voer daarna de volgende wijzigingen door:

  • wijzig “download-dir”: “/var/lib/transmission-daemon/downloads” in “download-dir:” “/mnt/downloads/complete”
  • wijzig “incomplete-dir:” “/home/<naam>/Downloads” in “incomplete-dir:” “/mnt/downloads/incomplete”
  • wijzig “incomplete-dir-enabled”: false in “incomplete-dir-enabled”: true
  • wijzig “rpc-whitelist”: “127.0.0.1”   in “rpc-whitelist”: “127.0.0.1,*.*.*.*”
  • wijzig “rpc-password”: “password” in “rpc-password”: <wachtwoord>, waarbij <wachtwoord> het eigen gekozen wachtwoord is. Het wachtwoord wordt bij de eerste start geëncrypteerd.
  • wijzig “rpc-username”: “username” in “rpc-username”: <gebruikersnaam>, waarbij <gebruikersnaam> het eigen gekozen gebruikersnaam is.

Sla de veranderingen op en sluit vi door op de :wq toetsen te drukken.

Voer het commando sudo service transmission-daemon reload uit om de configuratieinstellingen te laden, anders blijven de wijzigingen niet behouden en worden deze bij de volgende start van Transmission weer overschreven met de oorspronkelijke waarden.

Transmission gebruiken

Start Transmission opnieuw:

sudo service transmission-daemon restart

Zorg ervoor dat poort 9091 geforward is naar deze virtuele machine als Transmission via het internet moet worden benaderd. 9091 is de standaard poort waar Transmission op luistert.

Transmission wordt bij elk herstart van de computer automatisch gestart, dus dat hoef niet apart te worden ingesteld.

Transmission remote benaderen

Transmission kan remote benaderd worden via een webbrowser. Ga nu naar een computer met een desktop, open een webbrowser en ga naar de URL http://<ip-adres virtuele machine>:9091. Een website wordt nu geopend.

Een torrent-bestand uploaden voor download wordt ook via deze website gedaan. Klik hiervoor op het Open icoon in de werkbalk.

Alles wat gedownload is, wordt bewaard onder het debian-transmission account. Als een gebruiker de gedownloade bestanden wil ophalen, dan kan deze gebruiker er niet bij, mits deze tot de groep debian-transmission behoort.

2 thoughts on “Ubuntu: de perfecte server – BitTorrent server

  1. Voor mij Don Leo, fantasties deze artikelen serie!
    Bij het installeren van transmission staat dat er een /data partition aanwezig is.
    Maar in het allereerste stuk “Installatie van Ubuntu” is er alleen sprake van een /root, /swap, en /home partitie.
    Hoe realiseer ik nu een /data partitie?
    Het upgraden van firefox naar versie 4 werd 6.0, schiet ik mijn doel dan vvorbij. Met vriendelijke groet,

  2. Betreffende de /data partitie: zie hiervoor het artikel Ubuntu: de perfecte server – Virtuele machine en NFSv4 datapartitie en maak dus in plaats van een ‘documenten’ folder een ‘downloads’ folder aan. Staat ook vooraan in dit artikel. De /data partitie zelf aanmaken staat in Ubuntu: de perfecte server – minimale server installeren. Zoek op /data.

    En betreffende Firefox 6: nee je schiet je doel niet voorbij. Ik heb ook versie 6 en dat is vrij stabiel. En daarbij: lekker doen waar je zelf zin in hebt. Niets moet alles mag. Wil je de allerlaatste alpha versie dan kan dat. Als je maar blijft realiseren waarmee je bezig bent. Dat is zo mooi aan open source.

Vragen, opmerkingen en meningen over dit artikel kan je hier kwijt:

Vul je gegevens in of klik op een icoon om in te loggen.

WordPress.com logo

Je reageert onder je WordPress.com account. Log uit / Bijwerken )

Twitter-afbeelding

Je reageert onder je Twitter account. Log uit / Bijwerken )

Facebook foto

Je reageert onder je Facebook account. Log uit / Bijwerken )

Google+ photo

Je reageert onder je Google+ account. Log uit / Bijwerken )

Verbinden met %s