На физическом сервере у меня работает Apache и сервер WebDav (PyWebDav3). Это сервер Ubuntu 14.04, то есть со всеми графическими инструментами.
Сервер WebDav запускается с конфигурацией по умолчанию:
davserver -D /tmp -n
Документация показывает, что можно использовать другой хост:
-H, --host Host, где слушать (по умолчанию: localhost)
Мне нужно полное доменное имя. Итак, я выполняю:
bernard@p7:~$ hostname -f
p7
bernard@p7:~$
И использовал это при запуске WebDav:
bernard@p7:/etc$ davserver -D /tmp -n -H "p7"
2016-07-27 15:42:32,716 WARNING Authentication disabled!
Listening on p7 (8008)
Я могу получить доступ к этому локальному серверу с помощью Firefox с помощью "localhost" в адресной строке. И удаленный с «192.168.1.101» в адресной строке.
Локально я могу получить доступ в Firefox localhost:8008. И использовать Nautilus в качестве WebClient в качестве Fileserver. Это хорошо работает.
Я отключил брандмауэр на сервере с помощью UFW, и теперь статус UFW отключен:
bernard@p7:~$ sudo ufw status
Status: inactive
bernard@p7:~$
Я проверяю, какой порт открыт с:
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:~$
Таким образом, PyWebDav3 (который является программой на Python), кажется, открыт на порту 8008, но все же, после использования "p7" в качестве хоста только для 127.0.1.1
Когда используешь :
davserver -H 192.168.1.101 -D /tmp -n
И проверено:
bernard @ p7:~ $ sudo netstat -plnt Активные подключения к Интернету (только серверы) Proto Recv-Q Локальный адрес Send-Q Внешний адрес Состояние PID/ Имя программы 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 :::* СЛУШАТЬ 1131/ apache2
tcp6 0 0 ::1:631 :::* СЛУШАТЬ 701/ cupsd
Bernard @ p7:~ $
Удаленный телнет вызов:
bernard@vbox11:~$ telnet 192.168.1.101 8008
telnet: Unable to connect to remote host: Connection timed out
bernard@vbox11:~$
Remote Я не могу получить доступ к 192.168.1.101:8008 через Firefox, так как клиент, кажется, зависает. Доступ с помощью Firefox - это то же самое действие, которое я выполнял на самом сервере и работал на сервере.
Затем я проверяю на сервере, что произошло (сообщение от 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
----------------------------------------
Похоже, что сервер PyWebDav3 не может обработать запрос.
На сервере в /var/log/auth.log это не видно сообщения об этом отказе.
Два вопроса:
- Что вызывает этот отказ
- Как это можно решить