Внесите свой вклад в глобальную ‘сеть распространения Linux’, создав специализированный, безопасный мегалит для скачивания торрентов, который потребляет едва ли 10 Вт энергии. Разумеется, он будет основан на Raspberry Pi
Внесите свой вклад в глобальную ‘сеть распространения Linux’, создав специализированный, безопасный мегалит для скачивания торрентов, который потребляет едва ли 10 Вт энергии. Это возможно, и он, конечно же, будет основан на Raspberry Pi
Скачивание и рассадка (вы ведь рассаживаете, верно? Хорошие люди рассаживают с коэффициентом не менее 2. 0) – тяжелая задача для любого обычного компьютера, и это означает, что вы потребляете гораздо больше электроэнергии, чем следовало бы, оставляя его включенным на ночь. Что если бы вы могли переложить эту задачу на маломощный Raspberry Pi, достаточно маленький, чтобы засунуть его под половицу, и едва ли потребляющий 10 Вт энергии, чтобы сделать все это. Именно это я и покажу вам сегодня
Вот план:
- Установить Raspberry Pi с некоторым USB-накопителем и перенести системный диск на USB, чтобы продлить срок службы нашей SD-карты.
- Поделитесь этим по сети.
- Настройте VPN так, чтобы весь трафик направлялся через VPN, безопасно – и все останавливалось, если соединение не работает. Мы не хотим, чтобы провайдер знал, какой дистрибутив Linux мы предпочитаем.
- Установите торрент-клиент с удаленным управлением, Transmission.
Звучит сложно, не так ли? Уверяю вас, не больше, чем несколько сотен команд Терминала. Многое из этого пересекается с нашим учебником по NAS Raspberry Pi, так что если вас не очень интересуют торренты и VPN, то лучше заглянуть туда
USB-накопитель
Начните со свежей установки 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
Перезагрузите Pi с помощью
sudo reboot
Отсортировано! Теперь ваш Pi смонтирует корневой раздел с данными и раздел с торрентами
Поделитесь диском: 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’, чтобы найти следующую строку и un закомментировать ее
security = user
Добавьте следующее, чтобы определить нашу общую папку torrents:
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
readonly = 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
Если вы получите результат, подобный этому, все в порядке. Нажмите 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
На этот раз у вас не должно быть ошибок при входе в систему. Ура! Далее снова откройте файл config и добавьте следующие строки:
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
Добавьте следующую строку перед строкой exit 0. Мы просто указываем запустить этот скрипт при запуске
/mnt/torrents/openvpn/vpn.sh
Наконец, снова перезагрузите систему
Снова войдите в систему и выполните ifconfig. Вы поймете, что все работает, если увидите запись для tap0 (или tun0), и сможете успешно завернуть веб-страницу:
curl https://www.makeuseof.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-whitelist’ на включение вашей локальной подсети – например:
'rpc-whitelist''127. 0. 0. 1,10. 0. 1.*'
Добавьте или скорректируйте следующие параметры, если они уже присутствуют:
'download-dir''/mnt/torrents'
'watch-dir''/mnt/torrents/'
'watch-dir-enabled'true
'umask'
Далее отредактируйте сам файл запуска демона, чтобы решить некоторые проблемы с разрешениями
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/transmission/web/
Сначала проверьте, правильно ли маскируется IP вашего торрента через VPN. Скачайте тестовый торрент-файл с TorGuard – графика загрузки выглядит как реклама, но это не так – и бросьте его в общую папку torrents
Мы уже настроили Transmission на просмотр этой папки на предмет новых торрентов, поэтому она должна быть добавлена немедленно. Продолжайте и закиньте туда несколько легальных торрентов дистрибутивов Linux
Торрент с проверкой IP-адреса должен выдать ошибку, а также IP-адрес, который он обнаружил. Убедитесь, что это не ваш домашний IP – если это так, то VPN настроен неправильно. По умолчанию все торренты, которые вы бросите в папку, будут переименованы в.added, и файл.part должен быть создан до завершения передачи. Проверьте, так ли это в вашей общей папке
Вот и все! Теперь у вас есть супермаломощный, безопасный, загружающий торренты Pi, оставляющий вашу рабочую станцию свободной для более важных дел. Возможно, вы захотите добавить UPnP-сервер для потоковой передачи мультимедиа по сети или использовать BitTorrent Sync для создания собственного облачного хранилища. Какие функции вы будете добавлять?
Комментировать