Сервер загрузки: различия между версиями
Владимир (обсуждение | вклад) |
Владимир (обсуждение | вклад) |
||
| Строка 263: | Строка 263: | ||
</source> | </source> | ||
* | * | ||
После этого проверить правильность составления <code>/etc/fstab</code>: | После этого проверить правильность составления <code>/etc/fstab</code>: | ||
findmnt --verify | findmnt --verify | ||
Текущая версия от 16:34, 13 апреля 2025
В данном разделе опишу методы получения информации из интернета на сервер, в частности хранилище NAS.
Torrent серверы - начинал с transmission, потом использовал deluge. Сейчас остановился на qBitorrent. Мне кажется он более современный. Настроек побольше в Веб интерфейсе.
Установка и настройка qBittorrent Enhanced Edition
Эта инструкция описывает процесс установки qBittorrent Enhanced Edition через PPA-репозиторий на Ubuntu или других Debian-based системах, настройку системного пользователя, прав доступа, запуск службы и подключение к веб-интерфейсу. Инструкция ориентирована на использование версии без графического интерфейса (nox).
Предварительные требования
- Система на базе Ubuntu/Debian с доступом к терминалу.
- Права суперпользователя (sudo).
- Подключение к интернету для загрузки пакетов.
Добавление PPA-репозитория и установка
qBittorrent Enhanced Edition — это форк стандартного qBittorrent с дополнительными функциями. Установка выполняется через официальный PPA-репозиторий для получения актуальной версии.
Выполните следующие команды:
sudo add-apt-repository ppa:poplite/qbittorrent-enhanced
sudo apt update
sudo apt install qbittorrent-enhanced-nox
- Пояснения
add-apt-repositoryдобавляет PPA-репозиторий с пакетами qBittorrent Enhanced Edition.apt updateобновляет список пакетов, чтобы система видела новый репозиторий.qbittorrent-enhanced-nox— версия без графического интерфейса, предназначенная для серверов.
Настройка пользователя qbtuser
При установке создаётся системный пользователь qbtuser, от имени которого работает qBittorrent. Однако у него изначально отсутствует домашняя директория, что требует ручной настройки.
Выполните команды:
sudo mkdir /home/qbtuser
sudo chown qbtuser:qbtuser /home/qbtuser
sudo chmod 700 /home/qbtuser
sudo usermod -d /home/qbtuser qbtuser
- Пояснения
mkdir /home/qbtuserсоздаёт домашнюю директорию.chown qbtuser:qbtuserназначает владельцем директории пользователя и группуqbtuser.chmod 700ограничивает доступ к директории только для владельца.usermod -d /home/qbtuser qbtuserпривязывает директорию как домашнюю для пользователя.
Проверка настроек пользователя
Убедитесь, что пользователь настроен корректно:
getent passwd qbtuser
Ожидаемый результат:
qbtuser:x:107:110::/home/qbtuser:/usr/sbin/nologin
- Пояснения
- Если до команды
usermodвыполнить проверку, домашняя директория будет/nonexistent. - Поле
/home/qbtuserподтверждает успешную привязку директории. /usr/sbin/nologinуказывает, что это системный пользователь без возможности входа в оболочку.
Проверка идентификаторов пользователя
Идентификаторы пользователя и группы важны для настройки прав доступа, особенно при использовании контейнеров.
Выполните:
id qbtuser
Ожидаемый результат:
uid=107(qbtuser) gid=110(qbtuser) groups=110(qbtuser)
- Пояснения
uid=107— идентификатор пользователя.gid=110— идентификатор группы.- Эти значения пригодятся для настройки контейнеров (например, Docker) или прав доступа к файлам.
Запуск и проверка службы
Запустите службу qBittorrent и проверьте её состояние:
sudo systemctl start qbittorrent-enhanced-nox
sudo systemctl status qbittorrent-enhanced-nox
- Пояснения
systemctl startзапускает службу.systemctl statusотображает статус и логи. В логах можно найти временные логин и пароль для веб-интерфейса.
Подключение к веб-интерфейсу
qBittorrent управляется через веб-интерфейс.
- Откройте браузер и перейдите по адресу:
http://<ip-адрес-машины>:8080
- Введите логин и пароль из логов (по умолчанию: логин —
admin, пароль —adminadmin). - Смените логин и пароль в настройках веб-интерфейса для повышения безопасности.
- Пояснения
- Замените
<ip-адрес-машины>на IP сервера. Для локальной машины используйтеlocalhost. - Порт
8080можно изменить в конфигурации qBittorrent.
Настройка автозапуска
Включите автозапуск службы при загрузке системы:
sudo systemctl enable qbittorrent-enhanced-nox
- Пояснения
- Команда создаёт ссылки для автоматического запуска службы.
Настройка монтирования каталога с хоста в LXC-контейнер с ремаппингом прав
Эта часть инструкции описывает настройку монтирования каталога с хоста в непривилегированный LXC-контейнер с использованием bindfs для ремаппинга прав доступа. Это необходимо, чтобы файлы, создаваемые в контейнере (например, qBittorrent), на хосте принадлежали пользователю и группе с ID 0:0 (root), а в контейнере соответствовали пользователю qbtuser (UID=107, GID=110).
Предварительные требования
- Хостовая система с установленным Proxmox VE или другим LXC-хостом.
- Непривилегированный LXC-контейнер (в примере — ID 108).
- Каталог на хосте (например,
/mnt/meganas/media), который нужно монтировать в контейнер. - Установленный qBittorrent Enhanced Edition в контейнере (см. предыдущий раздел).
- Ремаппинг пользователей: на хосте UID=100107 и GID=100110 соответствуют UID=107 и GID=110 в контейнере.
Установка bindfs на хосте
Для ремаппинга прав доступа используется утилита bindfs, которая позволяет монтировать каталог с изменением UID/GID.
Выполните на хосте:
apt install bindfs
Проверьте версию для подтверждения установки:
bindfs --version
- Пояснения
bindfsпозволяет монтировать каталог с изменением владельца и прав доступа без изменения исходных файлов.- Установка выполняется на хосте, а не в контейнере.
Проверка каталога на хосте
Перед настройкой убедитесь, что каталог на хосте имеет корректные права и владельца (0:0).
Выполните:
ls -ln /mnt/meganas/media/
Пример вывода:
drwxrwxrwx+ 1 0 0 110 апр 7 09:17 Anime
drwxrwxrwx+ 1 0 0 98 дек 22 17:00 education
drwxrwxrwx+ 1 0 0 14 апр 11 19:18 Film
drwxrwxrwx+ 1 0 0 62 дек 22 17:05 Home
drwxrwxrwx+ 1 0 0 28 окт 18 2023 Series
drwxrwxrwx+ 1 0 0 444 апр 13 21:53 torrents
drwxrwxrwx+ 1 0 0 82 дек 22 16:59 'Восстановленое AI'
drwxrwxrwx+ 1 0 0 564 окт 21 09:30 Изображения
drwxrwxrwx+ 1 0 0 138 апр 7 2024 Музыка
drwxrwxrwx+ 1 0 0 1948 мар 26 20:36 шара
- Пояснения
- Все подкаталоги принадлежат
0:0(root:root), что соответствует требованиям для монтирования в другие контейнеры. - Права
drwxrwxrwxобеспечивают полный доступ, что упрощает работу.
Настройка bindfs для ремаппинга
Создайте точку монтирования для bindfs на хосте:
mkdir /bindfs/217
Выполните монтирование с ремаппингом:
bindfs --map=0/100107:@0/@100110 --perms=0775 /mnt/meganas/media /bindfs/217
- Пояснения
--map=0/100107:@0/@100110указывает, что UID=0 и GID=0 на хосте будут отображаться как UID=100107 и GID=100110 в точке монтирования.--perms=0775задаёт права доступа для смонтированного каталога (чтение/запись для владельца и группы, чтение/выполнение для остальных).- Исходный каталог
/mnt/meganas/mediaмонтируется в/bindfs/217.
Проверьте результат:
ls -ln /bindfs/217
Ожидаемый вывод:
drwxrwxr-x+ 1 100107 100110 110 апр 7 09:17 Anime
drwxrwxr-x+ 1 100107 100110 98 дек 22 17:00 education
drwxrwxr-x+ 1 100107 100110 14 апр 11 19:18 Film
drwxrwxr-x+ 1 100107 100110 62 дек 22 17:05 Home
drwxrwxr-x+ 1 100107 100110 28 окт 18 2023 Series
drwxrwxr-x+ 1 100107 100110 444 апр 13 21:53 torrents
drwxrwxr-x+ 1 100107 100110 82 дек 22 16:59 'Восстановленое AI'
drwxrwxr-x+ 1 100107 100110 564 окт 21 09:30 Изображения
drwxrwxr-x+ 1 100107 100110 138 апр 7 2024 Музыка
drwxrwxr-x+ 1 100107 100110 1948 мар 26 20:36 шара
- Пояснения
- Все файлы и папки теперь отображаются с UID=100107 и GID=100110, что соответствует ремаппингу для контейнера.
Настройка LXC-контейнера
Чтобы каталог стал доступен в контейнере, обновите его конфигурацию.
Остановите контейнер:
pct stop 108
Отредактируйте конфигурационный файл:
nano /etc/pve/lxc/108.conf
Добавьте строку для монтирования:
mp0: /bindfs/217,mp=/nas
- Пояснения
mp0— точка монтирования./bindfs/217— каталог на хосте.mp=/nas— путь, где каталог будет доступен в контейнере.
Запустите контейнер:
pct start 108
Войдите в контейнер для проверки:
pct enter 108
Проверьте каталог в контейнере:
ls -ln /nas
Ожидаемый вывод:
drwxrwxr-x+ 1 107 110 110 апр 7 09:17 Anime
drwxrwxr-x+ 1 107 110 98 дек 22 17:00 education
drwxrwxr-x+ 1 107 110 14 апр 11 19:18 Film
drwxrwxr-x+ 1 107 110 62 дек 22 17:05 Home
drwxrwxr-x+ 1 107 110 28 окт 18 2023 Series
drwxrwxr-x+ 1 107 110 444 апр 13 21:53 torrents
drwxrwxr-x+ 1 107 110 82 дек 22 16:59 'Восстановленое AI'
drwxrwxr-x+ 1 107 110 564 окт 21 09:30 Изображения
drwxrwxr-x+ 1 107 110 138 апр 7 2024 Музыка
drwxrwxr-x+ 1 107 110 1948 мар 26 20:36 шара
- Пояснения
- В контейнере каталог отображается с UID=107 и GID=110, что соответствует пользователю
qbtuser. - Благодаря ремаппингу в LXC, UID=100107 (хост) преобразуется в UID=107 (контейнер).
Настройка qBittorrent для использования каталога
В веб-интерфейсе qBittorrent (доступном по http://<ip-контейнера>:8080):
- Перейдите в раздел Настройки → Загрузки.
- Укажите путь для сохранения файлов, например,
/nas/torrents. - Сохраните изменения.
- Пояснения
- Все файлы, сохранённые qBittorrent в
/nas/torrents, будут принадлежатьqbtuser(UID=107, GID=110) в контейнере. - На хосте эти файлы будут принадлежать
root(UID=0, GID=0), что упрощает их использование в других контейнерах.
Дополнительные рекомендации
- Автоматизация bindfs: Чтобы монтирование выполнялось автоматически, добавьте строку в
/etc/fstab:
nano /etc/fstab
Вставим строку:
bindfs#/mnt/meganas/media /bindfs/217 fuse --map=0/100107:@0/@100110,--perms=0775 0 0
После этого проверить правильность составления /etc/fstab:
findmnt --verify
Должен появится вывод похожий на этот:
[W] your fstab has been modified, but systemd still uses the old version;
use 'systemctl daemon-reload' to reload
0 parse errors, 0 errors, 1 warningЭто говори об отсутствии ошибок и одном предупреждении, сообщающем о том что нужно перезапустить службу daemon-reload:
systemctl daemon-reload
После чего нужно отмонтировать наш тестовый каталог:
umount /bindfs/217
И выполнить монтирование с помощью fstab:
mount -a
Итог
Каталог с хоста теперь доступен в LXC-контейнере по пути /nas с правильным ремаппингом прав. qBittorrent может использовать этот каталог для загрузки файлов, и все изменения на хосте будут принадлежать root (UID=0, GID=0), что упрощает совместное использование с другими контейнерами. Настройка завершена, и вы можете продолжить работу с торрентами.
Proxy
dns
Сначала создадим новое CNAME для нашего веб интерфейса. На сайте dns.he.net, залогинимся, перейдем к настройкам нашего домена, и там нажмем New CNAME, там впишем
Name: qb.mywolfram.ru
Hostname: host.mywolfram.ru
TTL (Time to live): 30 минут
Сервер Nginx
Переходим на наш сервер nginx
На сервере нужно создать файл с настройками для нашего proxy:
nano /etc/nginx/sites-enabled/qb.mywolfram.ru
Пропишем туда следующее:
server {
listen 80;
server_name qb.mywolfram.ru;
return 301 https:qb.mywolfram.ru;
}
server {
listen 443;
server_name qb.mywolfram.ru;
ssl_certificate /etc/letsencrypt/live/qb.mywolfram.ru/fullchain.pem; # managed by Certbot
ssl_certificate_key /etc/letsencrypt/live/qb.mywolfram.ru/privkey.pem; # managed by Certbot
location / {
proxy_pass http://192.168.1.215:8080;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}nginx -t
systemctl restart nginx
certbot --nginx -d qb.mywolfram.ru
После чего проверить файл конфигурации, не на заменял ли чего certbot:
nano /etc/nginx/sites-enabled/qb.mywolfram.ru
Если что то заменил, то вписываем наши данные.
В торрент сервером готово. Теперь, можно загружать круглые сутки, и добавлять загрузки в любой точке мира.
Jackett
Штука для поиска на торрентах.
База огромная, во всех можно подключиться в учетке.
Используется для других сервисов
Установим.
Переходим в домашний каталог например:
cd /home/vova
Скачиваем релизный архив Jackett на Githab.
можно wget можно winscp, как удобно.
Распаковываем архив:
tar -xvf Jackett.....tar.gz
Переходим в папку:
cd ./Jackett/
Запускаем установщик:
sudo ./install_service_systemd.sh
Сервер поднят. А вы думали там все сложно? Конечно же да!
Переходим по адресу в веб интерфейс
http://ЛОКАЛЬНЫЙ_АДРЕСС_МАШИНЫ:9117
Начинаем добавлять наши торренты. Но мы неминуемо наткнёмся на проблемы. А именно то, что живем в России. А значит 90 процентов трекеров недоступны, без обходных путей.
TOR
monitorrent
Штука чтобы мониторить выбранную раздачу на торренте и обновлять файл торрента, если что то меняется.
Подготовить систему.
Подготовка
Поставить python и pip
apt install python3
apt install python3-pip
Версия Убунты 20
- Так же уточняю что делаю все от пользователя root, в контейнере нет других пользователей. И мне без разницы на данный момент на безопасность, всё сугубо для себя.
Создать папку для загрузки и распаковки
mkdir /root/monitorrent
cd /root/monitorrent
Установка monitorrent
Скачать архив. Находится это все на гитхабе, вот страничка. Лучше взять последнюю версию, не ту что в мануале, надеюсь установка не изменится. На случай если изменится, файл конкретной той версии с корой работаем на облаке. ТОЛЬКО на 20.04
wget https://github.com/werwolfby/monitorrent/releases/download/1.2.0/monitorrent-1.2.0.zip
Распаковывавшем архив unzip, если его нет ставим
apt install unzip
unzip monitorrent-1.2.0.zip
Теперь запустить установку со скрипта requirements.txt
pip install -r requirements.txt
В инструкции указана установка: playwright --with-deps install firefox но при выполнении команды в том виде как на инструкции ничего не работает.
Установил без аргумента --with-deps
python -m playwright install firefox
playwright install firefox
Затем можно сделать тестовый запуск
python3 server.py
Перейти по адресу машины с портом 6687
http://0.0.0.0:6687
Ввести пароль: monitorrent
И самое главное его поменять, как оказалось без его смены все это нормально не работает, но может я ошибаюсь.
Автозапуск monitorrent
Теперь нужно озаботится автозапуском данной утилиты.
Это делать лучше через службу systemctl
создаём файл для запуска службы
nano /etc/systemd/system/monitorrent.service
В него вписываю следующие дела, сохраняем
[Unit]
Description=Monitorrent
After=network.target
[Service]
ExecStart=/usr/bin/python3 /root/monitorrent/server.py
Restart=always
RestartSec=10
WorkingDirectory=/root/monitorrent/
User=root
Group=root
KillMode=process
[Install]
WantedBy=multi-user.target
Перезагружаю демона
systemctl --system daemon-reload
Включаю автозапуск службы
systemctl enable monitorrent
Запускаю
systemctl start monitorrent
VPN
Готово, теперь сталкиваемся с проблемой. У нас в стране заблокированы все те торренты которые перечислены в списке.
Кто то может это решить поиском или покупкой прокси.
Но у меня есть Машина в Oracle в германии, и мост до неё. Поэтому я просто поставлю WG на эту машину и пущу весь трафик через германию.
Ставлю WG
apt install wireguard
Прописываю пути в конфиг
nano /etc/wireguard/wg0.conf
[Interface]
PrivateKey = oEVmbQsTk1dfD9oOdpYcfqre/CYHlJdJlKGybbk/BEM=
Address = 10.49.0.2/32
PostUp = iptables -A FORWARD -i wg0 -j ACCEPT; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
PostDown = iptables -D FORWARD -i wg0 -j ACCEPT; iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE
#DNS = 172.16.154.105
[Peer]
PublicKey = xu0FBJ3aqvshpV+ExHcR7mXyNOeod0j/5lMITPmhxjs=
PresharedKey = ab4Ha9BKzKGVRtOTtulehtGABtCb0B6lpus4K/TAcmM=
AllowedIPs = 0.0.0.0/0
Endpoint = 152.70.160.135:54321Запускаю службу
wg-quick up wg0
и включаю автозапуск
systemctl enable wg-quick@wg0.service
если не стартует WG с ошибкой line 32: resolvconf: command not found
apt install openresolv
В общем то вот и весь сервер. Работает себе и работает. Есть пить не просит.