Diy

Как превратить Raspberry Pi в постоянно загружаемый мегалит

Как превратить Raspberry Pi в постоянно загружаемый мегалит

Внесите свой вклад в глобальную «сеть распространения Linux», создав специальный защищенный мегалит с торрент-загрузкой, который потребляет всего лишь 10 Вт. Это возможно, и это, конечно, будет основано на Raspberry Pi.

Загрузка и посев (вы делаете посев, верно? Хорошие люди затравливают, по крайней мере, в соотношении 2,0) — трудная задача для любого обычного компьютера, и это означает, что вы потребляете гораздо больше электроэнергии, чем нужно, оставляя его включенным с ночевкой. Что, если бы вы могли переложить эту задачу на маломощный Raspberry Pi, достаточно маленький, чтобы уложиться под доску пола и едва сломавший 10 Вт мощности, чтобы сделать все это. Это именно то, что я покажу вам, как сделать сегодня.

Вот план:

  • Установите Raspberry Pi с USB-накопителем и перенесите системный диск на USB, чтобы продлить срок службы нашей SD-карты.
  • Поделитесь этим по сети.
  • Сконфигурируйте VPN так, чтобы весь трафик передавался через VPN, безопасно — и все останавливалось в случае сбоя этого соединения. Мы не хотим, чтобы провайдер знал, какой дистрибутив Linux мы предпочитаем.
  • Установите дистанционно управляемый торрент-клиент Transmission.

Звучит сложно, не так ли? Уверяю вас, не более нескольких сотен команд терминала. Многое из этого совпадает с нашим Raspberry Pi NAS. учебника, поэтому, если вас не так интересует торрент и VPN, вы можете попробовать это вместо этого.

Флешка

Начните с новой установки Raspian, подключите интерфейс Ethernet и подключите USB-накопитель (через USB-концентратор с питанием, или, скорее всего, вы столкнетесь с ошибками позже, как я), — его пока не нужно форматировать. Выполните удаленный вход с использованием комбинации имени пользователя и пароля pi / raspberry по умолчанию, а затем выполните команду:

sudo raspi-config 

Измените объем памяти, выделяемый на графику, до 16 мегабайт — мы будем использовать это полностью без головы, поэтому вам не понадобится графическая память. Выйдите, и давайте настроим некоторые разделы на USB. Мы собираемся настроить как минимум два — один для использования в системе, чтобы сохранить срок службы нашей SD-карты, а другой для сохранения загрузок. Сначала выясните, какой диск является вашим USB.

 tail /var/log/messages 

В моем случае это было легко идентифицировать как «sda». Имея это в виду, настройте следующую команду, чтобы запустить утилиту fdisk на соответствующем устройстве.

 sudo fdisk /dev/sda 

Нажмите p для просмотра списка текущих разделов. Для удаления любых существующих нажмите d . Создайте новый основной раздел с помощью n , затем p . Когда он попросит вас указать размер, введите + 8G . Теперь идите вперед и создайте другой раздел для ваших торрент-данных (опять же, основной) или еще несколько разделов, если хотите. W запишет новую карту разделов на диск, когда вы закончите.

Как только новая таблица будет написана, используйте следующие команды для форматирования дисков как linux ext4 . Используйте дополнительные команды, если вы разбили свой диск более чем на два раздела.

 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 

Последняя команда подтвердит, что вы правильно смонтировали разделы. Далее мы хотим скопировать данные SD-карты на диск — это продлит срок ее службы, избегая постоянных операций чтения / записи в кэш и т. Д. Установите rsync, чтобы сделать это:

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

Это инициирует длинную серию копирования файлов, так что немного потрясите пальцами.

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

Отрегулируйте это так:

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

Затем измените fstab, чтобы монтировать их при запуске.

 sudo nano /etc/fstab 

Добавьте следующие строки:

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

Закомментируйте следующую строку, которая относится к SD-карте:

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

Перезагрузите пи с

 sudo reboot 

Сортировка! Теперь ваш Pi будет монтировать как корневой раздел данных, так и ваш раздел торрентов.

Поделиться The Drive: Samba

Сначала убедитесь, что мы обновились, удалите пакеты Wolfram Mathematica, которые всегда вызывали у меня проблемы при выполнении абсолютно любых действий с Pi (что-то связанное с math-kernel), а затем установите необходимые пакеты

 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 

Нажмите CTRL-W и введите «security», чтобы найти следующую строку и откомментировать ее.

 security = user 

Добавьте следующее, чтобы определить нашу общую папку для торрентов:

 [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 

Перезапустите службу Samba:

 sudo service samba restart 

Далее нам нужно добавить пользователя в систему. Замените «jamie» на желаемое имя пользователя, с которым вы будете входить, чтобы получить доступ к общей папке. Затем следующие команды попросят вас создать ваши пароли, первый на системном уровне, а второй для Samba. Измените последние команды, если вы называете свой диск с данными как-то еще (и вот пример по владению файлами в 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 

Тест — вы должны иметь возможность подключиться с другого компьютера в вашей сети и читать / записывать файлы в новый общий ресурс. Проверьте, чтобы они тоже появлялись на Pi с помощью ls из папки / mnt / torrents .

Настройка VPN

Установите необходимые пакеты

 sudo apt-get install openvpn resolvconf 

Загрузите файлы конфигурации OpenVPN от вашего провайдера. Вы можете ознакомиться со списком лучших VPN-сетей здесь, но обязательно найдите тот, который подходит для торрентов. Я использую privacy.io , но Private Internet Access — еще один популярный вариант в торрент-сообществах. В любом случае вы сможете получить ZIP-файл с конфигурациями и сертификатом. Поместите их в свою папку torrents, в каталоге с именем openvpn . Измените следующую команду, чтобы она указала на ваш конфигурационный файл, который почти наверняка будет отличаться от privacyIO.ovpn

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

OpenVPN-соединения-вывода

Если вы получаете такой вывод, у вас все хорошо. Нажмите CTRL-C, чтобы завершить его. Однако раздражает необходимость ввода пароля, и нам нужно несколько модификаций для добавления сценариев запуска и остановки. Отредактируйте файл конфигурации (снова замените файл privacyIO.ovpn на файл .ovpn, предоставленный вашим провайдером)

 nano /mnt/torrents/openvpn/privacyIO.ovpn 

Сначала измените следующую строку. По сути, мы говорим, что будем хранить имя пользователя и пароль в файле с именем pass.txt.

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

Сохраните и введите:

 nano /mnt/torrents/pass.txt 

Введите имя пользователя в первой строке и пароль в следующей. Сохраните и попробуйте подключиться снова:

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

Вы не должны быть прослушаны, чтобы войти в этот раз. Ура! Затем снова откройте файл конфигурации и добавьте следующие строки:

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

Это указывает на некоторые сценарии, которые мы собираемся создать позже для выполнения задач, когда соединение либо успешно устанавливается, либо прерывается. Убедитесь, что вы находитесь в каталоге mnt / torrents / openvpn , а затем выполните следующее:

 nano route-up.sh 

Добавьте следующее, что гарантирует отправку трафика через VPN:

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

Затем создайте скрипт down.sh

 nano down.sh 

Добавлять:

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

Наконец, мы хотим, чтобы скрипт открывал соединение, а не запускал его из командной строки, как мы это только что сделали.

 nano vpn.sh 

Вставьте команду запуска VPN из ранее. Если вы забыли:

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

Теперь сделайте все эти скрипты исполняемыми и запустите скрипт VPN при запуске.

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

Добавьте следующую строку перед строкой выхода 0 . Мы просто говорим запустить этот скрипт при запуске.

 /mnt/torrents/openvpn/vpn.sh 

Наконец, перезагрузите вашу систему снова.

ifocnfig-регистрация VPN

Войдите снова и запустите ifconfig . Вы узнаете, что это работает, если увидите запись для tap0 (или tun0) и сможете успешно свернуть веб-страницу:

 curl //www..com 

Торрент-клиент

Почти там сейчас. Наконец, мы собираемся установить Transmission, который является легким и имеет приятный веб-интерфейс. Следующие команды устанавливают, затем останавливает демон — поскольку нам нужно сначала его настроить — затем открывает файл настроек для редактирования.

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

Измените «rpc-authentication-required» на false; измените «белый список rpc», чтобы включить вашу локальную подсеть — например:

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

Добавьте или настройте следующее, если оно уже присутствует:

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

Затем отредактируйте сам файл запуска демона, чтобы решить некоторые проблемы с правами доступа.

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

Измените USER = Transmission-Daemon на USER = root . Перезагрузите демон.

 sudo service transmission-daemon reload 

Наконец, мы установим avahi-daemon для настройки сети bonjour / zeroconf, что означает, что нам не нужно будет использовать IP-адрес Pi для доступа к нему из браузера — вместо этого мы сможем использовать raspberrypi.local адрес.

 sudo apt-get install avahi-daemon 

Предполагая, что ваше имя хоста является значением по умолчанию (raspberrypi, но может быть изменено с помощью raspi-config) , перейдите к:

Http: //raspberrypi.local: 9091 / передачи / веб /

Во-первых, проверьте, правильно ли замаскирован ваш торрент IP через VPN. Загрузите тестовый торрент-файл с TorGuard — изображение загрузки выглядит как реклама, но это не так — и поместите его в общую папку торрентов.

регистрация торрент-IP

Мы уже настроили Transmission для просмотра этой папки на наличие новых торрентов, поэтому она должна быть добавлена ​​немедленно. Идите и добавьте туда несколько легальных дистрибутивов Linux.

Передача-Торрент-IP-результаты проверки

Поток проверки IP должен возвращать ошибку вместе с обнаруженным IP-адресом. Убедитесь, что это не ваш домашний IP — если это так, VPN не был настроен правильно. По умолчанию все торренты, которые вы перетаскиваете в папку, будут переименованы в .added, и файл .part должен быть создан до завершения передачи. Убедитесь, что это так в вашей общей папке.

общий привод

Это оно! Теперь у вас есть супер-маломощный, безопасный, загружающий торрент Pi — оставляющий вашу рабочую станцию ​​доступной для лучших вещей. Теперь вы можете захотеть добавить сервер UPnP для потоковой передачи мультимедиа по сети или использовать BitTorrent Sync для создания собственного облачного хранилища. собственное облачное хранилище собственное облачное хранилище Какие функции вы будете добавлять?

Похожие посты
Diy

Вещи, которые вы должны иметь в виду, прежде чем брать ноутбук или смартфон в службу технической поддержки

Diy

Как использовать Arduino для съемки красивой скоростной фотографии

DiyLinux

Пять великолепных расширений Raspberry Pi, которые делают его еще более полезным

Diy

Первые шаги с Arduino: пристальный взгляд на печатную плату и структуру программы