Hur du gör din Raspberry Pi till en ständigt nedladdande Megalith

Hur du gör din Raspberry Pi till en ständigt nedladdande Megalith

Gör din del för det globala 'Linux-distributionsnätverket' genom att bygga en dedikerad, säker, torrent-nedladdande megalit som knappt använder 10W ström. Det är möjligt, och det kommer naturligtvis att baseras på en Raspberry Pi.





Ladda ner och sådd (du gör frö, eller hur? Bra människor frö till minst ett 2,0 -förhållande) är en svår uppgift för alla vanliga datorer, och betyder att du suger ner mycket mer el än du borde vara genom att behöva låta den stå över natten. Tänk om du kunde ladda upp den uppgiften till en lågdriven Raspberry Pi, tillräckligt liten för att stoppa under en golvbräda och knappt bryta 10W ström för att göra allt. Det är precis vad jag ska visa dig hur du gör idag.





Här är planen:





  • Skapa en Raspberry Pi med lite USB -lagring och flytta systemdriven över till USB för att förlänga SD -kortets livslängd.
  • Dela det över nätverket.
  • Konfigurera ett VPN så att all trafik dirigeras över VPN, säkert - och allt stoppar om den anslutningen misslyckas. Vi vill inte att ISP ska veta vilken Linux -distro vi föredrar.
  • Installera en fjärrhanterbar torrentklient, Transmission.

Låter komplicerat, eller hur? Inte mer än några hundra terminalkommandon, jag försäkrar dig. Mycket av detta överlappar med vår Raspberry Pi NAS tutorial, så om du inte är så intresserad av torrenting och VPN -sidan av saker, kanske du vill kolla in det istället.

USB-minne

Börja med en ny Raspian -installation och anslut Ethernet -gränssnittet och anslut ditt USB -minne (via en USB -hubb som drivs, annars kommer du troligtvis att få fel senare som jag gjorde) - det behöver inte formateras ännu. Logga in på distans med standardkombinationen pi /hallon användarnamn och lösenord och kör sedan:



sudo raspi-config

Ändra mängden minne som ges över grafik till 16 megabyte - vi kör det här helt utan huvud, så du behöver inte grafiskt minne. Avsluta, och låt oss konfigurera några partitioner på USB. Vi kommer att installera minst två - en som ska användas för systemet för att bevara livslängden på vårt SD -kort, och den andra för nedladdningar som ska lagras. Ta reda på först vilken enhet som är din USB.

tail /var/log/messages

I mitt fall var det lätt att identifiera som 'sda'. Med det i åtanke, justera följande kommando för att ange fdisk verktyg på rätt enhet.





sudo fdisk /dev/sda

Tryck sid för att lista aktuella partitioner. För att radera befintliga, tryck på d . Skapa en ny primärpartition med n , då sid . När den ber dig om storlek, skriv in + 8G . Fortsätt nu och skapa en annan partition för dina torrentdata (igen, primär), eller fler partitioner också om du vill. I kommer att skriva den nya partitionskartan till enheten när du är klar.

hur jag ansluter min telefon till min dator

När den nya tabellen har skrivits använder du följande kommandon för att formatera enheterna som linux ext4 . Använd ytterligare kommandon om du har partitionerat din enhet med mer än två partitioner.





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

Det sista kommandot bekräftar att partitionerna är korrekt monterade. Därefter vill vi kopiera SD -kortdata till enheten - detta kommer att förlänga dess livslängd genom att undvika konstant läs-/skrivoperationer till cacheminne etc. Installera rsync att göra detta:

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

Detta kommer att inleda en lång rad filkopiering, så krama lite med fingrarna.

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

Justera detta för att läsa:

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

Ändra sedan fstab att montera dem vid uppstart.

sudo nano /etc/fstab

Lägg till följande rader:

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

Kommentera följande rad som hänvisar till SD -kortet:

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

Starta om Pi med

sudo reboot

Sorterad! Din Pi kommer nu att montera både en rotdatapartition och din torrentspartition

Dela The Drive: Samba

Se till att vi är uppdaterade först, ta bort Wolfram Mathematica-paket som alltid har orsakat problem när jag gör absolut någonting på Pi (något att göra med matematik-kärnan), installera sedan de paket som krävs

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

Träffa CTRL-W och skriv 'säkerhet' för att hitta följande rad och a kommentera det.

security = user

Lägg till följande för att definiera vår delade torrentsmapp:

[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

Starta om Samba -tjänsten:

sudo service samba restart

Därefter måste vi lägga till en användare i systemet. Ersätt 'jamie' med ditt önskade användarnamn som du loggar in med för att komma åt den delade mappen. Följande kommandon ber dig sedan skapa dina lösenord, det första på systemnivå och nästa för Samba. Ändra de sista kommandona om du kallade din datadriven något annat (och här är en primer på ägande av filer i 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 - du bör kunna ansluta från en annan maskin i ditt nätverk och läsa/skriva filer till den nya resursen. Kontrollera att de visas på Pi också med ls inifrån / mnt / torrents mapp.

VPN -inställning

Installera de nödvändiga paketen

sudo apt-get install openvpn resolvconf

Ladda ner OpenVPN -konfigurationsfilerna från din leverantör. Du kan kolla in en lista över bästa VPN: er här, men se till att hitta en som är torrentvänlig. jag använder privacy.io jag själv, men Privat internetåtkomst är ett annat populärt alternativ inom torrentgemenskaper. Hur som helst bör du kunna ta en ZIP -fil med konfigurationer och ett certifikat. Lägg dem i mappen torrents i en katalog som heter openvpn . Ändra följande kommando så att det pekar på din konfigurationsfil, som nästan säkert kommer att skilja sig från privacyIO.ovpn

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

Om du får en sådan utgång är du bra. Träffa CTRL-C att avsluta den. Det är dock irriterande att behöva skriva in lösenordet, och vi behöver några ändringar för att lägga till start- och stoppskript. Redigera konfigurationsfilen (ersätt privacyIO.ovpn igen med .ovpn -filen som din leverantör gav dig)

nano /mnt/torrents/openvpn/privacyIO.ovpn

Ändra följande rad först. I grund och botten säger vi att vi kommer att lagra användarnamnet och lösenordet i en fil som heter pass.txt

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

Spara och skriv:

nano /mnt/torrents/pass.txt

Ange ditt användarnamn på första raden och lösenord på nästa. Spara och försök ansluta igen:

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

Du bör inte vara bugged att logga in den här gången. Jippie! Öppna sedan konfigurationsfilen igen och lägg till följande rader:

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

Detta specificerar några skript som vi ska skapa senare för att utföra uppgifter när anslutningen antingen lyckas eller går ner. Se till att du är i mnt/torrents/openvpn katalog och kör sedan följande:

nano route-up.sh

Lägg till följande som säkerställer att trafik skickas ut via VPN:

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

Skapa sedan skriptet down.sh

nano down.sh

Lägg till:

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

Slutligen vill vi att ett skript öppnar anslutningen, istället för att starta den från kommandoraden som vi precis gjorde.

nano vpn.sh

Klistra in VPN -startkommandot från tidigare. Om du har glömt:

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

Gör nu alla dessa skript körbara och starta VPN -skriptet vid start.

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

Lägg till följande rad före avsluta 0 linje. Vi säger bara att det här skriptet ska startas vid start.

/mnt/torrents/openvpn/vpn.sh

Slutligen, starta om ditt system igen.

Logga in igen och kör ifconfig . Du vet att det fungerar om du ser en post för tryck på0 (eller tun0) , och kan framgångsrikt curl en webbsida:

curl https://www.makeuseof.com

Torrent -klienten

Nästan där nu. Slutligen ska vi installera Transmission, som är lätt och har ett trevligt webb -GUI. Följande kommandon installeras och stoppar sedan demonen - eftersom vi måste konfigurera den först - öppnar sedan inställningsfilen för redigering.

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

Ändra 'rpc-autentisering-krävs' till falskt; ändra 'rpc -vitlista' till att inkludera ditt lokala undernät - till exempel:

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

Lägg till eller justera följande om det redan finns:

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

Redigera sedan själva demon -startfilen för att hantera några behörighetsproblem.

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

Ändra USER = transmission-daemon till USER = root . Ladda om demonen.

sudo service transmission-daemon reload

Slutligen installerar vi avahi-daemon för att konfigurera bonjour/zeroconf -nätverk, vilket betyder att vi inte behöver använda Pi: ns IP -adress för att komma åt den från en webbläsare - istället kan vi använda raspberrypi.local adress.

sudo apt-get install avahi-daemon

Antar att ditt värdnamn är standard (raspberrypi, men kan ändras med raspi-config) , navigera till:

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

Kontrollera först att din torrent -IP är korrekt förklädd via VPN. Ladda ner test -torrent -filen från TorGuard - nedladdningsgrafiken ser ut som en annons, men det är den inte - och släpp den i den delade mappen för torrents.

Vi har redan konfigurerat Transmission för att titta på den här mappen för nya torrenter, så den bör läggas till omedelbart. Gå vidare och släpp några lagliga Linux -distro -torrenter där också.

IP -kontrollen torrent bör returnera ett fel, tillsammans med den IP -adress som den upptäckte. Se till att det inte är din hem -IP - i så fall har VPN inte konfigurerats rätt. Som standard kommer alla torrenter du släpper i mappen att byta namn till .added och en .part -fil bör skapas tills överföringen är klar. Kontrollera att så är fallet i din delade mapp.

Det är allt! Du har nu en superladdad, säker, torrent-nedladdande Pi-så att din arbetsstation är tillgänglig för bättre saker. Du kanske nu vill titta på att lägga till en UPnP -server för att strömma media runt nätverket, eller använda BitTorrent Sync för att skapa din egen molnlagring. Vilka funktioner kommer du att lägga till?

Dela med sig Dela med sig Tweet E-post De 8 bästa webbplatserna för att ladda ner ljudböcker gratis

Ljudböcker är en stor underhållningskälla och mycket lättare att smälta. Här är de åtta bästa webbplatserna där du kan ladda ner dem gratis.

Läs Nästa
Relaterade ämnen
  • DIY
  • BitTorrent
  • Raspberry Pi
Om författaren James Bruce(707 artiklar publicerade)

James har en kandidatexamen i artificiell intelligens och är CompTIA A+ och Network+ -certifierad. När han inte är upptagen som Hardware Reviews Editor, gillar han LEGO, VR och brädspel. Innan han började på MakeUseOf var han belysningstekniker, engelsklärare och datacenteringenjör.

Mer från James Bruce

Prenumerera på vårt nyhetsbrev

Gå med i vårt nyhetsbrev för tekniska tips, recensioner, gratis e -böcker och exklusiva erbjudanden!

Klicka här för att prenumerera