Servidor VisualSVN visível na Internet, mas nem todos os subcomandos funcionam no cliente

2

Então meu chefe é um cara legal que está aberto para tentar novas idéias, e eu falei com ele para me deixar começar novos projetos no svn (ao invés de um sistema de controle de versão mais antigo). Neste momento, percebemos que é do nosso interesse poder acessar nosso servidor svn de fora do local. Eu disse que era fácil, basta abrir a porta 80. (Nós não exigem alta segurança para o nosso svn mesmo se tornada pública na internet, então por favor não mude de assunto para http vs. https, que será uma questão separada se alguma vez E, obviamente, até resolvermos o problema imediato, não haverá nada para proteger.

A coisa horrível que eu descobri agora é que o svn st -u não funciona, mas outros subcomandos funcionam, por exemplo, svn relocate e svn log. Especificamente, svn st -u não imprime nenhuma saída e trava até que eu a mate com ^ C. Quando eu svn realocou minha cópia de trabalho para o nosso endereço IP público, fui desafiado corretamente para minhas credenciais de svn e o comando foi bem-sucedido. Svn log imprime o log, ou seja, comporta-se como normal. Tudo o que precede se aplica a comandos executados em uma cópia de trabalho cuja raiz do repositório é o endereço IP público (ou, realocando a raiz do repositório para o nosso endereço IP público, no caso especial de svn relocate). Para cópias de trabalho com o nome de rede do servidor na intranet para a raiz do repositório, todos os comandos continuam a funcionar bem.

Para descartar o "bloqueio de verbo http" por um firewall externo como explicação, tentei alterar o método de acesso para http na porta 81 e https na porta 443, realocando a cópia de trabalho toda vez que alterei o método de acesso no servidor. Um firweall não pode bloquear seletivamente verbos http no tráfego que não é para a porta http, ou onde os verbos são criptografados. Mas esses movimentos não resolveram nada. Usando o Wireshark, consigo ver o tráfego entre o svn no meu computador cliente e nosso endereço IP público em qualquer um desses modos, no entanto, não tenho certeza de onde localizar o ponto em que a conversa está errada (especialmente quando o protocolo é https!) .

Estamos usando o VisualSVN Server v3.5.3 "Standard Edition". Este servidor suporta apenas http: // e https: // access, não svn: //. O cliente é o TortiseSVN v1.9.3. O sistema operacional é o Windows 7 para cliente e servidor (eles são dois computadores diferentes na mesma intranet).

    
por cs- 17.05.2016 / 21:25

3 respostas

2

Você mencionou que está executando o VisualSVN v3.3.1. Existe uma razão pela qual você está usando uma versão antiga do VisualSVN? Essa versão agora tem mais de um ano e pode estar faltando a correção de bug associada ao problema que você está tendo. Sugiro atualizar para a v3.5.3 e, em seguida, verificar se você ainda tem o problema. O VisualSVN é um produto que você precisa ser muito diligente para manter-se atualizado, especialmente se estiver disponibilizando o servidor publicamente, pois ele usa o Apache e o OpenSSL, que estão sendo atualizados com frequência devido a vulnerabilidades divulgadas publicamente. Provavelmente existem mais de 50 CVEs aos quais você está faltando patches, executando 3.3.1 (veja link ).

Se a atualização da versão ainda não corrigir o problema, eu diria que sua melhor aposta será entrar em contato diretamente com o suporte do VisualSVN.

    
por 18.05.2016 / 21:52
1

Ainda parece que o problema está relacionado ao seu firewall ou proxy. Provavelmente, o problema é causado por algum proxy transparente que pode ser configurado pelo seu ISP.

  • Você diz que tentou usar a porta 443, mas usou tráfego HTTP ou HTTPS? Por favor, ative o verdadeiro HTTPS e veja se faz alguma diferença.
  • svn status -u faz uso da solicitação PROPFIND, por ex. svn log não. Então, que tal outros comandos como svn ls que também usam PROPFIND? Howe sobre svn log que não usa PROPFIND? Eles funcionam?

Em qualquer caso, você pode instalar o Fiddler, capturar os logs e enviá-los para a equipe do VisualSVN em [email protected].

Instale o Fiddler e execute o comando svn status -u <URL> --config-option=servers:global:http-proxy-host=127.0.0.1 --config-option=servers:global:http-proxy-port=8888 para que as solicitações passem pelo Fiddler. Envie o log para [email protected] e vamos dar uma olhada nele.

    
por 18.05.2016 / 23:44
1

Acontece que configurar meu cliente svn com qualquer proxy resolve o problema. Isso pode ser feito na linha de comando (como na resposta do @bahrep) ou no arquivo de configuração do servidor. O proxy pode ser um proxy público gratuito como 50.97.88.2.

P.S. Eu também entrei em contato com o suporte visualsvn como sugerido nas respostas abaixo. Eles foram rápidos e prestativos como aqui e levaram à mesma solução.

    
por 20.05.2016 / 00:41