Hoe u van uw Raspberry Pi een altijd-aan downloadbare megalith maakt

Hoe u van uw Raspberry Pi een altijd-aan downloadbare megalith maakt

Draag je steentje bij voor het wereldwijde 'Linux-distributienetwerk' door een speciale, veilige, torrent-downloadende megaliet te bouwen die amper 10 W aan stroom verbruikt. Het is mogelijk, en het zal natuurlijk gebaseerd zijn op een Raspberry Pi.





Downloaden en zaaien (je zaait toch, toch? Goede mensen zaaien tot een verhouding van minimaal 2,0) is een zware taak voor elke gewone computer, en het betekent dat je veel meer elektriciteit opzuigt dan je zou moeten doen door hem 's nachts aan te laten staan. Wat als je die taak zou kunnen overdragen aan een low-powered Raspberry Pi, klein genoeg om onder een vloerplank te proppen en nauwelijks 10 W vermogen te breken om alles te doen. Dat is precies wat ik je vandaag laat zien.





Hier is het plan:





  • Stel een Raspberry Pi in met wat USB-opslag en verplaats de systeemschijf naar USB om de levensduur van onze SD-kaart te verlengen.
  • Deel dat via het netwerk.
  • Configureer een VPN zodat al het verkeer veilig over de VPN wordt geleid - en alles stopt als die verbinding mislukt. We willen niet dat de ISP weet welke Linux-distro we prefereren.
  • Installeer een op afstand beheerbare torrent-client, Transmission.

Klinkt ingewikkeld, niet? Niet meer dan een paar honderd Terminal-commando's, dat verzeker ik je. Veel hiervan overlapt met onze Raspberry Pi NAS tutorial, dus als je niet zo geïnteresseerd bent in de torrent- en VPN-kant van de dingen, wil je dat misschien in plaats daarvan eens bekijken.

USB opslag

Begin met een nieuwe Raspian-installatie en sluit de Ethernet-interface aan, en sluit uw USB-opslag aan (via een gevoede USB-hub, anders zult u later waarschijnlijk fouten tegenkomen zoals ik deed) - het hoeft nog niet te worden geformatteerd. Log op afstand in met de standaard pi / raspberry gebruikersnaam en wachtwoordcombinatie en voer vervolgens uit:



sudo raspi-config

Wijzig de hoeveelheid geheugen voor grafische afbeeldingen in 16 megabytes - we zullen dit volledig headless uitvoeren, dus u hebt geen grafisch geheugen nodig. Sluit af en laten we enkele partities op de USB instellen. We gaan er ten minste twee instellen: een om voor het systeem te gebruiken om de levensduur van onze SD-kaart te behouden, en de andere om downloads op te slaan. Zoek eerst uit welke schijf uw USB is.

tail /var/log/messages

In mijn geval was het gemakkelijk te identificeren als 'sda'. Pas met dat in gedachten de volgende opdracht aan om de fdisk hulpprogramma op het juiste apparaat.





sudo fdisk /dev/sda

druk op P om de huidige partities weer te geven. Om bestaande te verwijderen, druk op NS . Maak een nieuwe primaire partitie, met N , dan P . Wanneer het je om de maat vraagt, voer je in + 8G . Ga nu door en maak een andere partitie voor je torrent-gegevens (opnieuw, primair), of ook meer partities als je dat wilt. IN zal de nieuwe partitiemap naar de schijf schrijven als je klaar bent.

kun je erachter komen of iemand je heeft gegoogled?

Nadat de nieuwe tabel is geschreven, gebruikt u de volgende opdrachten om de schijven te formatteren als: linux ext4 . Gebruik extra opdrachten als u uw schijf met meer dan twee partities hebt gepartitioneerd.





sudo mkfs.ext4 /dev/sda1
sudo mkfs.ext4 /dev/sda2
sudo mkdir /mnt/systemdrive
sudo mkdir /mnt/torrents
sudo mount /dev/sda1 /mnt/systemdrive
sudo mount /dev/sda2 /mnt/torrents
df -h

Het laatste commando zal bevestigen dat je de partities correct hebt gemount. Vervolgens willen we de SD-kaartgegevens naar de schijf kopiëren - dit verlengt de levensduur door constante lees-/schrijfbewerkingen naar caches enz. te vermijden. rsync om dit te doen:

sudo apt-get install rsync
sudo rsync -axv / /mnt/systemdrive

Dit zal een lange reeks bestanden kopiëren starten, dus wiebel even met je vingers.

sudo cp /boot/cmdline.txt /boot/cmdline.orig
sudo nano /boot/cmdline.txt

Pas dit aan om te lezen:

dwc_otg.lpm_enable=0 console=ttyAMA0,115200 kgdboc=ttyAMA0,115200 console=tty1 root=/dev/sda1 rootfstype=ext4 elevator=deadline rootwait rootdelay=5

Wijzig vervolgens fstab om ze bij het opstarten te monteren.

sudo nano /etc/fstab

Voeg de volgende regels toe:

/dev/sda1 / ext4 defaults,noatime 0 1
/dev/sda2 /mnt/torrents ext4 defaults 0 2

Geef commentaar op de volgende regel die verwijst naar de SD-kaart:

#/dev/mmcblk0p2 / ext4 defaults,noatime 0 1

Start de Pi opnieuw op met

sudo reboot

Gesorteerd! Je Pi zal nu zowel een root-gegevenspartitie als je torrents-partitie aankoppelen

Share The Drive: Samba

Zorg ervoor dat we eerst zijn bijgewerkt, verwijder Wolfram Mathematica-pakketten die me altijd problemen hebben bezorgd bij het doen van absoluut iets op de Pi (iets dat te maken heeft met math-kernel), en installeer vervolgens de vereiste pakketten

sudo apt-get update
sudo apt-get dist-upgrade
sudo apt-get remove wolfram-engine
sudo apt-get install samba samba-common-bin
sudo nano /etc/samba/smb.conf

Raken CTRL-W en typ 'security' om de volgende regel te vinden, en een becommentarieer het.

security = user

Voeg het volgende toe om onze gedeelde torrent-map te definiëren:

[torrents]
comment = torrents
path = /mnt/torrents
valid users = @users
force group = users
create mask = 0775
force create mode = 0775
security mask = 0775
force security mode = 0775
directory mask = 2775
force directory mode = 2775
directory security mask = 2775
force directory security mode = 2775
browseable = yes
writeable = yes
guest ok = no
read only = no

Start de Samba-service opnieuw:

sudo service samba restart

Vervolgens moeten we een gebruiker aan het systeem toevoegen. Vervang 'jamie' door uw gewenste gebruikersnaam waarmee u inlogt om toegang te krijgen tot de gedeelde map. De volgende opdrachten vragen u vervolgens om uw wachtwoorden aan te maken, de eerste op systeemniveau en de volgende voor Samba. Pas de laatste commando's aan als je je datadrive iets anders hebt genoemd (en hier is een inleiding over bestandseigendom in linux ).

sudo useradd jamie -m -G users
sudo passwd jamie
sudo smbpasswd -a jamie
sudo chown pi:users /mnt/torrents
chmod g+w /mnt/torrents

Test - u zou in staat moeten zijn om verbinding te maken vanaf een andere machine op uw netwerk en bestanden te lezen/schrijven naar de nieuwe share. Controleer of ze ook op de Pi verschijnen met ls van binnenuit / mnt / torrents map.

VPN-configuratie

Installeer de vereiste pakketten

sudo apt-get install openvpn resolvconf

Download de OpenVPN-configuratiebestanden van uw provider. U kunt een lijst bekijken van de beste VPN's hier, maar zorg ervoor dat je er een vindt die torrent-vriendelijk is. ik gebruik privacy.io mezelf, maar Privé internettoegang is een andere populaire optie binnen torrent-gemeenschappen. Hoe dan ook, u zou een ZIP-bestand met configuraties en een certificaat moeten kunnen pakken. Zet deze in je torrents-map, in een map met de naam openvpn . Pas het volgende commando aan zodat het verwijst naar je configuratiebestand, dat vrijwel zeker zal verschillen van: privacyIO.ovpn

sudo openvpn --client --config /mnt/torrents/openvpn/privacyIO.ovpn --ca /mnt/torrents/openvpn/privacy.ca.crt --script-security 2

Als je zo'n output krijgt, zit je goed. Raken CTRL-C om het te beëindigen. Het is echter vervelend om het wachtwoord in te typen, en we hebben een paar aanpassingen nodig om start- en stopscripts toe te voegen. Bewerk het configuratiebestand (vervang nogmaals privacyIO.ovpn door het .ovpn-bestand dat uw provider u heeft gegeven)

nano /mnt/torrents/openvpn/privacyIO.ovpn

Pas eerst de volgende regel aan. Eigenlijk zeggen we dat we de gebruikersnaam en het wachtwoord opslaan in een bestand met de naam pass.txt

auth-user-pass /mnt/torrents/openvpn/pass.txt

Sla op en typ:

nano /mnt/torrents/pass.txt

Voer uw gebruikersnaam in op de eerste regel en uw wachtwoord op de volgende. Sla op en probeer opnieuw verbinding te maken:

sudo openvpn --client --config /mnt/torrents/openvpn/privacyIO.ovpn --ca /mnt/torrents/openvpn/privacy.ca.crt --script-security 2

Je zou deze keer niet moeten worden lastiggevallen om in te loggen. Hoera! Open vervolgens het configuratiebestand opnieuw en voeg de volgende regels toe:

route-up /mnt/torrents/openvpn/route-up.sh
down-pre
down /mnt/torrents/openvpn/down.sh

Dit specificeert enkele scripts die we later gaan maken om taken uit te voeren wanneer de verbinding succesvol tot stand komt of uitvalt. Zorg dat je in de mnt/torrents/openvpn map en voer vervolgens het volgende uit:

nano route-up.sh

Voeg het volgende toe om ervoor te zorgen dat verkeer via de VPN wordt verzonden:

#!/bin/sh
iptables -t nat -I POSTROUTING -o tun0 -j MASQUERADE

Maak vervolgens het down.sh-script

nano down.sh

Toevoegen:

#!/bin/sh
iptables -t nat -D POSTROUTING -o tun0 -j MASQUERADE

Ten slotte willen we dat een script de verbinding opent, in plaats van het vanaf de opdrachtregel te starten zoals we net deden.

nano vpn.sh

Plak de VPN-startopdracht van eerder. Voor het geval je het vergeten bent:

sudo openvpn --client --config /mnt/torrents/openvpn/privacyIO.ovpn --ca /mnt/torrents/openvpn/privacy.ca.crt --script-security 2

Maak nu al die scripts uitvoerbaar en start het VPN-script bij het opstarten.

chmod +x down.sh
chmod +x route-up.sh
chmod +x vpn.sh
sudo nano /etc/rc.local

Voeg de volgende regel toe voor de uitgang 0 lijn. We vertellen het gewoon om dit script bij het opstarten te starten.

/mnt/torrents/openvpn/vpn.sh

Start ten slotte uw systeem opnieuw op.

Log opnieuw in en voer uit ifconfig . Je weet dat het werkt als je een vermelding ziet voor tap0 (of tun0) , en zijn in staat om een ​​webpagina met succes te krullen:

curl https://www.makeuseof.com

De Torrent-client

Ben er nu bijna. Ten slotte gaan we Transmission installeren, dat lichtgewicht is en een mooie web-GUI heeft. De volgende commando's worden geïnstalleerd en stoppen vervolgens de daemon - aangezien we deze eerst moeten configureren - en openen vervolgens het instellingenbestand om te bewerken.

sudo apt-get install transmission-daemon
sudo /etc/init.d/transmission-daemon stop
sudo nano /etc/transmission-daemon/settings.json

Wijzig 'rpc-authentication-required' in false; verander 'rpc-whitelist' om uw lokale subnet op te nemen - bijvoorbeeld:

'rpc-whitelist': '127.0.0.1,10.0.1.*',

Voeg het volgende toe of pas het aan als het al aanwezig is:

'download-dir': '/mnt/torrents',
'watch-dir': '/mnt/torrents/',
'watch-dir-enabled': true,
'umask': 2,

Bewerk vervolgens het opstartbestand van de daemon zelf om een ​​aantal toestemmingsproblemen op te lossen.

sudo nano /etc/init.d/transmission-daemon

Verander de USER=transmissie-daemon tot GEBRUIKER=root . Laad de daemon opnieuw.

sudo service transmission-daemon reload

Eindelijk, we zullen installeren avahi-daemon om bonjour/zeroconf-netwerken in te stellen, wat betekent dat we het IP-adres van de Pi niet hoeven te gebruiken om er toegang toe te krijgen vanuit een browser - in plaats daarvan kunnen we de raspberrypi.local adres.

sudo apt-get install avahi-daemon

Ervan uitgaande dat uw hostnaam de standaard is (raspberrypi, maar kan worden gewijzigd met raspi-config) , navigeren naar:

http://raspberrypi.local:9091/transmission/web/

Controleer eerst of je torrent-IP correct wordt vermomd via de VPN. Download het test-torrent-bestand van TorGuard - de downloadafbeelding lijkt op een advertentie, maar is het niet - en zet hem in de gedeelde map torrents.

We hebben Transmission al geconfigureerd om deze map te controleren op nieuwe torrents, dus deze moet onmiddellijk worden toegevoegd. Ga je gang en laat daar ook wat legale Linux distro-torrents vallen.

De IP-controle-torrent zou een fout moeten retourneren, samen met het gedetecteerde IP-adres. Zorg ervoor dat dit niet uw thuis-IP is - als dat wel het geval is, is de VPN niet goed ingesteld. Standaard worden alle torrents die u in de map plaatst, hernoemd naar .added en moet er een .part-bestand worden gemaakt totdat de overdracht is voltooid. Controleer of dit het geval is in uw gedeelde map.

Dat is het! Je hebt nu een super low-powered, veilige, torrent-downloadende Pi - waardoor je werkstation beschikbaar blijft voor betere dingen. Misschien wilt u nu kijken naar het toevoegen van een UPnP-server voor het streamen van media over het netwerk, of het gebruik van BitTorrent Sync om uw eigen cloudopslag te creëren. Welke functies ga je toevoegen?

Deel Deel Tweeten E-mail De 8 beste websites om gratis audioboeken te downloaden

Audioboeken zijn een geweldige bron van entertainment en veel gemakkelijker te verteren. Hier zijn de acht beste websites waar je ze gratis kunt downloaden.

Lees volgende
Gerelateerde onderwerpen
  • doe-het-zelf
  • BitTorrent
  • Raspberry Pi
Over de auteur James Bruce(707 artikelen gepubliceerd)

James heeft een BSc in Artificial Intelligence en is CompTIA A+ en Network+ gecertificeerd. Als hij het niet druk heeft als redacteur van hardwarerecensies, geniet hij van LEGO, VR en bordspellen. Voordat hij bij MakeUseOf kwam, was hij lichttechnicus, leraar Engels en datacenteringenieur.

Meer van James Bruce

Abonneer op onze nieuwsbrief

Word lid van onze nieuwsbrief voor technische tips, recensies, gratis e-boeken en exclusieve deals!

Klik hier om je te abonneren