Можно ли разместить мой веб-интерфейс Transmission или uTorrent на моем веб-сервере? У них есть веб-интерфейс локальной сети, и я не хочу портировать вперед ... Можно ли как-то настроить его для входа на мой сервер и размещения там интерфейса?

2 ответа2

2

Хорошо, так как вы все попросили об этом, вот оно.

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

  • Фактический интерфейс будет по-прежнему размещаться на вашем торрент-клиенте, но вы сможете получить к нему доступ через свой веб-сайт.
  • Ваш хост должен разрешить удаленный порт перенаправления (ssh -R). Большинство хостов VPS позволят это; общего хостинга, вероятно, не будет.
  • Ваш хост должен позволять вам настраивать Apache с помощью директивы ProxyPass , что означает, что у вас должен быть доступ на запись к некоторой части конфигурации Apache (не к файлам .htaccess), а ваш хост должен загружать (или позволять загружать) mod_proxy в Apache.
  • Ваш хост должен разрешить установку открытого ключа SSH, чтобы вы могли пережить отключение ssh без необходимости ввода пароля для повторного подключения.

Вот основная идея. Давайте назовем порт, которым ваш веб-интерфейс обслуживается локально через порт L. Выберите случайный порт в диапазоне 49152-65535 и назовите его S; это порт, который будет прослушивать сервер.

Создайте ключ SSH для этой настройки и не шифруйте закрытый ключ с помощью пароля (нажмите Enter при появлении запроса). Используйте ssh-keygen для этого. (ssh-keygen -f $KEY_OUTPUT_PATH - выберите какой-нибудь файл, например, $HOME/torrentproxy.key для выходного пути.) Затем установите открытый ключ на сервере: ssh-copy-id -i $KEY_OUTPUT_PATH.pub user@yourwebhost .

Создайте скрипт оболочки torrent-ssh-proxy.sh со следующим содержимым:

#!/bin/sh

while true; do
    # Replace S and L with the ports chosen above.
    # Replace $KEY_OUTPUT_PATH with the path to your SSH private key.
    ssh -i $KEY_OUTPUT_PATH -R S:localhost:L user@yourwebhost

    echo 'Disconnected from server.'
    sleep 5
done

Когда вы запустите это, вы должны получить приглашение оболочки с сервера без ввода пароля; это хорошо. Оставьте этот скрипт запущенным.

(На этом этапе вы можете проверить, действительно ли удаленный хост прослушивает порт S, запустив netstat -tnlp | grep :S в оболочке сервера.)

Теперь нам нужно настроить Apache. Вам просто нужно добавить это в вашу конфигурацию Apache (она не будет работать с файлами .htaccess ):

ProxyPass /torrentweb http://localhost:S/

Снова замените S выбранным портом прослушивания. Перезапустите Apache.

Если это все сработало, когда вы заходите на http://yourwebsite.example.com/torrentweb вы должны увидеть веб-интерфейс вашего торрент-клиента.

Обратите внимание, что вы можете запустить клиент ssh в другом окне, чем веб-хостинг; просто настройте "localhost" в строке ssh скрипта, чтобы он соответствовал IP-адресу или имени хоста машины, на которой запущен веб-интерфейс torrent.


Что касается загрузки mod_proxy , вот как модуль загружается в Debian:

LoadModule proxy_module /usr/lib/apache2/modules/mod_proxy.so

Путь к mod_proxy.so может отличаться в зависимости от того, как ваш дистрибутив размещает содержимое пакета в файловой системе.

0

Переадресация порта послужила бы подходящим ответом ... Работает без нареканий.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .