Em um servidor físico, tenho o Apache e um servidor WebDav (PyWebDav3) em execução. Este é um servidor Ubuntu 14.04, portanto, com todas as ferramentas gráficas.
O servidor WebDav é iniciado com a configuração padrão:
davserver -D /tmp -n
A documentação mostra que um host diferente pode ser usado:
-H, --host Host where to listen on (default: localhost)
Eu preciso de um FQDN. Então eu executo:
bernard@p7:~$ hostname -f
p7
bernard@p7:~$
E usou isso ao iniciar o WebDav:
bernard@p7:/etc$ davserver -D /tmp -n -H "p7"
2016-07-27 15:42:32,716 WARNING Authentication disabled!
Listening on p7 (8008)
Eu posso acessar este servidor local com o Firefox com "localhost" na URLbar. E remoto com "192.168.1.101" na URLbar.
Localmente, posso acessar no Firefox localhost: 8008. E use o Nautilus como WebClient como servidor de arquivos. Isso funciona bem.
Eu desativei o firewall no servidor com o ufw, e agora o status do ufw está desativado:
bernard@p7:~$ sudo ufw status
Status: inactive
bernard@p7:~$
Verifico qual porta está aberta com:
bernard@p7:~$ sudo netstat -plnt
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 127.0.1.1:53 0.0.0.0:* LISTEN 1087/dnsmasq
tcp 0 0 127.0.0.1:631 0.0.0.0:* LISTEN 701/cupsd
tcp 0 0 127.0.1.1:8008 0.0.0.0:* LISTEN 3465/python3
tcp6 0 0 :::80 :::* LISTEN 1131/apache2
tcp6 0 0 ::1:631 :::* LISTEN 701/cupsd
bernard@p7:~$
Então PyWebDav3 (que é um programa em Python) parece estar aberto na porta 8008, mas ainda assim, depois de usar o "p7" como host apenas para 127.0.1.1
Ao usar:
davserver -H 192.168.1.101 -D /tmp -n
e testado:
bernard @ p7: ~ $ sudo netstat -plnt
Conexões ativas da Internet (somente servidores)
Proto Recv-Q Enviar-Q Endereço local Estado do endereço externo PID / Nome do programa
tcp 0 0 127.0.1.1:53 0.0.0.0:* LISTEN 1087 / dnsmasq
tcp 0 0 127.0.0.1:631 0.0.0.0:* LISTEN 701 / cupsd
tcp 0 0 192.168.1.101:8008 0.0.0.0:* LISTEN 3743 / python3
tcp6 0 0 ::: 80 ::: * ESCUTE 1131 / apache2
tcp6 0 0 :: 1: 631 ::: * ESCUTE 701 / cupsd
bernard @ p7: ~ $
Chamada telnet remota:
bernard@vbox11:~$ telnet 192.168.1.101 8008
telnet: Unable to connect to remote host: Connection timed out
bernard@vbox11:~$
Remoto eu não posso acessar 192.168.1.101:8008 com o Firefox como cliente parece travar. O acesso com o firefox é a mesma ação que fiz no próprio servidor e funcionou no servidor.
Então eu verifico no servidor o que aconteceu (mensagem do PyWebDav3):
Exception happened during processing of request from ('192.168.1.66', 42801)
Traceback (most recent call last):
File "/usr/lib/python3.4/socketserver.py", line 617, in process_request_thread
self.finish_request(request, client_address)
File "/usr/lib/python3.4/socketserver.py", line 344, in finish_request
self.RequestHandlerClass(request, client_address, self)
File "/usr/lib/python3.4/socketserver.py", line 673, in __init__
self.handle()
File "/usr/lib/python3.4/http/server.py", line 398, in handle
self.handle_one_request()
File "/usr/lib/python3.4/http/server.py", line 368, in handle_one_request
self.raw_requestline = self.rfile.readline(65537)
File "/usr/lib/python3.4/socket.py", line 374, in readinto
return self._sock.recv_into(b)
ConnectionResetError: [Errno 104] Connection reset by peer
----------------------------------------
Portanto, parece que o servidor PyWebDav3 não é capaz de lidar com o pedido.
No servidor em /var/log/auth.log, não aparece uma mensagem sobre essa recusa.
Duas perguntas:
- O que causa essa recusa
- Como isso pode ser resolvido