Hur man gör din Raspberry Pi till en Always-On nedladdning Megalith

Hur man gör din Raspberry Pi till en Always-On nedladdning Megalith / DIY

Gör din del för det globala “Linux distributionsnätverk” genom att bygga en dedikerad, säker, torrenthämtande megalit som knappt använder 10W av makt. Det är möjligt, och det kommer givetvis att vara baserat på en Raspberry Pi.

Nedladdning och sådd (du gör frön, eller hur? Gott folk frö till minst ett 2,0-förhållande) är en svår uppgift för en vanlig dator, och innebär att du suger ner mycket mer el än vad du borde vara genom att behöva lämna den över natten. Vad händer om du kan ladda upp den här uppgiften till en lågdriven Raspberry Pi, tillräckligt liten för att göra saker under ett golvbräde och knappt bryta 10W av kraft för att göra allt. Det är precis vad jag ska visa dig hur man gör idag.

Här är planen:

  • Ställ in en Raspberry Pi med lite USB-lagring och flytta systemstationen till USB för att förlänga livslängden på vårt SD-kort.
  • Dela det över nätverket.
  • Konfigurera en VPN så att all trafik dirigeras över VPN - säkert och allt slutar om den anslutningen misslyckas. Vi vill inte ut ISP veta vilken Linux distro vi gynnar.
  • Installera en fjärrhanterlig 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 Vrid din Raspberry Pi i en NAS-låda Sätt din Raspberry Pi i en NAS-box Har du några externa hårddiskar som ligger och en Raspberry Pi? Gör en billig, lågdriven nätverksansluten lagringsenhet av dem. Medan slutresultatet säkert inte kommer att vara som ... Läs mer handledning, så om du inte är så intresserad av torrent 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, eller det är troligt att du kommer att möta fel senare som jag gjorde). Det behöver inte formateras än. Logga in på fjärrkontrollen med standard pi / hallon användarnamn och lösenord kombination, kör sedan:

sudo raspi-config

Ändra mängden minne som ges över grafik till 16 megabyte - vi kör det här helt huvudlöst, så du behöver inte grafiskt minne. Avsluta, och låt oss konfigurera vissa partitioner på USB. Vi ska ställa in minst två som används för systemet för att bevara livet på vårt SD-kort och den andra för nedladdningar som ska lagras. Beräkna först vilken enhet som är din USB.

svans / var / log / meddelanden

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

sudo fdisk / dev / sda

Tryck p för att lista aktuella partitioner. För att radera några befintliga, tryck på d. Skapa en ny primärpartition med n, sedan p. När det ber dig om storlek, skriv in +8G. Nu fortsätt och skapa en annan partition för dina torrentdata (igen, primär) eller flera partitioner också om du vill. W skriver den nya partitionskartan till enheten när du är klar.

När den nya tabellen har skrivits, använd följande kommandon för att formatera enheterna som linux ext4. Använd ytterligare kommandon om du partitionerade 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 kommer att bekräfta att du har partitionerna rätt monterade. Därefter vill vi kopiera SD-kortdata till enheten - det här kommer att förlänga sitt liv genom att undvika kontinuerlig läsning / skrivning till cachar etc. Installera rsync att göra detta:

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

Detta kommer att initiera en lång serie av filkopiering, så vrid fingrarna lite.

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 konsol = tty1 root = / dev / sda1 rootfstype = ext4 hiss = deadline rootwait rootdelay = 5 

Ändra sedan fstab att montera dem vid start.

sudo nano / etc / fstab 

Lägg till följande rader:

/ dev / sda1 / ext4 standardvärden, noatime 0 1 / dev / sda2 / mnt / torrents ext4 standardvärden 0 2 

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

# / dev / mmcblk0p2 / ext4 standardvärden, noatime 0 1 

Starta om Pi med

sudo omstart 

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

Dela enheten: Samba

Se till att vi är uppdaterade först, ta bort Wolfram Mathematica-paket som alltid har orsakat mig problem när jag gör absolut något på Pi (något att göra med mattekärnan), installera sedan de nödvändiga paketen

sudo apt-get uppdatering sudo apt-få dist-uppgradering sudo apt-få bort wolfram-motorn sudo apt-get installera samba samba-common-bin sudo nano /etc/samba/smb.conf 

Träffa CTRL-W och typ “säkerhet” för att hitta följande rad, och fnkommentera det.

säkerhet = användare 

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

[torrents] comment = torrents path = / mnt / torrents giltiga användare = @users force group = användare skapar mask = 0775 kraft skapar läge = 0775 säkerhetsmask = 0775 kraft säkerhetsläge = 0775 katalog mask = 2775 styr katalog läge = 2775 katalog säkerhet mask = 2775 styrkatalog säkerhetsläge = 2775 browseable = ja skrivbar = ja gäst ok = ingen läsning = nej 

Starta om Samba-tjänsten igen:

sudo service samba omstart 

Nästa måste vi lägga till en användare i systemet. Byta ut “jamie” med ditt önskade användarnamn som du loggar in för att komma åt den delade mappen. Följande kommandon ber dig att skapa dina lösenord, den första på en systemnivå och den nästa för Samba. Ändra de sista kommandona om du kallade din dators enhet något annat (och här är en primer på filägande i Linux).

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

Test - du ska kunna ansluta från en annan maskin i ditt nätverk och läsa / skriva filer till den nya delen. Kontrollera att de visas på Pi också med ls inifrån / mnt / enter mapp.

VPN-inställning

Installera nödvändiga paket

sudo apt-get install openvpn resolvconf 

Ladda ner OpenVPN config-filerna från din leverantör. Du kan kolla in en lista över de bästa VPN-erna här, men se till att hitta en som är torrvänlig. Jag använder privacy.io mig själv, men Privat Internet Access är ett annat populärt alternativ inom torrent samhällen. Hur som helst ska du kunna ta en ZIP-fil med konfigurationer och ett certifikat. Lägg dessa i din torrentsmapp, i en katalog som heter openvpn. Ändra följande kommando så det pekar på din config-fil, vilket 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 produktion är du bra. Träffa CTRL-C att säga upp det. Det är irriterande att skriva in lösenordet, men vi behöver några ändringar för att lägga till start och stoppa skript. Redigera config-filen (igen, ersätt privacyIO.ovpn med .ovpn-filen som leverantören gav dig)

nano /mnt/torrents/openvpn/privacyIO.ovpn 

Ändra följande rad först. I grund och botten säger vi att vi ska 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ösenordet på nästa. Spara och försök att ansluta igen:

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

Du bör inte bugged för att logga in den här tiden. 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 anger några skript vi ska skapa senare för att utföra uppgifter när anslutningen antingen kommer upp framgångsrikt eller går ner. Se till att du är i mnt / enter / openvpn katalog och kör sedan följande:

nano route-up.sh 

Lägg till följande som garanterar att trafik skickas ut över VPN:

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

Skapa sedan down.sh-skriptet

nano down.sh 

Lägg till:

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

Slutligen vill vi ha ett manus för att öppna anslutningen, istället för att starta det från kommandoraden som vi just gjorde.

nano vpn.sh 

Klistra in i 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 

Nu gör alla dessa skript körbara och starta VPN-skriptet vid start.

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

Lägg till följande rad före utgång 0 linje. Vi berättar bara om att starta det här skriptet vid start.

/mnt/torrents/openvpn/vpn.sh 

Slutligen starta om systemet på nytt.

Logga in igen och kör ifconfig. Du vet att det fungerar om du ser en post till tap0 (eller tun0), och kan lyckas curl en webbsida:

curl //www.makeuseof.com 

Torrent-klienten

Nästan där nu. Slutligen ska vi installera Transmission, som är lätt och har en bra webb GUI. Följande kommandon installerar och stoppar sedan demonen - eftersom vi behöver konfigurera den först - öppnar du inställningsfilen för redigering.

sudo apt-get installera överföring-daemon sudo /etc/init.d/transmission-daemon stop sudo nano /etc/transmission-daemon/settings.json 

Byta “rpc-autentisering-required” till falskt; Byta “rpc-whitelist” att inkludera ditt lokala delnä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": sant "umask": 2, 

Därefter redigerar du själva startmonofilen för att hantera några tillståndsproblem.

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

Ändra USER = transmission-daemon till USER = rot. Uppdatera demonen.

sudo serviceöverföring-daemon reload 

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

sudo apt-get installera avahi-daemon 

Om du antar ditt värdnamn är standardvärdet (raspberrypi, men kan ändras med raspi-config), navigera till:

http: //raspberrypi.local: 9091 / sändning / webb /

Kontrollera först att din torrent IP är korrekt förtäckt via VPN. Ladda ner test torrentfilen från TorGuard - nedladdningsgraden ser ut som en annons, men den är inte - och släpp den i torrents delad mapp.

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

IP-kontrollen torrent ska returnera ett fel, tillsammans med den IP-adress det upptäckte. Se till att det inte är ditt hem-IP - om det är så har VPN inte ställts in rätt. Som standard kommer alla torrenter du släpper i mappen att bytas till .added och en .part-fil ska skapas tills överföringen är klar. Verifiera detta är fallet i din delade mapp.

Det är allt! Du har nu en super låg, säker, torrentladdande Pi - vilket ger din arbetsstation tillgänglig för bättre saker. Du kanske nu vill titta på att lägga till en UPnP-server för streaming media runt nätverket eller använda BitTorrent Sync för att skapa ditt eget molnlagring. Skapa din egen Cloud Storage med Raspberry Pi och BitTorrent Sync. Skapa din egen Cloud Storage med Raspberry Pi och BitTorrent Synkronisera Tro inte hype: molnet är långt ifrån säkert. Men ingen rädsla - nu kan du rulla ut din egen privata, obegränsade och säkra molnlagringsplattform. Läs mer . Vilka funktioner kommer du att lägga till i?

Utforska mer om: BitTorrent, Raspberry Pi.