Hoe je je Raspberry Pi kunt veranderen in een Always-On Megalith downloaden
Doe je deel voor de wereld “Linux distributienetwerk” door een speciale, veilige, torrent-downloadende megaliet te bouwen die amper 10 W stroom verbruikt. Het is mogelijk en het zal natuurlijk gebaseerd zijn op een Raspberry Pi.
Downloaden en seeden (je doet zaad, toch? goede mensen zaaien tot een verhouding van minimaal 2,0) is een zware taak voor elke gewone computer en betekent dat je veel meer elektriciteit zuigt dan je zou moeten doen door hem 's nachts aan te laten staan. Wat als je die taak zou kunnen ontladen naar een low-powered Raspberry Pi, klein genoeg om onder een vloerplaat te proppen en nauwelijks 10W vermogen te breken om alles te doen. Dat is precies wat ik je laat zien vandaag.
Dit is het plan:
- Stel een Raspberry Pi in met een beetje USB-opslag en verplaats het systeemstation naar USB om de levensduur van onze SD-kaart te verlengen.
- Deel dat via het netwerk.
- Configureer een VPN zodat al het verkeer via de VPN wordt gerouteerd, veilig - en alles stopt als die verbinding mislukt. We willen niet dat ISP weet welke Linux-distro we prefereren.
- Installeer een op afstand te beheren torrent-client, Transmission.
Klinkt ingewikkeld, nietwaar? Niet meer dan een paar honderd Terminal-opdrachten, dat verzeker ik je. Veel van dit overlapt met onze Raspberry Pi NAS Zet uw Raspberry Pi in een NAS-doos Zet uw Raspberry Pi in een NAS-doos Heeft u een paar externe harde schijven rondslingeren en een Raspberry Pi? Maak er een goedkoop, laagvermogen netwerkgebonden aangesloten opslagapparaat van. Hoewel het eindresultaat zeker niet zo zal zijn als ... Lees meer tutorial, dus als je niet zo geïnteresseerd bent in de torrenting- en VPN-kant van de dingen, wil je dat misschien beter bekijken.
USB opslag
Begin met een nieuwe Raspian-installatie en sluit de Ethernet-interface aan en sluit je USB-opslag aan (via een USB-hub met eigen stroomvoorziening, anders heb je waarschijnlijk later te maken met fouten), maar deze hoeft nog niet te worden geformatteerd. Log op afstand in met de standaard pi / raspberry gebruikersnaam en wachtwoord combinatie, en voer dan uit:
sudo raspi-config
Wijzig de hoeveelheid geheugen die wordt gegeven over afbeeldingen tot 16 megabytes - we zullen dit volledig headless gebruiken, dus je hebt geen grafisch geheugen nodig. Sluit af en laten we sommige partities instellen op de USB. We gaan ten minste twee - een instellen om voor het systeem te gebruiken om de levensduur van onze SD-kaart te behouden, en de andere voor het opslaan van de downloads. Zoek eerst uit welk station uw USB is.
staart / var / log / berichten
In mijn geval was het gemakkelijk te identificeren als “sda”. Pas met dat in gedachten het volgende commando aan om de fdisk hulpprogramma op het juiste apparaat.
sudo fdisk / dev / sda
druk op p om huidige partities te vermelden. Als u bestaande nummers wilt verwijderen, drukt u op d. Maak een nieuwe primaire partitie, met n, dan p. Wanneer u naar de grootte wordt gevraagd, voert u in +8G. Ga nu door en maak een nieuwe partitie voor je torrent-gegevens (opnieuw, primaire), of meer partities als je dat wilt. w zal de nieuwe partitiekaart naar de schijf schrijven als je klaar bent.
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 hebt gepartitioneerd met meer dan twee partities.
sudo mkfs.ext4 / dev / sda1 sudo mkfs.ext4 / dev / sda2 sudo mkdir / mnt / systeemdrive sudo mkdir / mnt / torrents sudo mount / dev / sda1 / mnt / systeemdrive sudo mount / dev / sda2 / mnt / torrents df - h
De laatste opdracht bevestigt dat de partities correct zijn gemount. Vervolgens willen we de SD-kaartgegevens naar de schijf kopiëren - dit verlengt de levensduur door constante lees- / schrijfbewerkingen naar caches enz. Te voorkomen. Installeren rsync om dit te doen:
sudo apt-get installeer rsync sudo rsync -axv / / mnt / systemdrive
Hiermee start u een lange reeks bestandskopieën, dus twiddle uw vingers een beetje.
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 standaardwaarden, noatime 0 1 / dev / sda2 / mnt / torrents ext4 standaardwaarden 0 2
Geef commentaar op de volgende regel die verwijst naar de SD-kaart:
# / dev / mmcblk0p2 / ext4 standaardwaarden, noatime 0 1
Start de Pi opnieuw op
herstart sudo
Gesorteerd! Je Pi zal nu zowel een rootdatapartitie als je torrentpartitie aankoppelen
Deel de rit: Samba
Zorg ervoor dat we eerst zijn bijgewerkt, verwijder Wolfram Mathematica-pakketten die altijd problemen hebben veroorzaakt bij het doen van alles op de Pi (iets met wiskunde-kernel), installeer vervolgens de vereiste pakketten
sudo apt-get update sudo apt-get dist-upgrade sudo apt-get verwijderen wolfram-engine sudo apt-get installeren samba samba-common-bin sudo nano /etc/samba/smb.conf
Raken CTRL-W en typ “veiligheid” om de volgende regel te vinden, en unreageer er op.
beveiliging = gebruiker
Voeg het volgende toe om onze torrents gedeelde map te definiëren:
[torrents] comment = torrents path = / mnt / torrents geldige gebruikers = @users force group = gebruikers maken mask = 0775 force create mode = 0775 beveiligingsmasker = 0775 force beveiligingsmodus = 0775 directory masker = 2775 force directory mode = 2775 directory beveiliging mask = 2775 dwangmap beveiligingsmodus = 2775 browseable = yes writeable = ja gast ok = nee lees alleen = nee
Start de Samba-service opnieuw:
sudo service opnieuw opstarten
Vervolgens moeten we een gebruiker aan het systeem toevoegen. Vervangen “jamie” met de door u gewenste gebruikersnaam waarmee u inlogt om toegang te krijgen tot de gedeelde map. De volgende opdrachten vragen u vervolgens om uw wachtwoorden te maken, de eerste op systeemniveau en de volgende voor Samba. Pas de laatste commando's aan als je je datadrive iets anders noemde (en hier is een inleiding over het eigendom van bestanden in linux).
sudo useradd jamie -m -G gebruikers sudo passwd jamie sudo smbpasswd -a jamie sudo chown pi: gebruikers / 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 om bestanden te lezen / schrijven naar de nieuwe share. Controleer of ze ook op de Pi verschijnen ls van binnen de / Mnt / torrents map.
VPN-configuratie
Installeer de vereiste pakketten
sudo apt-get install openvpn resolvconf
Download de OpenVPN-configuratiebestanden van uw provider. Je kunt hier een lijst met de beste VPN's bekijken, maar zorg dat je er een vindt die torrentvriendelijk is. Ik gebruik zelf privacy.io, maar privé-internettoegang is een andere populaire optie binnen torrent-communities. Hoe dan ook, je zou in staat moeten zijn om een ZIP-bestand met configuraties en een certificaat te bemachtigen. Zet deze in je torrent-map, in een map genaamd openvpn. Pas de volgende opdracht aan, zodat deze naar uw configuratiebestand verwijst, dat vrijwel zeker anders zal zijn 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 uitvoer krijgt, ben je goed. Raken CTRL-C om het te beëindigen. Het is echter vervelend om het wachtwoord in te typen en we hebben enkele aanpassingen nodig om start- en stop-scripts 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
Wijzig eerst de volgende regel. 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
Opslaan en typ:
nano / mnt/torrents/pass.txt
Voer je gebruikersnaam in op de eerste regel en wachtwoord op de volgende regel. Sla op en probeer opnieuw verbinding te maken:
sudo openvpn --client --config /mnt/torrents/openvpn/privacyIO.ovpn --ca /mnt/torrents/openvpn/privacy.ca.crt
--scriptbeveiliging 2
U moet niet worden lastiggevallen om in te loggen in deze tijd. Yay! 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 met succes tot stand komt of naar beneden gaat. Zorg ervoor dat je in de mnt / torrents / openvpn directory en voer dan het volgende uit:
nano route-up.sh
Voeg het volgende toe dat ervoor zorgt dat verkeer via de VPN wordt verzonden:
#! / bin / sh iptables -t nat -I POSTROUTING -o tun0 -j MASQUERADE
Maak vervolgens het script down.sh aan
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 in de VPN-startopdracht van tevoren. In het geval u 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 vóór de exit 0 lijn. We vertellen het gewoon om dit script te starten bij het opstarten.
/mnt/torrents/openvpn/vpn.sh
Eindelijk start je systeem opnieuw op.
Log opnieuw in en voer uit ifconfig. Je weet dat het werkt als je een bericht ziet voor tap0 (of tun0), en in staat zijn om een webpagina te krullen:
krul //www.makeuseof.com
De Torrent-client
Nu bijna daar. Ten slotte gaan we Transmission installeren, dat licht is en een mooie web-GUI heeft. De volgende opdrachten worden geïnstalleerd en vervolgens wordt de daemon gestopt - omdat we deze eerst moeten configureren - en opent vervolgens het instellingenbestand voor bewerking.
sudo apt-get install transmissie-daemon sudo /etc/init.d/transmission-daemon stop sudo nano /etc/transmission-daemon/settings.json
Verandering “-Rpc-verificatie vereist” tot onwaar; verandering “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 met sommige toestemmingsproblemen om te gaan.
sudo nano /etc/init.d/transmission-daemon
Verander de USER = transmissie-daemon naar USER = root. Laad de daemon opnieuw.
sudo service transmissie-daemon herladen
Eindelijk, we zullen installeren avahi-daemon om Bonjour / Zeroconf-netwerken in te stellen, wat betekent dat we het IP-adres van de Pi niet nodig hebben 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 / transmissie / web /
Controleer eerst of je torrent-IP correct is verborgen door de VPN. Download het test torrent-bestand van TorGuard - de download-afbeelding ziet eruit als een advertentie, maar dat is het niet - en zet deze neer in de torrent-gedeelde map.
We hebben Transmissie al geconfigureerd om deze map te bekijken voor nieuwe torrents, dus deze moet onmiddellijk worden toegevoegd. Ga je gang en stop ook wat legale Linux distro-torrents.
De torrent voor IP-controle zou een fout moeten retourneren, samen met het IP-adres dat werd gedetecteerd. Zorg ervoor dat dit niet je eigen IP is - als dat zo is, is de VPN niet goed ingesteld. Standaard worden torrents die u in de map plaatst hernoemd naar .added en er moet 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 in het netwerk of het gebruik van BitTorrent Sync om uw eigen cloudopslag te maken. Bouw uw eigen cloudopslag met Raspberry Pi en BitTorrent Sync Bouw uw eigen cloudopslag met Raspberry Pi en BitTorrent Synchroniseren Geloof de hype niet: de cloud is verre van veilig. Maar wees niet bang - nu kunt u uw eigen private, onbeperkte en veilige cloudopslagplatform uitrollen. Lees verder . Welke functies ga je toevoegen??
Ontdek meer over: BitTorrent, Raspberry Pi.