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

Gör din del för det globala Linux-distributionsnätverket genom att bygga en dedikerad, säker, torrentladdande megalit som knappt använder 10W ström. Det kommer givetvis att vara baserat på en Raspberry Pi.

Gör din del för det globala Linux-distributionsnätverket genom att bygga en dedikerad, säker, torrentladdande megalit som knappt använder 10W ström.  Det kommer givetvis att vara baserat på en Raspberry Pi.
Annons

Gör din del för det globala "Linux distributionsnätet" genom att bygga en dedikerad, säker, torrent-nedladdande megalit som knappast använder 10W av ström. Det är möjligt, och det kommer givetvis att vara baserat på en Raspberry Pi.

Nedladdning och sådd (du gör frö, rätt? 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 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 bli 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.

 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- verktyget på lämplig enhet.

 sudo fdisk /dev/sda 

Tryck på 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 dess liv genom att undvika konstant läsnings- / skrivoperationer för att cachar etc. Installera rsync för att göra detta:

 sudo apt-get install 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 console=tty1 root=/dev/sda1 rootfstype=ext4 elevator=deadline rootwait rootdelay=5 

Ändra sedan fstab för att montera dem vid start.

 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 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 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 

Höger CTRL-W och skriv "säkerhet" för att hitta följande rad och inte kommentera den.

 security = user 

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

 [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 igen:

 sudo service samba restart 

Nästa måste vi lägga till en användare i systemet. Byt 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 users sudo passwd jamie sudo smbpasswd -a jamie sudo chown pi:users /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 med ls från mappen / mnt / torrents .

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 

openvpn-anslutning-output

Om du får en sådan produktion är du bra. Tryck CTRL-C för att avsluta 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-security 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 befinner dig i katalogen mnt / torrents / openvpn 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 route-up.sh chmod +x vpn.sh sudo nano /etc/rc.local 

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

 /mnt/torrents/openvpn/vpn.sh 

Slutligen starta om systemet på nytt.

ifocnfig-check-vpn

Logga in igen och kör ifconfig . Du vet att det fungerar om du ser en post för 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 det först - öppnar du 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 false; ändra "rpc-whitelist" för 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": true, "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 = root . Uppdatera demonen.

 sudo service transmission-daemon reload 

Slutligen installerar vi avahi-daemon för att installera 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 install avahi-daemon 

Om du antar ditt värdnamn är standard (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.

check-torrent-ip

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å.

transmissions torrent-ip-check-resultat

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.

Delad enhet

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 ska du lägga till i?

In this article