O encaminhamento de porta teria servido como uma resposta apropriada ... Ele funciona perfeitamente.
É possível hospedar minha interface web Transmission ou uTorrent no meu servidor web? Eles têm uma interface web de rede local, e eu não quero portar para frente ... Posso de alguma forma configurá-lo para que ele faça login no meu servidor e hospede a interface lá?
Ok, já que todos vocês pediram um kludge, aqui está.
Você pode configurá-lo para acessar a interface da web até sua conta de hospedagem na web, com as seguintes restrições:
ssh -R
). A maioria dos hosts VPS permitirá isso; hospedagem compartilhada provavelmente não. ProxyPass
, o que significa que você deve ter acesso de gravação a alguma parte da configuração do Apache (não .htaccess
files) e seu host deve carregar (ou permitir que você load) mod_proxy
no Apache. Aqui está a ideia básica. Vamos chamar a porta em que sua interface web é servida na porta local L. Escolha uma porta aleatória no intervalo 49152-65535 e chame-a de S; esta é a porta que o servidor estará escutando.
Crie uma chave SSH para essa configuração e não criptografe a chave privada com uma senha (pressione Enter quando solicitado). Use ssh-keygen
para isso. ( ssh-keygen -f $KEY_OUTPUT_PATH
- escolha algum arquivo como $HOME/torrentproxy.key
para o caminho de saída). Em seguida, instale a chave pública no servidor: ssh-copy-id -i $KEY_OUTPUT_PATH.pub user@yourwebhost
.
Crie um script de shell torrent-ssh-proxy.sh
com estes conteúdos:
#!/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
Quando você executa isso, você deve obter um prompt de shell do servidor sem a necessidade de entrada de senha; isso é bom. Deixe este script em execução.
(Neste ponto, você pode verificar se o host remoto está de fato escutando na porta S executando netstat -tnlp | grep :S
no shell do servidor.)
Agora precisamos configurar o Apache. Você só precisa adicionar isso à sua configuração do Apache (não funcionará em .htaccess
files):
ProxyPass /torrentweb http://localhost:S/
Novamente, substitua S pela porta de escuta escolhida. Reinicie o Apache.
Se tudo isso funcionar, quando você for para http://yourwebsite.example.com/torrentweb
, deverá ver a interface da Web do seu cliente de torrent.
Observe que você pode executar o cliente ssh em uma caixa diferente do host da Web; basta ajustar "localhost" na linha ssh
no script para corresponder ao endereço IP ou ao nome do host da máquina que está executando a interface da Web do torrent.
Em relação ao carregamento de mod_proxy
, é assim que o módulo é carregado no Debian:
LoadModule proxy_module /usr/lib/apache2/modules/mod_proxy.so
O caminho para mod_proxy.so
provavelmente será diferente dependendo da forma de distribuição do conteúdo do pacote no sistema de arquivos.