Обновите настройки проброса порта qBittorrent nox из bash.

Вопрос или проблема

Как я могу обновить настройки переадресации портов qBittorrent nox из bash?

Я попытался следовать этому примеру, немного изменив его для работы с PIA VPN, но когда я проверяю настройки qBittorrent, настройки переадресации портов не обновлены.

Я отключил аутентификацию для локального доступа, так что это не должно быть проблемой.

 

Вот скрипт, который я запускаю

#читаем PIA порт
forwarded_port=$(piactl get portforward)

echo $forwarded_port

WEBUI_PORT=8080 #порт qBittorrent
web_protocol="http"

curl -k -i -X POST -d "json={"random_port": false}" "${web_protocol}://localhost:${WEBUI_PORT}/api/v2/app/setPreferences" # &> /dev/null
curl -k -i -X POST -d "json={"listen_port": ${forwarded_port}}" "${web_protocol}://localhost:${WEBUI_PORT}/api/v2/app/setPreferences" # &> /dev/null

Вывод скрипта:

50483
HTTP/1.1 200 OK
connection: keep-alive
content-length: 0
content-security-policy: default-src 'self'; style-src 'self' 'unsafe-inline'; img-src 'self' data:; script-src 'self' 'unsafe-inline'; object-src 'none'; form-action 'self'; frame-ancestors 'self';
content-type: text/plain; charset=UTF-8
date: Вск, 11 Авг 2024 17:54:52 GMT
referrer-policy: same-origin
set-cookie: SID=6nnIxJuRqqupqkO8TcOVz76j5KeD6dhI; HttpOnly; path=/; SameSite=Strict
x-content-type-options: nosniff
x-frame-options: SAMEORIGIN
x-xss-protection: 1; mode=block

HTTP/1.1 200 OK
connection: keep-alive
content-length: 0
content-security-policy: default-src 'self'; style-src 'self' 'unsafe-inline'; img-src 'self' data:; script-src 'self' 'unsafe-inline'; object-src 'none'; form-action 'self'; frame-ancestors 'self';
content-type: text/plain; charset=UTF-8
date: Вск, 11 Авг 2024 17:54:52 GMT
referrer-policy: same-origin
set-cookie: SID=1IBcvH+n82fJA3DYv4QBRz2CxCK3u/Si; HttpOnly; path=/; SameSite=Strict
x-content-type-options: nosniff
x-frame-options: SAMEORIGIN
x-xss-protection: 1; mode=block

Этот скрипт правильно устанавливает настройки переадресации портов в qBittorrent nox с PIA VPN.

#читаем PIA порт
forwarded_port=$(piactl get portforward)

echo $forwarded_port

WEBUI_PORT=8080 #порт qBittorrent
web_protocol="http"

curl -k -i -X POST -d "json={\"random_port\": false}" "http://localhost:${WEBUI_PORT}/api/v2/app/setPreferences"
curl -k -i -X POST -d "json={\"listen_port\": ${forwarded_port}}" "http://localhost:${WEBUI_PORT}/api/v2/app/setPreferences"

Еще один вариант с автоматизацией с помощью py-natpmp для ProtonVPN, но может быть адаптирован для других провайдеров VPN.

Два скрипта, которые вы можете монтировать в docker или запускать в вашей ОС. Они будут проверять открытые порты и обновлять ваши настройки qBittorrent.

Я просто смонтировал специализированное место в своем контейнере, смонтированное по адресу /usr/sbin, другое в месте инициализации скриптов и, наконец, файл журнала также на хосте.

https://gist.github.com/KaBankz/c5a08845e3c64fbae8053dc7d28f8191

Спасибо github.com/KaBankz

Ответ или решение

Для обновления настройки переадресации портов в qBittorrent NOX с использованием Bash, необходимо учитывать несколько важных аспектов. Ваша задача заключается в отправке корректных HTTP-запросов на WebUI qBittorrent, что подразумевает правильное форматирование данных JSON и успешное взаимодействие с API qBittorrent.

На основе предоставленного вами скрипта, можно выделить несколько ключевых моментов и сделать необходимые правки, чтобы обеспечить правильное обновление настройki портов:

1. Корректное форматирование JSON

В вашем скрипте запросы к API содержат не совсем корректное форматирование JSON. Вам нужно использовать экранирование двойных кавычек, чтобы объект JSON был корректным.

# Получаем перенаправленный порт из PIA
forwarded_port=$(piactl get portforward)

echo "Перенаправленный порт: $forwarded_port"

WEBUI_PORT=8080 # Порт qBittorrent
web_protocol="http"

# Устанавливаем случайный порт в false
curl -k -i -X POST -d "json={\"random_port\": false}" "${web_protocol}://localhost:${WEBUI_PORT}/api/v2/app/setPreferences"

# Устанавливаем перенаправленный порт
curl -k -i -X POST -d "json={\"listen_port\": ${forwarded_port}}" "${web_protocol}://localhost:${WEBUI_PORT}/api/v2/app/setPreferences"

2. Проверка состояния соединения с API

Убедитесь, что qBittorrent действительно запущен и слушает на указанном порту (8080). Вы можете выполнить следующую команду, чтобы убедиться в этом:

curl -k -i "${web_protocol}://localhost:${WEBUI_PORT}/api/v2/app/version"

Это должно вернуть информацию о версии qBittorrent и подтвердить доступность API.

3. Логи и отладка

Для нахождения и диагностики возможных ошибок полезно включить ведение логов. Вы можете перенаправить вывод вашей команды curl в файл для дальнейшего изучения:

curl -k -i -X POST -d "json={\"random_port\": false}" "${web_protocol}://localhost:${WEBUI_PORT}/api/v2/app/setPreferences" >> qbittorrent.log 2>&1
curl -k -i -X POST -d "json={\"listen_port\": ${forwarded_port}}" "${web_protocol}://localhost:${WEBUI_PORT}/api/v2/app/setPreferences" >> qbittorrent.log 2>&1

4. Изменения в Docker (если используется)

Если qBittorrent работает в Docker-контейнере, обязательно проверьте, как организованы сети и порты в вашем контейнере, чтобы избежать проблем с маршрутизацией.

5. Альтернативные стратегии

Также, вы можете рассмотреть возможность автоматизации с использованием сторонних инструментов (например, py-natpmp), для работы с NAT-PMP и управления переадресацией портов. Это может повысить стабильность вашего соединения через VPN.

Заключение

После внесения исправлений и проверки всех указанных аспектов, ваши изменения в настройках qBittorrent должны успешно применяться. Если проблема сохраняется, рассмотрите возможность обращения к логам qBittorrent для получения дополнительной информации о возникших ошибках.

Оцените материал
Добавить комментарий

Капча загружается...